Diagnostic des problèmes liés aux instances RDS de base de données Oracle - 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.

Diagnostic des problèmes liés aux instances RDS de base de données Oracle

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 de plus amples informations, veuillez consulter Diagnostic et résolution de problèmes dans la documentation Oracle Database.

L'utilitaire Automatic Diagnostic Repository Command Interpreter (ADRCI) est un outil de ligne de commande Oracle que vous utilisez pour 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 d'accès shell àADRCI. Pour effectuer des tâches de diagnostic RDS pour votre instance de base de données for Oracle, utilisez le RDS package Amazonrdsadmin.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 identifiant fait partie du nom du fichier journal qui contient la ADRCI sortie, comme dansdbtask-task_id.log. Le fichier journal se trouve dans le BDUMP répertoire. Vous pouvez télécharger le fichier journal en suivant la procédure décrite dansTéléchargement d'un fichier journal de base de données.

Paramètres courants pour les procédures de diagnostic

Pour effectuer des tâches de diagnostic, utilisez les fonctions RDS du package Amazonrdsadmin.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

Pour répertorier les incidents de diagnostic pour Oracle, utilisez la RDS fonction Amazonrdsadmin.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.

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

Vous pouvez également appeler la rdsadmin.rdsadmin_adrci_util.list_adrci_incidents fonction sans aucun argument et stocker le résultat dans une variable SQL client. 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 RDS procédure Amazonrdsadmin.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

Pour répertorier les problèmes de diagnostic relatifs à Oracle, utilisez la RDS fonction Amazonrdsadmin.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.

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

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

Vous pouvez créer des packages d'incidents à l'aide de la RDS fonction Amazonrdsadmin.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 de plus amples informations, veuillez consulter Paramètres courants pour les procédures de diagnostic.

Pour créer un package pour un incident spécifique, appelez la RDS fonction Amazon rdsadmin.rdsadmin_adrci_util.create_adrci_package avec le incident_id paramètre. 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.

Affichage des fichiers de trace

Vous pouvez utiliser la RDS fonction Amazon rdsadmin.rdsadmin_adrci_util.show_adrci_tracefile pour répertorier les fichiers de trace dans le répertoire de trace et tous les répertoires d'incidents dans le répertoire d'ADRaccueil actuel. 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 trace, appelez la RDS fonction Amazonrdsadmin.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 RDS procédure rdsadmin.rds_file_util.read_text_file Amazon 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 une sortie pouralert_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 de alert_ ORCL .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.