Fichiers journaux 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.

Fichiers journaux de base de données Oracle

Vous pouvez accéder aux journaux des alertes, aux fichiers d'audits et aux fichiers de trace Oracle à l'aide de la console Amazon RDS ou de l'API. Pour plus d'informations sur l'affichage, le téléchargement ou la consultation des journaux de base de données basés sur des fichiers, consultez Surveillance des fichiers journaux Amazon RDS.

Les fichiers d'audit Oracle fournis sont les fichiers d'audit Oracle standard. Amazon RDS prend en charge la fonction d'audit fin (FGA) Oracle. Cependant, l'accès aux journaux ne donne pas accès aux événements FGA stockés dans la table SYS.FGA_LOG$, accessibles via la vue DBA_FGA_AUDIT_TRAIL.

L'opération de l'API DescribeDBLogFiles qui répertorie les fichiers journaux Oracle disponibles pour une instance de base de données ignore le paramètre MaxRecords et renvoie jusqu'à 1 000 enregistrements. L'appel renvoie LastWritten sous la forme d'une date POSIX en millisecondes.

Programme de rétention

Le moteur de base de données Oracle peut procéder à la rotation des fichiers journaux s'ils deviennent très volumineux. Pour conserver les fichiers d'audit ou de trace, vous devez les télécharger. Si vous stockez les fichiers localement, vous réduisez vos coûts de stockage Amazon RDS et libérez plus d'espace pour vos données.

Le tableau suivant présente le programme de rétention des journaux d'alertes, des fichiers d'audit et des fichiers de trace Oracle sur Amazon RDS.

Log type (Type de journal) Programme de rétention

Journaux des alertes

Le journal d'alerte de texte fait l'objet d'une rotation quotidienne avec une rétention de 30 jours gérée par Amazon RDS. Le journal d'alerte XML est conservé au moins 7 jours. Vous pouvez accéder à ce journal grâce à la vue ALERTLOG.

Fichiers d'audit

La période de rétention par défaut des fichiers d'audit est de 7 jours. Amazon RDS forrait supprimer des fichiers d'audit datant de plus de sept jours.

Fichiers de trace

La période de rétention par défaut des fichiers de trace est de 7 jours. Amazon RDS forrait supprimer des fichiers de trace datant de plus de sept jours.

Journaux de l'écouteur

La période de rétention par défaut pour les journaux d'écouteur est de 7 jours. Amazon RDS forrait supprimer les journaux d'erreurs datant de plus de 7 jours.

Note

Les fichiers d'audit et les fichiers de trace partagent la même configuration de rétention.

Utilisation des fichiers de trace Oracle

Vous trouverez ci-après de descriptions de procédures Amazon RDS permettant de créer, d'actualiser, de supprimer les fichiers de trace ou d'y accéder.

Liste de fichiers

Vous pouvez utiliser l'une ou l'autre de deux procédures permettent d'accéder à tous les fichiers dans le chemin background_dump_dest. La première actualise la liste de l'ensemble des fichiers actuellement dans background_dump_dest.

EXEC rdsadmin.manage_tracefiles.refresh_tracefile_listing;

Une fois la liste actualisée, interrogez la vue suivante pour accéder aux résultats.

SELECT * FROM rdsadmin.tracefile_listing;

Vous pouvez également utiliser FROM table pour diffuser des données non relationnelles dans un format de table afin de répertorier le contenu de l'annuaire de bases de données.

SELECT * FROM TABLE(rdsadmin.rds_file_util.listdir('BDUMP'));

La requête suivante affiche le texte d'un fichier journal.

SELECT text FROM TABLE(rdsadmin.rds_file_util.read_text_file('BDUMP','alert_dbname.log.date'));

Sur un réplica en lecture, obtenez le nom du répertoire BDUMP en interrogeant V$DATABASE.DB_UNIQUE_NAME. Si le nom unique est DATABASE_B, le répertoire BDUMP est BDUMP_B. L'exemple suivant interroge le nom BDUMP sur un réplica, puis utilise ce nom pour interroger le contenu de alert_DATABASE.log.2020-06-23.

