

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.

# Diagnostic des problèmes liés à RDS pour les instances de base de données Oracle
<a name="Appendix.Oracle.CommonDBATasks.Diagnostics"></a>

Oracle Database inclut une infrastructure de diagnostic des pannes que vous pouvez utiliser pour analyser les problèmes de base de données. Dans la terminologie Oracle, un *problème* est une erreur critique, par exemple, un bogue de code ou une corruption de données. Un *incident* est la survenue d'un problème. Si la même erreur se produit trois fois, l'infrastructure affiche trois incidents de ce problème. Pour plus d’informations, consultez [Diagnostic et résolution de problèmes](https://docs.oracle.com/en/database/oracle/oracle-database/19/admin/diagnosing-and-resolving-problems.html#GUID-8DEB1BE0-8FB9-4FB2-A19A-17CF6F5791C3) dans la documentation Oracle Database.

L'utilitaire ADRCI (Automatic Diagnostic Repository Command Interpreter) est un outil de ligne de commande Oracle qui vous permet de gérer les données de diagnostic. Par exemple, vous pouvez utiliser cet outil pour analyser les problèmes et regrouper les données de diagnostic. Un *package d'incidents* inclut les données de diagnostic d'un incident ou de tous les incidents qui se rapportent à un problème spécifique. Vous pouvez charger un package d'incidents, qui est implémenté en tant que fichier .zip, vers le support Oracle.

Pour offrir une expérience de service géré, Amazon RDS ne fournit pas l'accès shell à ADRCI. Pour effectuer des tâches de diagnostic pour votre instance de base de données RDS for Oracle, utilisez plutôt le package Amazon RDS `rdsadmin.rdsadmin_adrci_util`.

Grâce aux fonctions incluses dans `rdsadmin_adrci_util`, vous pouvez répertorier et regrouper les problèmes et les incidents, et également afficher les fichiers de trace. Toutes les fonctions renvoient un ID de tâche. Cet ID fait partie du nom du fichier journal qui contient la sortie ADRCI, comme dans `dbtask-task_id.log`. Le fichier journal réside dans le répertoire BDUMP. Vous pouvez télécharger le fichier journal à l’aide de la procédure suivante décrite dans [Téléchargement d'un fichier journal de base de données](USER_LogAccess.Procedural.Downloading.md).

## Paramètres courants pour les procédures de diagnostic
<a name="Appendix.Oracle.CommonDBATasks.CommonDiagParameters"></a>

Pour effectuer des tâches de diagnostic, utilisez les fonctions du package Amazon RDS `rdsadmin.rdsadmin_adrci_util`. Le package possède les paramètres communs suivants.


****  

| Nom du paramètre | Type de données | Valeurs valides | Par défaut | Obligatoire | Description | 
| --- | --- | --- | --- | --- | --- | 
|  `incident_id`  |  nombre  |  Un ID d'incident valide ou null   |  Null  |  Non  |  Si la valeur est null, la fonction affiche tous les incidents. Si la valeur n'est pas null et représente un ID d'incident valide, la fonction affiche l'incident spécifié.   | 
|  `problem_id`  |  nombre  |  Un ID de problème valide ou null  |  Null  |  Non  |  Si la valeur est null, la fonction affiche tous les problèmes. Si la valeur n'est pas null et représente un ID de problème valide, la fonction affiche le problème spécifié.  | 
|  `last`  |  nombre  |  Un entier valide supérieur à 0 ou null  |  Null  |  Non  |  Si la valeur est null, la fonction affiche au maximum 50 éléments. Si la valeur n'est pas null, la fonction affiche le nombre spécifié.  | 

## Répertorier les incidents
<a name="Appendix.Oracle.CommonDBATasks.Incidents"></a>

Pour répertorier les incidents de diagnostic pour Oracle, utilisez la fonction Amazon RDS `rdsadmin.rdsadmin_adrci_util.list_adrci_incidents`. Vous pouvez répertorier les incidents en mode basique ou détaillé. Par défaut, la fonction répertorie les 50 incidents les plus récents.

Cette fonction utilise les paramètres communs suivants :
+  `incident_id`
+  `problem_id`
+  `last`

Si vous spécifiez `incident_id` et `problem_id`, alors `incident_id` remplace `problem_id`. Pour de plus amples informations, veuillez consulter [Paramètres courants pour les procédures de diagnostic](#Appendix.Oracle.CommonDBATasks.CommonDiagParameters).

Cette fonction utilise le paramètre supplémentaire suivant.


****  

| Nom du paramètre | Type de données | Valeurs valides | Par défaut | Obligatoire | Description | 
| --- | --- | --- | --- | --- | --- | 
|  `detail`  |  booléen  | TRUE ou FALSE |  `FALSE`  |  Non  |  Si `TRUE`, la fonction répertorie les incidents en mode détail. Si `FALSE`, la fonction répertorie les incidents en mode basique.  | 

Pour répertorier tous les incidents, effectuez une requête à la fonction `rdsadmin.rdsadmin_adrci_util.list_adrci_incidents` sans aucun argument. La requête renvoie l'ID de tâche.

```
SQL> SELECT rdsadmin.rdsadmin_adrci_util.list_adrci_incidents AS task_id FROM DUAL;

TASK_ID
------------------
1590786706158-3126
```

Ou appelez la fonction `rdsadmin.rdsadmin_adrci_util.list_adrci_incidents` sans aucun argument et stockez la sortie dans une variable client SQL. Vous pouvez utiliser la variable dans d'autres instructions.

```
SQL> VAR task_id VARCHAR2(80);
SQL> EXEC :task_id := rdsadmin.rdsadmin_adrci_util.list_adrci_incidents;

PL/SQL procedure successfully completed.
```

Pour lire le fichier journal, appelez la procédure Amazon RDS `rdsadmin.rds_file_util.read_text_file`. Indiquez l'ID de tâche dans le nom du fichier. La sortie suivante montre trois incidents : 53523, 53522 et 53521.

```
SQL> SELECT * FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP', 'dbtask-'||:task_id||'.log'));

TEXT
-------------------------------------------------------------------------------------------------------------------------
2020-05-29 21:11:46.193 UTC [INFO ] Listing ADRCI incidents.
2020-05-29 21:11:46.256 UTC [INFO ]
ADR Home = /rdsdbdata/log/diag/rdbms/orcl_a/ORCL:
*************************************************************************
INCIDENT_ID PROBLEM_KEY                                                 CREATE_TIME
----------- ----------------------------------------------------------- ----------------------------------------
53523       ORA 700 [EVENT_CREATED_INCIDENT] [942] [SIMULATED_ERROR_003 2020-05-29 20:15:20.928000 +00:00
53522       ORA 700 [EVENT_CREATED_INCIDENT] [942] [SIMULATED_ERROR_002 2020-05-29 20:15:15.247000 +00:00
53521       ORA 700 [EVENT_CREATED_INCIDENT] [942] [SIMULATED_ERROR_001 2020-05-29 20:15:06.047000 +00:00
3 rows fetched


2020-05-29 21:11:46.256 UTC [INFO ] The ADRCI incidents were successfully listed.
2020-05-29 21:11:46.256 UTC [INFO ] The task finished successfully.

14 rows selected.
```

Pour répertorier un incident particulier, spécifiez son ID à l'aide du paramètre `incident_id`. Dans l'exemple suivant, vous interroger le fichier journal pour l'incident 53523 uniquement.

```
SQL> EXEC :task_id := rdsadmin.rdsadmin_adrci_util.list_adrci_incidents(incident_id=>53523);

PL/SQL procedure successfully completed.

SQL> SELECT * FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP', 'dbtask-'||:task_id||'.log'));

TEXT
------------------------------------------------------------------------------------------------------------------
2020-05-29 21:15:25.358 UTC [INFO ] Listing ADRCI incidents.
2020-05-29 21:15:25.426 UTC [INFO ]
ADR Home = /rdsdbdata/log/diag/rdbms/orcl_a/ORCL:
*************************************************************************
INCIDENT_ID          PROBLEM_KEY                                                 CREATE_TIME
-------------------- ----------------------------------------------------------- ---------------------------------
53523                ORA 700 [EVENT_CREATED_INCIDENT] [942] [SIMULATED_ERROR_003 2020-05-29 20:15:20.928000 +00:00
1 rows fetched


2020-05-29 21:15:25.427 UTC [INFO ] The ADRCI incidents were successfully listed.
2020-05-29 21:15:25.427 UTC [INFO ] The task finished successfully.

12 rows selected.
```

## Répertorier les problèmes
<a name="Appendix.Oracle.CommonDBATasks.Problems"></a>

Pour répertorier les problèmes de diagnostic pour Oracle, utilisez la fonction Amazon RDS `rdsadmin.rdsadmin_adrci_util.list_adrci_problems`.

Par défaut, la fonction répertorie les 50 problèmes les plus récents. 

Cette fonction utilise les paramètres courants `problem_id` et `last`. Pour de plus amples informations, veuillez consulter [Paramètres courants pour les procédures de diagnostic](#Appendix.Oracle.CommonDBATasks.CommonDiagParameters).

Pour obtenir l'ID de tâche pour tous les problèmes, appelez la fonction `rdsadmin.rdsadmin_adrci_util.list_adrci_problems` sans argument et stockez la sortie dans une variable client SQL.

```
SQL> EXEC :task_id := rdsadmin.rdsadmin_adrci_util.list_adrci_problems;

PL/SQL procedure successfully completed.
```

Pour lire le fichier journal, appelez la fonction `rdsadmin.rds_file_util.read_text_file`, en fournissant l'ID de tâche dans le nom du fichier. Dans la sortie suivante, le fichier journal présente trois problèmes : 1, 2 et 3.

```
SQL> SELECT * FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP', 'dbtask-'||:task_id||'.log'));

TEXT
----------------------------------------------------------------------------------------------------------------------
2020-05-29 21:18:50.764 UTC [INFO ] Listing ADRCI problems.
2020-05-29 21:18:50.829 UTC [INFO ]
ADR Home = /rdsdbdata/log/diag/rdbms/orcl_a/ORCL:
*************************************************************************
PROBLEM_ID   PROBLEM_KEY                                                 LAST_INCIDENT        LASTINC_TIME
---------- ----------------------------------------------------------- ------------- ---------------------------------
2          ORA 700 [EVENT_CREATED_INCIDENT] [942] [SIMULATED_ERROR_003 53523         2020-05-29 20:15:20.928000 +00:00
3          ORA 700 [EVENT_CREATED_INCIDENT] [942] [SIMULATED_ERROR_002 53522         2020-05-29 20:15:15.247000 +00:00
1          ORA 700 [EVENT_CREATED_INCIDENT] [942] [SIMULATED_ERROR_001 53521         2020-05-29 20:15:06.047000 +00:00
3 rows fetched


2020-05-29 21:18:50.829 UTC [INFO ] The ADRCI problems were successfully listed.
2020-05-29 21:18:50.829 UTC [INFO ] The task finished successfully.

14 rows selected.
```

Dans l'exemple suivant, vous répertoriez uniquement le problème 3.

```
SQL> EXEC :task_id := rdsadmin.rdsadmin_adrci_util.list_adrci_problems(problem_id=>3);

PL/SQL procedure successfully completed.
```

Pour lire le fichier journal du problème 3, appelez `rdsadmin.rds_file_util.read_text_file`. Indiquez l'ID de tâche dans le nom du fichier.

```
SQL> SELECT * FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP', 'dbtask-'||:task_id||'.log'));

TEXT
-------------------------------------------------------------------------
2020-05-29 21:19:42.533 UTC [INFO ] Listing ADRCI problems.
2020-05-29 21:19:42.599 UTC [INFO ]
ADR Home = /rdsdbdata/log/diag/rdbms/orcl_a/ORCL:
*************************************************************************
PROBLEM_ID PROBLEM_KEY                                                 LAST_INCIDENT LASTINC_TIME
---------- ----------------------------------------------------------- ------------- ---------------------------------
3          ORA 700 [EVENT_CREATED_INCIDENT] [942] [SIMULATED_ERROR_002 53522         2020-05-29 20:15:15.247000 +00:00
1 rows fetched


2020-05-29 21:19:42.599 UTC [INFO ] The ADRCI problems were successfully listed.
2020-05-29 21:19:42.599 UTC [INFO ] The task finished successfully.

12 rows selected.
```

## Création de packages d'incidents
<a name="Appendix.Oracle.CommonDBATasks.IncPackages"></a>

Vous pouvez créer des packages d'incident à l'aide de la fonction Amazon RDS `rdsadmin.rdsadmin_adrci_util.create_adrci_package`. La sortie est un fichier .zip que vous pouvez fournir au support Oracle.

Cette fonction utilise les paramètres communs suivants :
+ `problem_id`
+ `incident_id`

Assurez-vous de spécifier l'un des paramètres précédents. Si vous spécifiez les deux paramètres, `incident_id` remplace `problem_id`. Pour plus d'informations, consultez [Paramètres courants pour les procédures de diagnostic](#Appendix.Oracle.CommonDBATasks.CommonDiagParameters).

Pour créer un package pour un incident spécifique, appelez la fonction Amazon RDS `rdsadmin.rdsadmin_adrci_util.create_adrci_package` avec le paramètre `incident_id`. L'exemple suivant crée un package pour l'incident 53523.

```
SQL> EXEC :task_id := rdsadmin.rdsadmin_adrci_util.create_adrci_package(incident_id=>53523);

PL/SQL procedure successfully completed.
```

Pour lire le fichier journal, appelez le fichier `rdsadmin.rds_file_util.read_text_file`. Vous pouvez fournir l'ID de tâche dans le nom du fichier. La sortie indique que vous avez généré le package d'incidents `ORA700EVE_20200529212043_COM_1.zip`.

```
SQL> SELECT * FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP', 'dbtask-'||:task_id||'.log'));

TEXT
--------------------------------------------------------------------------------------------------------------------------------------
2020-05-29 21:20:43.031 UTC [INFO ] The ADRCI package is being created.
2020-05-29 21:20:47.641 UTC [INFO ] Generated package 1 in file /rdsdbdata/log/trace/ORA700EVE_20200529212043_COM_1.zip, mode complete
2020-05-29 21:20:47.642 UTC [INFO ] The ADRCI package was successfully created.
2020-05-29 21:20:47.642 UTC [INFO ] The task finished successfully.
```

Pour regrouper les données de diagnostic concernant un problème particulier, spécifiez son ID à l'aide du paramètre `problem_id`. Dans l'exemple suivant, vous regrouper les données pour le problème 3 uniquement.

```
SQL> EXEC :task_id := rdsadmin.rdsadmin_adrci_util.create_adrci_package(problem_id=>3);

PL/SQL procedure successfully completed.
```

Pour lire la sortie de la tâche, appelez `rdsadmin.rds_file_util.read_text_file`, en fournissant l'ID de la tâche dans le nom du fichier. La sortie indique que vous avez généré le package d'incidents `ORA700EVE_20200529212111_COM_1.zip`.

```
SQL> SELECT * FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP', 'dbtask-'||:task_id||'.log'));

TEXT
------------------------------------------------------------------------------------------------------------------------------------------------------------
2020-05-29 21:21:11.050 UTC [INFO ] The ADRCI package is being created.
2020-05-29 21:21:15.646 UTC [INFO ] Generated package 2 in file /rdsdbdata/log/trace/ORA700EVE_20200529212111_COM_1.zip, mode complete
2020-05-29 21:21:15.646 UTC [INFO ] The ADRCI package was successfully created.
2020-05-29 21:21:15.646 UTC [INFO ] The task finished successfully.
```

Vous pouvez également télécharger le fichier journal. Pour de plus amples informations, veuillez consulter [Téléchargement d'un fichier journal de base de données](USER_LogAccess.Procedural.Downloading.md).

## Affichage des fichiers de trace
<a name="Appendix.Oracle.CommonDBATasks.ShowTrace"></a>

Vous pouvez utiliser la fonction Amazon RDS `rdsadmin.rdsadmin_adrci_util.show_adrci_tracefile` pour répertorier les fichiers de suivi dans l'annuaire de suivi et tous les annuaires d'incidents sous la page d'accueil ADR actuelle. Vous pouvez également afficher le contenu des fichiers de suivi et des fichiers de suivi des incidents.

Cette fonction utilise le paramètre suivant.


****  

| Nom du paramètre | Type de données | Valeurs valides | Par défaut | Obligatoire | Description | 
| --- | --- | --- | --- | --- | --- | 
|  `filename`  |  varchar2  | Un nom de fichier de trace valide |  Null  |  Non  |  Si la valeur est null, la fonction affiche tous les fichiers de trace. Si elle n'est pas null, la fonction affiche le fichier spécifié.  | 

Pour afficher le fichier de suivi, appelez la fonction Amazon RDS `rdsadmin.rdsadmin_adrci_util.show_adrci_tracefile`.

```
SQL> EXEC :task_id := rdsadmin.rdsadmin_adrci_util.show_adrci_tracefile;

PL/SQL procedure successfully completed.
```

Pour répertorier les noms des fichiers de trace, appelez la procédure Amazon RDS `rdsadmin.rds_file_util.read_text_file`, en fournissant l'ID de tâche dans le nom du fichier.

```
SQL> SELECT * FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP', 'dbtask-'||:task_id||'.log')) WHERE TEXT LIKE '%/alert_%';

TEXT
---------------------------------------------------------------
     diag/rdbms/orcl_a/ORCL/trace/alert_ORCL.log.2020-05-28
     diag/rdbms/orcl_a/ORCL/trace/alert_ORCL.log.2020-05-27
     diag/rdbms/orcl_a/ORCL/trace/alert_ORCL.log.2020-05-26
     diag/rdbms/orcl_a/ORCL/trace/alert_ORCL.log.2020-05-25
     diag/rdbms/orcl_a/ORCL/trace/alert_ORCL.log.2020-05-24
     diag/rdbms/orcl_a/ORCL/trace/alert_ORCL.log.2020-05-23
     diag/rdbms/orcl_a/ORCL/trace/alert_ORCL.log.2020-05-22
     diag/rdbms/orcl_a/ORCL/trace/alert_ORCL.log.2020-05-21
     diag/rdbms/orcl_a/ORCL/trace/alert_ORCL.log

9 rows selected.
```

Dans l’exemple suivant, vous générez la sortie pour `alert_ORCL.log`.

```
SQL> EXEC :task_id := rdsadmin.rdsadmin_adrci_util.show_adrci_tracefile('diag/rdbms/orcl_a/ORCL/trace/alert_ORCL.log');

PL/SQL procedure successfully completed.
```

Pour lire le fichier journal, appelez `rdsadmin.rds_file_util.read_text_file`. Indiquez l'ID de tâche dans le nom du fichier. La sortie affiche les 10 premières lignes d'alert\$1ORCL.log.

```
SQL> SELECT * FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP', 'dbtask-'||:task_id||'.log')) WHERE ROWNUM <= 10;

TEXT
-----------------------------------------------------------------------------------------
2020-05-29 21:24:02.083 UTC [INFO ] The trace files are being displayed.
2020-05-29 21:24:02.128 UTC [INFO ] Thu May 28 23:59:10 2020
Thread 1 advanced to log sequence 2048 (LGWR switch)
  Current log# 3 seq# 2048 mem# 0: /rdsdbdata/db/ORCL_A/onlinelog/o1_mf_3_hbl2p8xs_.log
Thu May 28 23:59:10 2020
Archived Log entry 2037 added for thread 1 sequence 2047 ID 0x5d62ce43 dest 1:
Fri May 29 00:04:10 2020
Thread 1 advanced to log sequence 2049 (LGWR switch)
  Current log# 4 seq# 2049 mem# 0: /rdsdbdata/db/ORCL_A/onlinelog/o1_mf_4_hbl2qgmh_.log
Fri May 29 00:04:10 2020

10 rows selected.
```

Vous pouvez également télécharger le fichier journal. Pour de plus amples informations, veuillez consulter [Téléchargement d'un fichier journal de base de données](USER_LogAccess.Procedural.Downloading.md).