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.
-
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;
-
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.
-
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.
-
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;
-
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;
-
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.
-
Vous pouvez également configurer Oracle afin 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;
-
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
:: ::
-
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.
-
Pour afficher et télécharger le rapport, ouvrez la console Amazon Aurora et 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.
-
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 :