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

Date de la dernière mise à jour : 30/08/2019

Comment puis-je vérifier les statistiques de performance sur mon instance Amazon Relational Database Service (Amazon RDS) qui exécute Oracle afin de pouvoir analyser et ajuster les performances de l'instance de base de données ?

Brève description

Vous pouvez utiliser Oracle Statspack sur une instance de base de données RDS pour collecter, stocker et afficher les données de performance. Statspack génère des rapports basés sur des instantanés de bases de données, que vous pouvez 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 d'Oracle relative à Statspack.

Résolution

Utilisation d'Oracle Statspack sur Amazon RDS

1.    Si l'utilisateur perfstat existe, supprimez-le en exécutant la commande suivante :

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 groupe d'options, puis attribuez le groupe d'options à l'instance de base de données.

3.    Lorsque vous ajoutez l'option Statspack, les instances Amazon RDS qui exécutent Oracle installent automatiquement Statspack. Un utilisateur perfstat se crée pour collecter les statistiques de base de données et générer des rapports. Toutefois, cet utilisateur perfstat n'a pas accès à votre instance de base de données par défaut. Pour accorder l'accès à l'utilisateur perfstat, connectez-vous à l'instance de base de données en tant qu'utilisateur principal Amazon RDS et réinitialisez le mot de passe de l'utilisateur perfstat en exécutant une requête analogue à la suivante :

ALTER USER perfstat IDENTIFIED BY <new_password> ACCOUNT UNLOCK;

Remarque : n'oubliez pas de remplacer new_password par votre propre mot de passe.

4.    Lorsque vous êtes connecté en tant qu'utilisateur perfstat, créez un instantané de bases de données dans la console Amazon RDS ou exécutez la commande suivante pour capturer manuellement un instantané de bases de données :

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

Remarque : vous pouvez également modifier le niveau de capture d'instantané de bases de données pour obtenir des informations plus détaillées. Cet exemple de commande capture un instantané de bases de données au niveau 7, qui inclut l'utilisation, les verrous de ligne et les statistiques d'E/S au niveau du segment pour SQL et les plans d'exécution.

5.    Vous avez également la possibilité de configurer Oracle pour capturer automatiquement des instantanés de bases de données. La procédure suivante crée une tâche qui capture automatiquement un instantané de bases de données 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 de bases de données disponibles, exécutez la commande suivante :

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.    Une fois plus de deux instantanés de bases de données créés, créez un rapport Statspack en exécutant une commande analogue à la suivante :

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

Remarque : cet exemple de commande crée un rapport à l'aide des ID SNAP_11 et 12, et le nom du rapport est analogue à trace/ORCL_spreport <INITIAL_SNAP_ID> _ <FINAL_SNAP_ID> .lst.

8.    Pour afficher et télécharger le rapport, ouvrez la console Amazon RDS, puis choisissez Databases (Bases de données) dans le volet de navigation. Choisissez l'instance de base de données, puis l'onglet Log (Journal).

9.    Les instantanés de bases de données 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 de bases de données, spécifiez un SNAP_ID de début et un SNAP_ID de fin analogues à celui-ci :

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

Arrêter d'utiliser Oracle Statspack sur Amazon RDS

1.    Pour arrêter la récupération automatique de Statspack, supprimez la tâche que vous avez créée. Pour obtenir le numéro de tâche, exécutez la commande suivante :

SQL> select job, what FROM user_jobs;

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

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

Remarque : n'oubliez pas 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 les instantanés de bases de données sont supprimés, et tous les instantanés de bases de données stockés sont purgés.


Cet article vous a-t-il été utile ?

Cette page peut-elle être améliorée ?


Vous avez besoin d'aide ?