Collecte Statspack / B-ASH (Oracle)¶
Lorsque le client ne dispose pas de la licence Oracle Diagnostic Pack (nécessaire pour AWR/ASH), KAIROS peut collecter des données équivalentes via :
- Statspack, toujours disponible en Oracle 10g/11g/12g (même si Oracle a progressivement remplacé ses fonctionnalités par AWR côté outillage propriétaire),
- B-ASH, un logiciel libre qui reproduit le comportement d'ASH (Active Session History) sans nécessiter de licence Diagnostic Pack.
Installation de Statspack¶
La documentation officielle Oracle décrit l'installation complète : docs.oracle.com — statspac.htm.
En résumé, sous Unix :
CONNECT / AS SYSDBA
define default_tablespace='TOOLS'
define temporary_tablespace='TEMP'
define perfstat_password='mon_mot_de_passe_perfstat'
@?/rdbms/admin/spcreate
Tablespace recommandé
Utilisez de préférence SYSAUX comme tablespace par défaut plutôt que TOOLS.
Automatiser la prise de snapshots¶
Le script spauto planifie la capture automatique de snapshots Statspack :
CONNECT perfstat/mon_mot_de_passe_perfstat
@?/rdbms/admin/spauto
Un intervalle d'une heure entre chaque snapshot est suffisant si B-ASH est utilisé en complément.
Installation de B-ASH¶
Le paquet d'installation de B-ASH est fourni dans collects/Oracle/bash_v8.zip. L'archive contient un script bashcreate_V8.sql, documenté en en-tête, à exécuter pour activer la collecte B-ASH.
Tablespace et démarrage
Utilisez de préférence SYSAUX comme tablespace par défaut, et démarrez immédiatement le collecteur B-ASH une fois l'installation terminée.
Une fois bashcreate_V8.sql exécuté, ouvrez une session SQL*Plus sous l'utilisateur bash (celui créé par le script) et accordez les droits de lecture au schéma Statspack :
grant select on bash$hist_active_sess_history to perfstat;
Ordre d'installation
B-ASH doit être installé après Statspack.
Collecter les données Statspack / B-ASH avec KAIROS¶
Les deux méthodes de collecte présentées pour AWR fonctionnent également pour Statspack/B-ASH — seuls les paramètres changent.
Avec le script Korn Shell (kairosora.ksh)¶
ksh /TOOLDIR/kairosora.ksh -sid:MYINSTANCE -day:YYYY-MM-DD -pwd:PPPP -bash -zip -grp:GGGG -dir:DDDD
Différences par rapport à la collecte AWR :
- les flags
-awret-lvlsont retirés (Statspack étant utilisé par défaut dans ce mode), - le flag
-bashest ajouté pour inclure les données B-ASH, PPPPest le mot de passe du schémaPERFSTAT(valeur par défaut :PERFSTAT). Si ce mot de passe diffère et que vous ne souhaitez pas le passer en argument de commande, modifiez la valeur par défaut directement dans le script.
Avec le script Python sous Jython (kairosora.py)¶
jython kairosora.py --host MYHOST --port 15211 --service TARGETDB \
--instance ABCD --user PERFSTAT_X --password PERFSTAT_X \
--from YESTERDAY --to TODAY --directory /mydirectory --bash
Cet exemple se connecte au service TARGETDB via le port 15211, avec le schéma PERFSTAT_X, demande les données B-ASH, filtre sur la journée précédente (--from YESTERDAY --to TODAY), et écrit le résultat dans /mydirectory.
Autres exemples utiles :
# Extraction simple, sans filtre de date, sur l'instance courante (ORACLE_SID)
jython kairosora.py --password PERFSTAT
# Extraction à partir d'une date donnée
jython kairosora.py --password PERFSTAT --from 2018-02-05
# Extraction sur une plage horaire précise
jython kairosora.py --password PERFSTAT --from "2018-02-05 08:30" --to "2018-02-05 17:30"
Une fois le rapport produit¶
Transmettez le fichier ou l'archive résultant à KAIROS via la procédure décrite dans Importer un rapport dans KAIROS. Le contenu Statspack (STATSPACK Statistics Report for / STATSPACK report for) est reconnu automatiquement, tout comme les données B-ASH associées.