Génération d’un rapport Oracle AWR

Principe

AWR (ou Automatic Workload Repository) est un référentiel (ou dépôt) qui stocke un historique des informations utiles pour l’optimisation. A intervalle régulier, des snapshots de la base (statistiques, charge, …) sont stockés dans l’AWR via le processus MMON. C’est en quelque sorte un référentiel qui stocke un historique des informations utiles pour l’optimisation.

Les données ne servent pas qu’à la génération de ces rapports ; AWR est un point d’entrée dans un processus plus complet de détection des problèmes de performance et l’assistance à leurs corrections, notamment via le moteur d’auto-diagnostique ADDM (ou Automatic Database Diagnostic Monitor).

Configuration des snapshots

Sous l’utilisateur oracle, effectuer les opérations suivantes :

Dans cet exemple, la prise de snapshot est configurée toutes les heures (interval=>60) et les logs AWR sont conservés pendant une durée de 4 semaines (retention=>40320 (convertit en minutes)).

Remarque : La configuration par défaut est une prise de snapshot toutes les heures avec une durée de rétention de 7 jours.

Le package PL/SQL suivant DBMS_WORKLOAD_REPOSITORY utilisé ici est dédié à l’AWR. Via ses nombreuses procédures, il permet d’effectuer notamment, les opérations suivantes :

  • Du paramétrage (fréquence des snapshots, durée de rétention) avec la procédure modify_snapshot_settings
  • La création/suppression de snapshots avec create_snapshot et drop_snapshot_range
  • La création/suppression de Baselines qui sont des périodes spécifiques (entre 2 snapshots) pour lesquelles on désire garder une référence.

Consultation de la configuration

Sous l’utilisateur oracle, effectuer la requête suivante pour lister la durée de rétention et l’intervalle des snapshots :

Lister les snapshots AWR qui sont historisés en base :

Génération du rapport

Sous l’utilisateur oracle, , effectuer la requête suivante pour générer un rapport d’audit :

Vous devez ensuite, répondre aux différentes questions pour permettre la personnalisation du rapport :

Définition du format final du rapport. Dans le cas présent, nous utiliserons un rapport au format HTML.

A ce stade, nous devons choisir sur quelle instance nous allons devoir travailler ainsi que du numéro de l’instance.

Nous devons maintenant définir quel intervalle de jours nous voulons visualiser.

Saisir les valeurs des ID pour lesquels, vous voulez visualiser le rapport.

Le rapport est maintenant généré dans le répertoire tmp, le récupérer sur le poste de travail puis procéder à l’analyse de celui-ci.

Pour plus d’explications sur le fonctionnement du package, se reporter à la documentation suivante : ici

Lien pour marque-pages : Permaliens.

4 Commentaires

  1. Merci pour cet article, qui à l’air de coller parfaitement à mes besoins ! (au fait, 5ème résultat sur Google pour « oracle awr reports », BG!)

    Je teste ça dans les prochains jours, et je te dis si ça fonctionne aussi bien que promis. 🙂

    Par contre, tu as déjà extrait des données de performances à partir de fichiers traces? Quelque chose dans ce genre là :
    https://oracle-base.com/articles/misc/sql-trace-10046-trcsess-and-tkprof

    Le besoin serait de loguer pendant un test de perf les infos disponibles sur le monitoring live de SQLDeveloper (http://www.thatjeffsmith.com/wp-content/uploads/2015/05/fx_viewer.gif), pour les analyser ensuite.

    • Je ne m’y attendais pas, ça fait plaisir!
      Dans le cadre du test de performance, je n’ai pas extrait ces données typiquement, mais cela doit sûrement être faisable.

      Pour le monitoring live et stockage, j’utilisais un autre soft qui maintenant n’existe plus (paix à son âme : Insider).

  2. Tiens, au fait, il me semble que
    instance , c’est pas très standard…

    ORACLE_SID=, c’est plus joli ! 🙂

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.