Exécution des tâches de diagnostic courantes pour les instances 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.

Exécution des tâches de diagnostic courantes pour les instances 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 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 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 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 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

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 plus d'informations, consultez 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

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

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 plus d'informations, consultez Paramètres courants pour les procédures de diagnostic.

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

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.

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 plus d'informations, consultez Téléchargement d'un fichier journal de base de données.

Affichage des fichiers de trace

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 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 d'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 plus d'informations, consultez Téléchargement d'un fichier journal de base de données.