Collecte AWR (Oracle)¶
AWR (Automatic Workload Repository) est disponible à partir d'Oracle 10g, mais nécessite que le client ait acquis l'option Oracle Diagnostic Pack. Sans cette option, utilisez Statspack, qui offre des données comparables sans coût de licence supplémentaire.
KAIROS fournit deux méthodes de collecte pour produire les rapports AWR/ASH à transmettre au système.
Méthode 1 — Script Korn Shell (kairosora.ksh)¶
Le script kairosora.ksh (fourni dans collects/Oracle/) est transféré directement sur le système hébergeant la base Oracle.
Environnement Oracle (oraenv)
Si votre installation utilise le mécanisme oraenv pour basculer entre environnements Oracle, ajoutez le flag -oraenv. Sinon, assurez-vous que le contexte Oracle est déjà correctement positionné (variables d'environnement ORACLE_HOME, ORACLE_SID) avant l'exécution.
Commande de collecte AWR¶
ksh /TOOLDIR/kairosora.ksh -sid:MYINSTANCE -day:YYYY-MM-DD -awr -lvl:3 -zip -grp:GGGG -dir:DDDD
| Paramètre | Signification |
|---|---|
TOOLDIR |
Répertoire où se trouve le script de collecte |
MYINSTANCE |
Nom de l'instance Oracle |
YYYY-MM-DD |
Jour à extraire (ex. 2024-11-20) |
-lvl:3 |
Niveau de détail : 1 = AWR seul, 2 = détail des requêtes, 3 = inclut ASH |
GGGG |
(optionnel) symbole identifiant l'entreprise, UNKNOWN par défaut |
DDDD |
Répertoire de sortie du résultat (archive zip ou tar) |
Automatisation via cron
Si le paramètre -day est omis, les données du jour précédent sont extraites automatiquement. C'est le comportement recommandé pour une exécution planifiée quotidienne (cron), afin de produire un nouveau rapport chaque jour sans modification de la commande.
Méthode 2 — Script Python sous Jython (kairosora.py)¶
Cette méthode est recommandée lorsque Java est disponible, car elle ne nécessite pas d'être exécutée directement sur le serveur Oracle : elle peut tourner depuis n'importe quel poste disposant d'un accès SQL*Net vers la base cible.
a) Repérer un exécutable Java¶
find / -name 'java' 2> /dev/null
Choisissez de préférence un binaire situé sous le répertoire Oracle (ex. /oracle/12.2.0/jdk/bin/java), puis vérifiez sa version :
/oracle/12.2.0/jdk/bin/java -version
b) Repérer un driver JDBC Oracle (ojdbc)¶
find / -name '*ojdbc*jar' 2> /dev/null
Les fichiers ojdbc6.jar ou ojdbc8.jar conviennent généralement. Un fichier ojdbc6.jar est également fourni dans collects/Oracle/ du projet KAIROS.
c) Préparer Jython¶
Transférez jython-standalone.jar (fourni dans collects/Oracle/) sur le système d'extraction, puis créez un alias combinant Java, Jython et le driver JDBC :
alias jython='/oracle/12.2.0/jdk/bin/java -classpath /tmp/jython-standalone.jar:/oracle/12.2.0/jdbc/lib/ojdbc8.jar org.python.util.jython'
Vérifiez que Jython démarre correctement :
jython
d) Consulter les options du script¶
jython kairosora.py -h
usage: kairosora.py [-h] [--version] [--awr] [--host HOST] [--port PORT]
[--service SERVICE] [--user USER] [--password PASSWORD]
[--instance INSTANCE] [--level LEVEL] [--from FROM]
[--to TO] [--directory DIRECTORY] [--bash]
--awr True: extraction AWR, False: extraction STATSPACK
--host HOST Hôte à contacter en SQL*Net (défaut: hôte courant)
--port PORT Numéro de port (défaut 1521)
--service SERVICE Service à contacter (défaut: valeur de ORACLE_SID)
--user USER Schéma source des données STATSPACK (défaut: PERFSTAT)
--password PASSWORD Mot de passe du schéma PERFSTAT (Statspack) ou SYS (AWR)
--instance INSTANCE Instance cible (défaut: valeur de ORACLE_SID)
--level LEVEL 1: AWR seul, 2: détail des requêtes, 3: ASH
--from FROM Date de début d'extraction
--to TO Date de fin d'extraction
--directory DIRECTORY Répertoire de sortie (défaut: /tmp)
--bash True: extraction B-ASH
e) Lancer l'extraction AWR¶
jython kairosora.py --awr --host MYHOST --port 1521 --service TARGETDB \
--instance ABCD --user SYS --password ******** \
--level 3 --from "2024-11-20 08:00" --to "2024-11-20 18:00" \
--directory /mydirectory
Cet exemple extrait le niveau 3 (AWR + ASH) pour la fenêtre horaire indiquée, et écrit le résultat dans /mydirectory.
Une fois le rapport produit¶
Le fichier ou l'archive généré doit être importé dans KAIROS — voir Importer un rapport dans KAIROS. L'analyseur intégré de KAIROS reconnaîtra automatiquement le contenu AWR, sans configuration supplémentaire.