Comment puis-je vérifier les statistiques de performance d'une instance de base de données Amazon RDS qui exécute Oracle ?

Lecture de 5 minute(s)
0

Je souhaite analyser et ajuster les performances de mon instance Amazon Relational Database Service (Amazon RDS) qui exécute Oracle. Comment puis-je vérifier les statistiques de performance d'une instance Amazon RDS qui exécute Oracle ?

Brève description

Vous pouvez utiliser Oracle Statspack sur une instance de base de données Amazon RDS pour collecter, stocker et afficher des données de performance. Statspack génère des rapports basés sur des instantanés Statspack, que vous pouvez ensuite utiliser pour analyser les performances de votre instance de base de données sur une période donnée. Pour plus d'informations, consultez la documentation Oracle d'Oracle Statspack.

Résolution

Utiliser Oracle Statspack sur un Amazon RDS

1.Si Statspack est installé et que le compte PERFSTAT est associé à Statspack, passez à l'étape 3. Si Statspack n'est pas installé et que le compte PERFSTAT existe, supprimez le compte en exécutant cette commande :

SQL> DROP USER perfstat CASCADE;

2.Ajoutez l'option Statspack au groupe d'options de base de données. Si vous n'avez pas de groupe d'options, créez un nouveau groupe d'options, puis attribuez-le à l'instance de base de données.

3.Lorsque vous ajoutez l'option Statspack, les instances Amazon RDS exécutant Oracle installent automatiquement Statspack. Cela crée un utilisateur perfstat chargé de collecter les statistiques de la base de données et de générer des rapports. Mais sachez que l'utilisateur perfstat est verrouillé par défaut. Pour déverrouiller l'utilisateur perfstat, connectez-vous à l'instance de base de données en tant qu'utilisateur principal Amazon RDS, puis réinitialisez le mot de passe de l'utilisateur perfstat en exécutant une requête similaire à celle-ci :

ALTER USER perfstat IDENTIFIED BY <new_password> ACCOUNT UNLOCK;

Remarque : Assurez-vous de remplacer le new_password par votre propre mot de passe.

4.Si vous utilisez Oracle Database 12c Release 2 (12.2) ou une version antérieure, ignorez cette étape. Si vous utilisez Oracle Database 19c ou une version ultérieure, accordez le privilège CREATE JOB au compte PERFSTAT en exécutant cette instruction :

GRANT CREATE JOB TO PERFSTAT;

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

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;

6.Lorsque vous êtes connecté en tant qu'utilisateur perfstat, exécutez cette commande pour créer manuellement un instantané de Statspack :

SQL> exec statspack.snap (i_snap_level => 7, i_modify_parameter => 'TRUE');

Remarque : Vous pouvez également modifier le niveau de capture d'instantanés de Statspack pour obtenir des informations plus détaillées. Cet exemple de commande crée un instantané Statspack au niveau 7, qui inclut l'utilisation, les verrouillages de lignes et les statistiques d'E/S au niveau des segments pour SQL.

7.Vous pouvez également configurer Oracle pour qu'il prenne automatiquement un instantané de Statspack. Cette procédure crée une tâche qui prend automatiquement un instantané Statspack par heure :

SQL> set serveroutput on
SQL> variable jn number;
SQL> execute dbms_job.submit (:jn, 'statspack.snap;', sysdate, 'trunc(SYSDATE+1/24,''HH24'')');
SQL> execute dbms_output.put_line ('statspack job number:' || :jn);
SQL> commit;

6.Pour voir les instantanés Statspack disponibles, exécutez cette commande :

SQL> set linesize 32767;
SQL> alter session set nls_date_format = 'YYYY/MM/DD HH24:MI:SS';
SQL> select snap_id, snap_time from stats$snapshot order by 1;
    SNAP_ID SNAP_TIME
---------- -------------------
        :: ::
        11 2019/06/03 03:18:30
        12 2019/06/03 04:18:30
        :: ::

7.Après avoir créé plus de deux instantanés Statspack, créez un rapport Statspack en exécutant une commande similaire à celle-ci :

SQL> exec RDSADMIN.RDS_RUN_SPREPORT (11,12);

**Remarque :**Cet exemple de commande crée un rapport à l'aide des SNAP_IDs 11 et 12, et le nom du rapport est similaire à trace/ORCL_spreport

_

.lst.

8.Pour afficher et télécharger le rapport, ouvrez la console Amazon RDS, puis choisissez Bases de données dans le volet de navigation. Choisissez l'instance de base de données, puis choisissez l'onglet journal & Events.

9.Les instantanés Statspack stockés ne sont pas supprimés automatiquement, ce qui peut consommer de l'espace de stockage sur votre instance de base de données. Pour purger manuellement les instantanés Statspack, spécifiez un SNAP_ID de début et un SNAP_ID de fin similaires à ceci :

SQL> execute statspack.purge(<INITIAL_SNAP_ID>, <END_SNAP_ID>);

Arrêter d'utiliser Oracle Statspack sur Amazon RDS

1.Pour arrêter la création automatique d'instantanés, supprimez la tâche que vous avez créée. Pour obtenir le numéro de tâche, exécutez cette commande :

SQL> select job, what FROM user_jobs;

2.Pour supprimer la tâche, exécutez cette commande :

SQL> execute dbms_job.remove (<job_id>);

Remarque : Assurez-vous de remplacer job_id par votre propre ID de tâche.

Une fois que vous avez supprimé l'option Statspack du groupe d'options de base de données, l'utilisateur perfstat et tous les instantanés Statspack stockés sont purgés.


Informations connexes

Oracle Statspack

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 2 ans