SELECT 'BDUMP' || (SELECT regexp_replace(DB_UNIQUE_NAME,'.*(_[A-Z])', '\1') FROM V$DATABASE) AS BDUMP_VARIABLE FROM DUAL; BDUMP_VARIABLE -------------- BDUMP_B SELECT TEXT FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP_B','alert_DATABASE.log.2020-06-23'));

Génération de fichiers de trace et suivi d'une session

Puisqu'il n'existe aucune restriction sur ALTER SESSION, un grand nombre de méthodes standard permettant de générer des fichiers de trace dans Oracle restent disponibles pour les instances de base de données Amazon RDS. Les procédures suivantes sont fournies pour les fichiers de trace pour lesquels l'accès doit être élargi.

Méthode Oracle Méthode Amazon RDS

oradebug hanganalyze 3

EXEC rdsadmin.manage_tracefiles.hanganalyze;

oradebug dump systemstate 266

EXEC rdsadmin.manage_tracefiles.dump_systemstate;

Vous pouvez utiliser de nombreuses méthodes standard pour suivre des sessions individuelles connectées à une instance de base de données Oracle dans Amazon RDS. Pour activer le suivi d'une session, vous pouvez exécuter des sous-programmes dans des packages PL/SQL fournis par Oracle, tels que DBMS_SESSION et DBMS_MONITOR. Pour plus d'informations, consultez Activation du suivi d'une session dans la documentation d'Oracle.

Récupération de fichiers de trace

Vous pouvez récupérer tous les fichiers dans background_dump_dest à l'aide d'une requête SQL standard sur un tableau Amazon RDS externe gérée. Pour utiliser cette méthode, vous devez exécuter la procédure définissant l'emplacement de cette table sur le fichier de trace spécifique.

Par exemple, vous pouvez utiliser la vue rdsadmin.tracefile_listing indiquée ci-dessus pour répertorier tous les fichiers de trace sur le système. Vous pouvez ensuite définir la vue tracefile_table afin qu'elle pointe vers le fichier de trace souhaité à l'aide de la procédure suivante.

EXEC rdsadmin.manage_tracefiles.set_tracefile_table_location('CUST01_ora_3260_SYSTEMSTATE.trc');

L'exemple suivant créé une table externe selon le schéma actuel. L'emplacement est défini sur le fichier fourni. Vous pouvez récupérer le contenu dans un fichier local à l'aide d'une requête SQL.

SPOOL /tmp/tracefile.txt SELECT * FROM tracefile_table; SPOOL OFF;

Purge des fichiers de trace

Les fichiers de trace peuvent s'accumuler et consommer de l'espace sur le disque. Par défaut, Amazon RDS purge les fichiers de trace et les fichiers journaux de plus de sept jours. Vous pouvez afficher et définir la période de rétention des fichiers à l'aide de la procédure show_configuration. Vous devez exécuter la commande SET SERVEROUTPUT ON afin de pouvoir afficher les résultats de la configuration.

L'exemple suivant affiche la période de rétention des fichiers de trace actuelle, puis définit une nouvelle période.

# Show the current tracefile retention SQL> EXEC rdsadmin.rdsadmin_util.show_configuration; NAME:tracefile retention VALUE:10080 DESCRIPTION:tracefile expiration specifies the duration in minutes before tracefiles in bdump are automatically deleted. # Set the tracefile retention to 24 hours: SQL> EXEC rdsadmin.rdsadmin_util.set_configuration('tracefile retention',1440); SQL> commit; #show the new tracefile retention SQL> EXEC rdsadmin.rdsadmin_util.show_configuration; NAME:tracefile retention VALUE:1440 DESCRIPTION:tracefile expiration specifies the duration in minutes before tracefiles in bdump are automatically deleted.

En complément du processus de purge périodique, vous pouvez supprimer manuellement des fichiers de background_dump_dest. L'exemple suivant montre comment purger tous les fichiers datant de plus de cinq minutes.

EXEC rdsadmin.manage_tracefiles.purge_tracefiles(5);

