Oracle Statspack - Amazon Relational Database Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Oracle Statspack

L'option Oracle Statspack installe et active la fonction de statistiques de performances Oracle Statspack. Oracle Statspack est un ensemble de SQL scripts PL/ et SQL *Plus qui collectentSQL, stockent et affichent des données de performance. Pour plus d'informations sur l'utilisation d'Oracle Statspack, consultez Oracle Statspack dans la documentation Oracle.

Note

Oracle Statspack n'est plus pris en charge par Oracle et a été remplacé par le référentiel automatique de charge de travail ()AWR, plus avancé. AWRest disponible uniquement pour les clients d'Oracle Enterprise Edition qui ont acheté le pack de diagnostic. Vous pouvez utiliser Oracle Statspack avec n'importe quel moteur de base de données Oracle sur Amazon. RDS Vous ne pouvez pas exécuter Oracle Statspack sur Amazon RDS read replicas.

Configurer Oracle Statspack

Pour exécuter des scripts Statspack, vous devez ajouter l'option Statspack.

Pour configurer Oracle Statspack
  1. Dans un SQL client, connectez-vous à la base de données Oracle avec un compte administratif.

  2. Procédez comme suit, selon que Statspack est installé ou pas :

    • Si Statspack est installé et que le compte PERFSTAT lui est associé, passez à l'étape 4.

    • Si Statspack n'est pas installé et que le compte PERFSTAT existe, supprimez le compte comme suit :

      DROP USER PERFSTAT CASCADE;

      Sinon, une tentative d'ajout de l'option Statspack génère une erreur et un RDS-Event-0058.

  3. Ajoutez l'option Statspack à un groupe d'options. Consultez Ajout d'une option à un groupe d'options.

    Amazon installe RDS automatiquement les scripts Statspack sur l'instance de base de données, puis configure le compte. PERFSTAT

  4. Réinitialisez le mot de passe à l'aide de l'SQLinstruction suivante, en remplaçant pwd par votre nouveau mot de passe :

    ALTER USER PERFSTAT IDENTIFIED BY pwd ACCOUNT UNLOCK;

    Vous pouvez vous connecter à l'aide du compte d'utilisateur PERFSTAT et exécuter les scripts Statspack.

  5. Accordez le CREATE JOB privilège au PERFSTAT compte en utilisant la déclaration suivante :

    GRANT CREATE JOB TO PERFSTAT;
  6. Assurez-vous que les événements d'attente inactifs dans la table PERFSTAT.STATS$IDLE_EVENT sont renseignés.

    En raison du bogue 28523746 d'Oracle, les événements d'attente inactifs dans PERFSTAT.STATS$IDLE_EVENT peuvent ne pas être renseignés. Pour vous assurer que tous les événements inactifs sont disponibles, exécutez l'instruction suivante :

    INSERT INTO PERFSTAT.STATS$IDLE_EVENT (EVENT) SELECT NAME FROM V$EVENT_NAME WHERE WAIT_CLASS='Idle' MINUS SELECT EVENT FROM PERFSTAT.STATS$IDLE_EVENT; COMMIT;

Génération de rapports Statspack

Un rapport Statspack compare deux instantanés.

Pour générer des rapports Statspack
  1. Dans un SQL client, connectez-vous à la base de données Oracle avec le PERFSTAT compte.

  2. Créez un instantané à l'aide de l'une des techniques suivantes :

    • Créez manuellement un instantané Statspack.

    • Créez une tâche qui prend un instantané Statspack après un intervalle de temps donné. Par exemple, la tâche suivante crée un instantané Statspack chaque heure :

      VARIABLE jn NUMBER; exec dbms_job.submit(:jn, 'statspack.snap;',SYSDATE,'TRUNC(SYSDATE+1/24,''HH24'')'); COMMIT;
  3. Affichez les instantanés à l'aide de la requête suivante :

    SELECT SNAP_ID, SNAP_TIME FROM STATS$SNAPSHOT ORDER BY 1;
  4. Exécutez la RDS procédure rdsadmin.rds_run_spreport Amazon en remplaçant begin_snap et end_snap par le snapshot : IDs

    exec rdsadmin.rds_run_spreport(begin_snap,end_snap);

    Par exemple, la commande suivante crée un rapport basé sur l'intervalle entre les instantanés Statspack 1 et 2 :

    exec rdsadmin.rds_run_spreport(1,2);

    Le nom de fichier du rapport Statspack inclut le numéro des deux instantanés. Par exemple, un fichier de rapport créé à l'aide des instantanés Statspack 1 et 2 se nommera ORCL_spreport_1_2.lst.

  5. Surveillez la sortie pour détecter des erreurs.

    Oracle Statspack effectue des vérifications avant d'exécuter le rapport. Par conséquent, vous pouvez également voir des messages d'erreur dans la sortie de la commande. Vous pouvez par exemple essayer de générer un rapport basé sur une plage non valable, dans laquelle la valeur de l'instantané Statspack de début est supérieure à la valeur de fin. Dans ce cas, la sortie affiche le message d'erreur, mais le moteur de base de données ne génère pas de fichier d'erreur.

    exec rdsadmin.rds_run_spreport(2,1); * ERROR at line 1: ORA-20000: Invalid snapshot IDs. Find valid ones in perfstat.stats$snapshot.

    Si vous utilisez un numéro erroné d'instantané Statspack, la sortie affiche une erreur. Par exemple, si vous essayez de générer un rapport pour les instantanés 1 et 50, mais que l'instantané 50 n'existe pas, la sortie affiche une erreur.

    exec rdsadmin.rds_run_spreport(1,50); * ERROR at line 1: ORA-20000: Could not find both snapshot IDs
  6. (Facultatif)

    Pour récupérer le rapport, appelez les procédures du fichier de trace, selon les explications de la section Utilisation des fichiers de trace Oracle.

    Vous pouvez également télécharger le rapport Statspack depuis la RDS console. Accédez à la section Journal des détails de l'instance de base de données et choisissez Télécharger. L'exemple suivant montre trace/ORCL_spreport_1_2.lst

    Afficher la liste des fichiers journaux Oracle dans la RDS console. Le fichier de trace suivant est encerclé :. trace/ORCL_spreport_1_2.lst

    Si une erreur se produit lors de la génération d'un rapport, le moteur de base de données utilise les mêmes conventions de dénomination que pour un rapport, mais avec une extension de.err. Par exemple, si une erreur s'est produite lors de la création d'un rapport à l'aide des instantanés Statspack 1 et 7, le fichier de rapport sera nommé ORCL_spreport_1_7.err. Vous pouvez télécharger le rapport d'erreurs en utilisant les mêmes techniques que pour un rapport d'instantané standard.

Suppression d'instantanés Statspack

Pour supprimer une plage d'instantanés Oracle Statspack, utilisez la commande suivante :

exec statspack.purge(begin snap, end snap);