IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Scripts d'administration premier niveau pour Oracle 9i sous Windows

Date de publication : 16/10/2004 , Date de mise à jour : 10/01/2005

Cet ensemble de scripts NT est une compilation de différents automatismes que j'ai réalisés lors d'une formation DBA Oracle. J'ai utilisé les possibilités offertes par les scripts NT et ai fait en sorte d'utiliser le moins possible les évolutions des commandes sous Windows XP.

Ces scripts pourront aider dans un premier temps les débutants sous Oracle sur la plateforme Windows.
Ils contiennent toutes les astuces batch que j'ai pu glaner au cours de mes différents projets et demandent un minimum de compétences sur les batchs sous NT et sont bien évidemment perfectibles.

Merci de me communiquer les erreurs ou vos modifications pertinentes afin de les reporter.
Je tiens à remercier Ukyuu pour ses corrections orthographiques.

            

1. Utilité
1.1. Pourquoi utiliser les scripts NT ?
1.2. Pourquoi ne pas utiliser les scripts NT ?
2. Installation
3. Liste des fichiers de LDTOOLS
3.1. Fichiers exécutables
3.1.1. \Bin\bakname.exe
3.1.2. \Bin\copybak.exe
3.1.3. \Bin\cutstr.exe
3.1.4. \Bin\del_eof.exe
3.1.5. \Bin\Upper.exe
3.1.6. \Bin\grep.exe
3.1.7. \Bin\instsrv.exe
3.1.8. \Bin\kill.exe
3.1.9. \Bin\lengthStr.exe
3.1.10. \Bin\pstat.exe
3.1.11. \Bin\pulist.exe
3.1.12. \Bin\REGDMP.EXE
3.1.13. \Bin\scanreg.exe
3.1.14. \Bin\sc.exe
3.1.15. \Bin\setx.exe
3.1.16. \Bin\SHORTCUT.EXE
3.1.17. \Bin\sleep.exe
3.2. Scripts NT
3.2.1. \concatener.cmd
3.2.2. \GetDirectoryName.cmd
3.2.3. \GetDirName.cmd
3.2.4. \GetDiskName.cmd
3.2.5. \GetFileName.cmd
3.2.6. \GetLocalDir.cmd
3.2.7. \GetShortFileName.cmd
3.2.8. \Get_ORA_Status.cmd
3.2.9. \input.txt
3.2.10. \Majuscule.cmd
3.2.11. \MakeListeDir.cmd
3.2.12. \MemoriseDir.cmd
3.2.13. \MakeLnk.cmd
3.2.14. \nulfile.cmd
3.2.15. \Ora_status.cmd
3.2.16. \GetRegSID.cmd
3.2.17. \setdate.cmd
3.2.18. \setDir.cmd
3.2.19. \SetOraPath.cmd
3.2.20. \set_Oracle.cmd
3.2.21. \set_Oracle.cmd
3.2.22. \sh.cmd
3.2.23. \Srvc_change.cmd
3.2.24. \Srvc_Info.cmd
3.2.25. \Srvc_Status.cmd
3.2.26. \Backup Oracle\Ora_backup.cmd
3.3. Programme Debuglog
3.3.1. \Debuglog\DebugLog.exe
3.3.2. \Debuglog\run.bat
3.3.3. \Debuglog\Writelog.exe
3.4. Menus contextuels pour l'Explorateur
3.4.1. \Explorateur\Reg.bat
3.4.2. \Explorateur\UnReg.bat
3.5. Recherche de différence entre deux fichiers Ascii
3.5.1. \file-diff\
3.5.2. \find-PID\ifexistp.cmd
3.5.3. \find-PID\test.cmd
3.6. Gestion des services
3.6.1. \Services Oracle\change_srvc_Ora.cmd
3.6.2. \Services Oracle\Get_info_srvc_Ora.cmd
3.6.3. \Services Oracle\Get_list_srvc_Ora.cmd
3.6.4. \Services Oracle\Get_sid_name.cmd
3.6.5. \Services Oracle\Get_srvc_status.cmd
3.6.6. \Services Oracle\Srvc_Apache.cmd
3.7. Scripts SQL*PLUS
3.7.1. \SQL\Get_file.sql
3.7.2. \SQL\Get_pfilepath.sql
3.7.3. \SQL\Get_status.sql
3.7.4. \SQLPLUS\extract PL
3.7.5. \SQLPLUS\Request.sql
3.7.6. \SQLPLUS\SQl-run.cmd
3.7.7. \SQLPLUS\validation-SQL
3.8. \SQLPLUS\extract PL\AllExtract.cmd
3.8.1. \SQLPLUS\extract PL\all_pl.csv
3.8.2. \SQLPLUS\extract PL\DBA_Source table.txt
3.8.3. \SQLPLUS\extract PL\make_req.cmd
3.8.4. \SQLPLUS\extract PL\make_SQL_FILE.cmd
3.8.5. \SQLPLUS\extract PL\origine.txt
3.9. \SQLPLUS\validation-SQL\FILE.CSV
3.9.1. \SQLPLUS\validation-SQL\MAKE_REQ.CMD
3.9.2. \SQLPLUS\validation-SQL\make_SQL_FILE.cmd
3.9.3. \SQLPLUS\validation-SQL\ORIGINE.TXT