Vous pouvez également purger tous les fichiers correspondant à un modèle spécifique (dans ce cas, n'incluez pas l'extension de fichier, par exemple .trc). L'exemple suivant montre comment purger tous les fichiers commençant par SCHPOC1_ora_5935.

EXEC rdsadmin.manage_tracefiles.purge_tracefiles('SCHPOC1_ora_5935');

Publication de journaux Oracle sur Amazon CloudWatch Logs

Vous pouvez configurer votre instance de base de données RDS pour Oracle afin de publier les données de journal dans un groupe de CloudWatch journaux dans Amazon Logs. Avec CloudWatch Logs, vous pouvez analyser les données du journal et les utiliser CloudWatch pour créer des alarmes et afficher des métriques. Vous pouvez utiliser CloudWatch les journaux pour stocker vos enregistrements de journal dans un espace de stockage hautement durable.

Amazon RDS publie chaque journal de base de données Oracle sous la forme d'un flux de base de données distinct dans le groupe de journaux. Par exemple, si vous configurez la fonction d'exportation de sorte à inclure le journal d'audit, les données d'audit sont stockées dans un flux de journal d'audit dans le groupe de journaux /aws/rds/instance/my_instance/audit. Le tableau suivant récapitule les conditions requises pour que RDS for Oracle publie des journaux sur Amazon CloudWatch Logs.

Nom du journal Exigence Par défaut

Journal des alertes

Aucune. Vous ne pouvez pas désactiver ce journal.

Activées

Journal de suivi

Définissez le trace_enabled paramètre sur TRUE ou laissez-le sur sa valeur par défaut.

TRUE

Journal d'audit

Définissez le paramètre audit_trail sur OS, XML ou EXTENDED.

NONE

Journal d'écoute

Aucune. Vous ne pouvez pas désactiver ce journal.

Activées

Journal d'Oracle Management Agent

Aucune. Vous ne pouvez pas désactiver ce journal.

Activées

Le journal d'Oracle Management Agent contient les groupes de journaux présentés dans le tableau suivant.

Nom du journal CloudWatch groupe de journaux
emctl.log oemagent-emctl
emdctlj.log oemagent-emdctlj
gcagent.log oemagent-gcagent
gcagent_errors.log oemagent-gcagent-errors
emagent.nohup oemagent-emagent-nohup
secure.log oemagent-secure

Pour plus d'informations, consultez Localisation des fichiers de suivi et des fichiers journaux de Management Agent dans la documentation Oracle.

Pour publier les journaux Oracle DB dans CloudWatch Logs à partir du AWS Management Console
  1. Ouvrez la console Amazon RDS à l'adresse https://console.aws.amazon.com/rds/.

  2. Dans le panneau de navigation, choisissez Bases de données, puis l'instance de base de données que vous souhaitez modifier.

  3. Sélectionnez Modify (Modifier).

  4. Dans la section Exportations de journaux, choisissez les journaux que vous souhaitez commencer à publier dans CloudWatch Logs.

  5. Choisissez Continuer, puis Modifier l'instance de base de données sur la page récapitulative.

Pour publier les journaux Oracle vous pouvez utiliser la commande modify-db-instance avec les paramètres suivants :

  • --db-instance-identifier

  • --cloudwatch-logs-export-configuration

Note

Une modification apportée à l'option --cloudwatch-logs-export-configuration est toujours appliquée immédiatement à l'instance de base de données. Par conséquent, les options --apply-immediately et --no-apply-immediately sont sans effet.

Vous pouvez également publier des journaux Oracle en utilisant les commandes suivantes :

Exemple

L'exemple suivant crée une instance de base de données Oracle avec la publication CloudWatch des journaux activée. La valeur --cloudwatch-logs-export-configuration est un tableau de chaînes JSON. Les chaînes peuvent être une combinaison de alert, audit, listener et trace.

Pour LinuxmacOS, ou Unix :

