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
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.
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.