Aller au contenu

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 -awr et -lvl sont retirés (Statspack étant utilisé par défaut dans ce mode),
  • le flag -bash est ajouté pour inclure les données B-ASH,
  • PPPP est le mot de passe du schéma PERFSTAT (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.