aws rds create-db-instance \ --db-instance-identifier mydbinstance \ --cloudwatch-logs-export-configuration '["trace","audit","alert","listener","oemagent"]' \ --db-instance-class db.m5.large \ --allocated-storage 20 \ --engine oracle-ee \ --engine-version 12.1.0.2.v18 \ --license-model bring-your-own-license \ --master-username myadmin \ --manage-master-user-password

Dans Windows :

aws rds create-db-instance ^ --db-instance-identifier mydbinstance ^ --cloudwatch-logs-export-configuration trace alert audit listener oemagent ^ --db-instance-class db.m5.large ^ --allocated-storage 20 ^ --engine oracle-ee ^ --engine-version 12.1.0.2.v18 ^ --license-model bring-your-own-license ^ --master-username myadmin ^ --manage-master-user-password
Exemple

L'exemple suivant modifie une instance de base de données Oracle existante pour publier des fichiers CloudWatch journaux dans Logs. La valeur --cloudwatch-logs-export-configuration n'est pas un objet JSON. La clé pour cet objet est EnableLogTypes et sa valeur est un tableau de chaînes avec une combinaison quelconque de alert, audit, listener et trace.

Pour LinuxmacOS, ou Unix :

aws rds modify-db-instance \ --db-instance-identifier mydbinstance \ --cloudwatch-logs-export-configuration '{"EnableLogTypes":["trace","alert","audit","listener","oemagent"]}'

Dans Windows :

aws rds modify-db-instance ^ --db-instance-identifier mydbinstance ^ --cloudwatch-logs-export-configuration EnableLogTypes=\"trace\",\"alert\",\"audit\",\"listener\",\"oemagent\"
Exemple

L'exemple suivant modifie une instance de base de données Oracle existante pour désactiver la publication des fichiers journaux d'audit et d'écoute dans Logs. CloudWatch La valeur --cloudwatch-logs-export-configuration n'est pas un objet JSON. La clé pour cet objet est DisableLogTypes et sa valeur est un tableau de chaînes avec une combinaison quelconque de alert, audit, listener et trace.

Pour LinuxmacOS, ou Unix :

aws rds modify-db-instance \ --db-instance-identifier mydbinstance \ --cloudwatch-logs-export-configuration '{"DisableLogTypes":["audit","listener"]}'

Dans Windows :

aws rds modify-db-instance ^ --db-instance-identifier mydbinstance ^ --cloudwatch-logs-export-configuration DisableLogTypes=\"audit\",\"listener\"

Vous pouvez publier des journaux Oracle Database avec l'API RDS. Vous pouvez appeler l'action ModifyDBInstance avec les paramètres suivants :

  • DBInstanceIdentifier

  • CloudwatchLogsExportConfiguration

Note

Une modification apportée au paramètre CloudwatchLogsExportConfiguration est toujours appliquée immédiatement à l'instance de base de données. Par conséquent, le paramètre ApplyImmediately est sans effet.

Vous pouvez également publier des journaux Oracle en appelant les opérations de l'API RDS suivantes :

Exécutez l'une de ces opérations d'API RDS avec les paramètres suivants :

  • DBInstanceIdentifier

  • EnableCloudwatchLogsExports

  • Engine

  • DBInstanceClass

D'autres paramètres peuvent être requis en fonction de l'opération RDS que vous exécutez.

Méthodes précédentes pour accéder aux journaux des alertes et aux journaux de l'écouteur

Vous pouvez consulter le journal d'alertes à l'aide de la console Amazon RDS. Vous pouvez également utiliser l'instruction SQL suivante pour accéder au journal d'alertes.

SELECT message_text FROM alertlog;

La vue listenerlog contient des entrées pour Oracle Database version 12.1.0.2 et antérieure. Pour accéder au journal de l'écouteur pour ces versions de base de données, utilisez la requête suivante.

SELECT message_text FROM listenerlog;

Pour les versions 12.2.0.1 et ultérieures d'Oracle Database, accédez au journal du récepteur à l'aide d'Amazon Logs. CloudWatch

Note

Oracle procède à la rotation des journaux des alertes et de l'écouteur lorsqu'ils dépassent 10 Mo. A ce moment là, ils ne sont pas disponibles dans les vues Amazon RDS.