1. Utilité

Ces scripts permettent de :

  • Recenser tous les services Oracle installés sur une machine
  • Retrouver le statut de chaque service ( démarré,..)
  • Arrêter/démarrer les services Oracle en mémorisant leur statut avant l'opération.
  • Retrouver toutes les instances Oracle déclarés sur une machine.
  • Retrouver le statut de chaque instances ( Mount,Open,..)
  • Retrouver les HOME (versions d'Oracle ) Oracle déclarés sur une machine.
  • Déclarer dynamiquement, via la base registre, les variables Oracle ORACLE_HOME,etc
  • ( si plusieurs versions d'Oracle existent, on peut préciser sur laquelle pointer)
  • Retrouver, via la base de registre, le statut de démarrage du service d'une instance ( cf ORADIM ).
  • ...
Tester en totalité sur une configuration avec XP ( sans SP1) + Oracle 9i R2 + Oracle 8.1.7.
Tester partiellement sur Windows 2000 + Oracle 8.1.7 + Oracle 9i R2.

Note :
Lors des tests sous XP certains programmes issue du Kit de ressources NT 4.0 ont des résultats inattendus après des dizaines d'exécutions dans la même console. La fermeture puis la réouverture d'une console règle ce pb.


1.1. Pourquoi utiliser les scripts NT ?

L'apprentissage est relativement simple et on les retrouve par défaut sous toutes les versions de NT (même argumentaire que VI sous Unix :- ) ), la puissance en moins.
Ils ne nécessitent pas de compilation ni d'installation particulière.
Ils répondent bien aux besoins de base de l'automatisation de tâches.
L'association de ce type de scripts avec d'autres outils permet d'en tirer le meilleur parti.


1.2. Pourquoi ne pas utiliser les scripts NT ?

On ne peut pas tout faire avec, pas d'appel système par exemple.
La gestion des erreurs est limitée.
Les itérations sont mal aisées.
Pas de Debugger, écriture ayant un aspect ésotérique notamment lors de l'utilisation à outrance des variables d'environnement.
WSH et Cscript sont plus puissant et intègrent la possibilité d'appels système.



2. Installation

Un exemple.
Les sources.
Vérifier la présence de la variable d'environnement (système de préférence) LDTOOLS.
Vérifier qu'elle pointe sur le bon répertoire.
Exécuter les scripts Oracle dans un répertoire dédié.
Pour les tester, vous pouvez exécuter les scripts dans le répertoire nommé 'Exemple'.
Attention la plupart de ces scripts sont dépendant de l'exécution préalable des scripts suivants :
%LDTOOLS% \Services Oracle\Get_list_srvc_Ora.cmd
%LDTOOLS% \Services Oracle\Get_sid_name.cmd


3. Liste des fichiers de LDTOOLS

Documentation en cours de finalisation.


3.1. Fichiers exécutables

Ces fichiers proviennent du kit de ressources NT 4.0 en téléchargement gratuit et de programmes simples réalisés sous Delphi en mode console.


3.1.1. \Bin\bakname.exe

Renomme l'extension d'un fichier en 0xx.
Exemple :
Bakname T.TXT modifie l'extension TXT en 001 si le fichier T.001 n'existe pas, sinon le renomme en T.002 etc.


3.1.2. \Bin\copybak.exe

Copie un fichier en renommant son extension en 0xx.
Exemple :
Copybak T.TXT copie et modifie l'extension TXT en 001 si le fichier T.001 n'existe pas, sinon le copie et renomme en T.002 etc.



3.1.3. \Bin\cutstr.exe

'Programme Pipe'
Supprime dans une chaîne de caractère les caractères au-delà de la position 30.
On aura donc une chaîne de 30 caractères maximum en sortie
30 est la longueur max. des noms de package, procédure, fonction sous Oracle



3.1.4. \Bin\del_eof.exe

'Programme Pipe'
Supprime dans un fichier le caractère control-Z ( chr(26) ) qui indique une fin de fichier ASCII.
Si le fichier contient plusieurs caractères control-Z le fichier est tronqué au premier rencontré.


3.1.5. \Bin\Upper.exe

'Programme Pipe'
Renvoie l'entrée en majuscule.


3.1.6. \Bin\grep.exe

Recherche d'occurrence de caractères dans un fichier.
Origine Unix portage Win32 voir UNXUTILS.ZIP (http://unxutils.sourceforge.net/)


3.1.7. \Bin\instsrv.exe

Permet d'installer ou de supprimer un service NT.
Le service doit être arrêté.


3.1.8. \Bin\kill.exe

Supprime un processus NT. Voir Find-PID
A l'origine dans le kit de ressources technique de Windows NT


3.1.9. \Bin\lengthStr.exe

'Programme Pipe'
Renvoie la taille d'une chaîne de caractère reçue en entrée.


3.1.10. \Bin\pstat.exe


3.1.11. \Bin\pulist.exe

Affiche des informations sur les processus en cours.


3.1.12. \Bin\REGDMP.EXE


3.1.13. \Bin\scanreg.exe

Gestion de la base de registre.
Format d'interrogation et de sortie différent.


3.1.14. \Bin\sc.exe

Affiche des informations sur les services.


3.1.15. \Bin\setx.exe

voir le fichier d'aide setx_d.htm
Setx


3.1.16. \Bin\SHORTCUT.EXE

Gère les raccourcis Windows.


3.1.17. \Bin\sleep.exe

Mise en sommeil du script en cours.


3.2. Scripts NT

Ces scripts utilisent la syntaxe des batchs sous NT 4.0 .


3.2.1. \concatener.cmd

Concatène plusieurs fichiers en un seul.


3.2.2. \GetDirectoryName.cmd

Renvoie le répertoire courant où est exécuté un script.


3.2.3. \GetDirName.cmd

Renvoie la partie nom de répertoire d'un nom de fichier complet. (unité:\chemin\nomfichier.extension ).


3.2.4. \GetDiskName.cmd

Renvoie la partie nom du disque d'un nom de fichier complet.
(unité:\chemin\nomfichier.extension ).


3.2.5. \GetFileName.cmd

Renvoie la partie nom de fichier d'un nom de fichier complet.
(unité:\chemin\nomfichier.extension ).


3.2.6. \GetLocalDir.cmd

Renvoie le nom de répertoire courant dans une variable d'environnement.


3.2.7. \GetShortFileName.cmd

Renvoie à partir d'un nom de fichier en fat32 (255 car max. , 255.3 avec les espaces autorisés) en un nom de fichier en fat16 (8.3 avec les espaces interdits).


3.2.8. \Get_ORA_Status.cmd

Obtient le statut d'une instance [ OPEN, MOUNTED,...] et renseigne la variable SID_STATUS.


3.2.9. \input.txt

Fichier de commande pour une redirection.


3.2.10. \Majuscule.cmd

Renvoie une chaîne de caractère en majuscule.


3.2.11. \MakeListeDir.cmd


3.2.12. \MemoriseDir.cmd

Construit une collection d'information
( info1, info2, info3 ... )


3.2.13. \MakeLnk.cmd

Crée un raccourci via un script


3.2.14. \nulfile.cmd

Crée un fichier de taille zéro, certaines opérations ne peuvent se faire que si le fichier existe physiquement sur le disque.


3.2.15. \Ora_status.cmd

Renvoie le statut d'une base Oracle



3.2.16. \GetRegSID.cmd

Extrait de la base de registre les informations de démarrage et d'arrêt d'une base Oracle.
Renseigne des variables d'environnement Oracle à partir de la base de registre.


3.2.17. \setdate.cmd

Place la date du jour dans la variable d'environnement DATE
Sous XP la variable DATE est renseignée par le système.


3.2.18. \setDir.cmd


3.2.19. \SetOraPath.cmd


3.2.20. \set_Oracle.cmd

Gestion dynamique du contenu des variables d'environnement Oracle.


3.2.21. \set_Oracle.cmd


3.2.22. \sh.cmd

Crée un raccourci en utilisant des informations contenues dans la base de registre.
Permet d'avoir un raccourci au contenu 'dynamique'. Après destruction - recréation.


3.2.23. \Srvc_change.cmd

Modifie l'état d'un service NT


3.2.24. \Srvc_Info.cmd

Affiche les informations détaillées d'un service.


3.2.25. \Srvc_Status.cmd

Affiche le statut d'un service. ( Started, Stopped,... )


3.2.26. \Backup Oracle\Ora_backup.cmd

Gestion du back up à froid d'une base à partir de son SID.
A valider.


3.3. Programme Debuglog

Objet COM permettant un affichage d'information de débug ( trace ).
L'insertion peut se faire par Writelog.exe ou dans un programme externe ( source dispo sur le net )


3.3.1. \Debuglog\DebugLog.exe

Objet COM permettant un affichage d'information de debug ( trace ).
L'insertion peut se faire par Writelog.exe ou dans un programme externe (source dispo sur le net)


3.3.2. \Debuglog\run.bat

Démonstration de writelog


3.3.3. \Debuglog\Writelog.exe

Permet d'insérer et d'envoyer des commandes à l'objet COM Debuglog


3.4. Menus contextuels pour l'Explorateur

Intégration de copybak et Bakname dans l'Explorateur via un menu contextuel


3.4.1. \Explorateur\Reg.bat

Recense la DLL Tools.


3.4.2. \Explorateur\UnReg.bat

Supprime le recensement de la DLL Tools.



3.5. Recherche de différence entre deux fichiers Ascii


3.5.1. \file-diff\

Recherche simple des différences entre deux fichiers texte.


3.5.2. \find-PID\ifexistp.cmd


3.5.3. \find-PID\test.cmd

Teste l'existence d'un programme en mémoire.


3.6. Gestion des services


3.6.1. \Services Oracle\change_srvc_Ora.cmd


3.6.2. \Services Oracle\Get_info_srvc_Ora.cmd


3.6.3. \Services Oracle\Get_list_srvc_Ora.cmd


3.6.4. \Services Oracle\Get_sid_name.cmd


3.6.5. \Services Oracle\Get_srvc_status.cmd


3.6.6. \Services Oracle\Srvc_Apache.cmd

Gestion des informations de services. Les scripts sont largement documentés.


3.7. Scripts SQL*PLUS


3.7.1. \SQL\Get_file.sql


3.7.2. \SQL\Get_pfilepath.sql


3.7.3. \SQL\Get_status.sql

Scripts SqlPlus utilisés par les scripts de back up Oracle


3.7.4. \SQLPLUS\extract PL


3.7.5. \SQLPLUS\Request.sql


3.7.6. \SQLPLUS\SQl-run.cmd


3.7.7. \SQLPLUS\validation-SQL

Génération de requête à partir de fichier texte. A détailler


3.8. \SQLPLUS\extract PL\AllExtract.cmd


3.8.1. \SQLPLUS\extract PL\all_pl.csv


3.8.2. \SQLPLUS\extract PL\DBA_Source table.txt


3.8.3. \SQLPLUS\extract PL\make_req.cmd


3.8.4. \SQLPLUS\extract PL\make_SQL_FILE.cmd


3.8.5. \SQLPLUS\extract PL\origine.txt

Génération de requêtes d'extraction de scripts PL/SQL pour revue de code.


3.9. \SQLPLUS\validation-SQL\FILE.CSV


3.9.1. \SQLPLUS\validation-SQL\MAKE_REQ.CMD


3.9.2. \SQLPLUS\validation-SQL\make_SQL_FILE.cmd


3.9.3. \SQLPLUS\validation-SQL\ORIGINE.TXT

Génération de requêtes de validation de traitement.



            

Valid XHTML 1.1!Valid CSS!

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © . Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.