Événements du service de base de données

La mise en oeuvre de la fonction Événements du service de base de données vous permet d'être informé des problèmes d'état liés à vos bases de données Oracle ou à d'autres composants du système de base de données.

Il est possible qu'Oracle Database ou qu'Oracle Clusterware ne soit pas sain ou que divers composants du système manquent d'espace dans le système de base de données. Les clients ne sont pas avisés de cette situation. La mise en oeuvre de la fonction Événements de service de base de données génère des événements pour les opérations et les conditions du plan de données, ainsi que des avis pour les clients en tirant parti du service d'événements pour OCI et des mécanismes d'avis existants dans leur location. Les clients peuvent ensuite créer des sujets et s'abonner à ces sujets au moyen de courriels, de fonctions ou de flux.

Note :

Le flux d'événements dans le système de base de données dépend de l'agent Oracle Trace File Analyzer (TFA) et d'Oracle Database Cloud Service (DBCS). Assurez-vous que ces composants sont opérationnels.

Recevoir des avis concernant les événements du service de base de données

Abonnez-vous aux événements du service de base de données pour en être avisé. Pour recevoir des avis, abonnez-vous aux événements du service de base de données et recevez des avis à l'aide du service d'avis Oracle, voir Aperçu des avis. Pour plus d'informations sur les événements Oracle Cloud Infrastructure, voir Aperçu des événements.

Service d'événements - Types d'événement

  • Base de données - Critique
  • Noeud de base de données - Critique
  • Noeud de base de données - Erreur
  • Noeud de base de données - Avertissement
  • Noeud de base de données - Information
  • Système de BD - Critique

Types d'événement du service de base de données

Le tableau suivant liste les types d'événement émis par le service de base de données.

Note :

  • Les événements critiques sont déclenchés par diverses conditions et erreurs critiques qui perturbent la base de données ou d'autres composants essentiels. Par exemple, les erreurs de non-réponse et les erreurs de disponibilité des bases de données, des noeuds de base de données et des systèmes de base de données indiquent quand une ressource devient indisponible.
  • Les événements d'information sont déclenchés lorsque la base de données et d'autres composants critiques fonctionnent comme prévu. Par exemple, un arrêt normal de CRS, de la base de données conteneur, du client ou du module d'écoute SCAN, ou un démarrage de ces composants créera un événement dont la gravité est INFO.
  • Les limites de seuil réduisent le nombre d'avis que les clients recevront pour des événements d'incident similaires tout en veillant à ce qu'ils reçoivent les événements d'incident et les rappels en temps opportun.

Événements du service de base de données

Note :

En plus des événements répertoriés ci-dessous, Oracle analyse des événements supplémentaires pour fournir le plus haut niveau d'opérations de service et de soutien afin de garantir la haute disponibilité des services.

Tableau - : Événements du service de base de données

Nom convivial Nom d'événement Description Mesure corrective Type d'événement Seuil
Utilisation des ressources - Utilisation des disques HEALTH.DB_GUEST.FILESYSTEM.FREE_SPACE

Cet événement est signalé lorsque l'espace libre du système de fichiers invité de la machine virtuelle est inférieur à 10 % (déterminé par la commande df(1) du système d'exploitation) pour les systèmes de fichiers suivants :

  • /
  • /u01
  • /u02
  • /var (X8M et versions ultérieures uniquement)
  • /tmp (X8M et versions ultérieures uniquement)
HEALTH-DB_GUEST-FILESYSTEM-FREE_SPACE com.oraclecloud.databaseservice.dbnode.critical Seuil critique : 90 %
Statut En fonction/Hors fonction du service CRS AVAILABILITY.DB_GUEST.CRS_INSTANCE.DOWN. Un événement de type CRITICAL est créé lorsque le service CRS est détecté comme étant arrêté. AVAILABILITY-DB_GUEST-CRS_INSTANCE.DOWN com.oraclecloud.databaseservice.dbnode.critical (si .DOWN et NOT "user_action") S.O.
AVAILABILITY.DB_GUEST.CRS_INSTANCE.DOWN_CLEARED Un événement de type INFORMATION est créé une fois qu'il a été déterminé que l'événement correspondant à l'arrêt du CRS a été effacé. S.O. com.oraclecloud.databaseservice.dbnode.information (si .DOWN_CLEARED) S.O.
AVAILABILITY.DB_GUEST.CRS_INSTANCE.EVICTION Un événement de type CRITICAL est créé. AVAILABILITY-DB_GUEST-CRS_INSTANCE-EVICTION com.oraclecloud.databaseservice.dbnode.critical S.O.
Module d'écoute SCAN en fonction/hors fonction AVAILABILITY.DB_CLUSTER.SCAN_LISTENER.DOWN

Un événement DOWN est créé lorsqu'un module d'écoute SCAN tombe en panne. L'événement est de type INFORMATION lorsqu'un module d'écoute SCAN est arrêté en raison d'une action de l'utilisateur, par exemple avec les commandes Server Control Utility (srvctl) ou Listener Control (lsnrctl), ou toute action de maintenance Oracle Cloud qui utilise ces commandes, telle que l'exécution d'une mise à jour du logiciel Grid Infrastructure. L'événement est de type CRITICAL si le module d'écoute SCAN tombe en panne de manière inattendue. Un événement DOWN_CLEARED correspondant est créé lors du démarrage d'un module d'écoute SCAN.

Il existe trois modules d'écoute SCAN par grappe nommés LISTENER_SCAN[1,2,3].

AVAILABILITY-DB_CLUSTER-SCAN_LISTENER-DOWN com.oraclecloud.databaseservice.dbnode.critical (si .DOWN et NOT "user_action") S.O.
AVAILABILITY.DB_CLUSTER.SCAN_LISTENER.DOWN_CLEARED Un événement de type INFORMATION est créé une fois qu'il a été déterminé que l'événement correspondant à l'arrêt du module d'écoute SCAN a été effacé. S.O. com.oraclecloud.databaseservice.dbnode.information (si .DOWN_CLEARED) S.O.
Module d'écoute Oracle Net en fonction/hors fonction AVAILABILITY.DB_GUEST.CLIENT_LISTENER.DOWN

Un événement DOWN est créé lorsqu'un module d'écoute client tombe en panne. L'événement est de type INFORMATION lorsqu'un module d'écoute client est arrêté en raison d'une action de l'utilisateur, par exemple avec les commandes Server Control Utility (srvctl) ou Listener Control (lsnrctl), ou toute action de maintenance Oracle Cloud qui utilise ces commandes, telle que l'exécution d'une mise à jour du logiciel Grid Infrastructure. L'événement est de type CRITICAL lorsqu'un module d'écoute client s'arrête de manière inattendue. Un événement DOWN_CLEARED correspondant est créé lors du démarrage d'un module d'écoute de client.

Il existe un module d'écoute client par noeud, chacun appelé LISTENER.

AVAILABILITY-DB_GUEST-CLIENT_LISTENER.DOWN com.oraclecloud.databaseservice.database.critical (si .DOWN et NOT "user_action") S.O.
AVAILABILITY.DB_GUEST.CLIENT_LISTENER.DOWN_CLEARED Un événement de type INFORMATION est créé une fois qu'il a été déterminé que l'événement correspondant à l'arrêt du module d'écoute client a été effacé. S.O. com.oraclecloud.databaseservice.database.information (si .DOWN_CLEARED) S.O.
Base de données conteneur en fonction/hors fonction AVAILABILITY.DB_GUEST.CDB_INSTANCE.DOWN Un événement DOWN est créé lorsqu'une instance de base de données tombe en panne. L'événement est de type INFORMATION lorsqu'une instance de base de données est arrêtée en raison d'une action de l'utilisateur, par exemple avec les commandes SQL*Plus (sqlplus) ou Server Control Utility (srvctl), ou toute action de maintenance Oracle Cloud qui utilise ces commandes, telle que l'exécution d'une mise à jour logicielle de répertoire de base de base de données. L'événement est de type CRITICAL lorsqu'une instance de base de données tombe en panne de manière inattendue. Un événement DOWN_CLEARED correspondant est créé lors du démarrage d'une instance de base de données. AVAILABILITY-DB_GUEST-CDB_INSTANCE-DOWN com.oraclecloud.databaseservice.database.critical (si .DOWN et NOT "user_action") S.O.
AVAILABILITY.DB_GUEST.CDB_INSTANCE.DOWN_CLEARED Un événement de type INFORMATION est créé une fois qu'il a été déterminé que l'événement correspondant à l'arrêt de la base de données conteneur a été effacé. S.O. com.oraclecloud.databaseservice.database.information (si .DOWN_CLEARED) S.O.
Erreurs critiques de base de données HEALTH.DB_CLUSTER.CDB.CORRUPTION Une corruption de base de données a été détectée sur la base de données principale ou de secours. Le fichier alert.log de la base de données est analysé en cas d'erreurs spécifiques qui indiquent des corruptions de bloc physique, des corruptions de bloc logique ou des corruptions de bloc logique causées par des écritures perdues. HEALTH-DB_CLUSTER-CDB-CORRUPTION com.oraclecloud.databaseservice.database.critical S.O.
Autres erreurs de base de données HEALTH.DB_CLUSTER.CDB.ARCHIVER_HANG Un événement de type CRITICAL est créé si une base de données conteneur ne peut pas archiver le fichier de journalisation en ligne actif ou si elle ne peut pas archiver le fichier de journalisation en ligne actif assez rapidement pour les destinations d'archivage des journaux. HEALTH-DB_CLUSTER-CDB-ARCHIVER_HANG com.oraclecloud.databaseservice.database.critical S.O.
HEALTH.DB_CLUSTER.CDB.DATABASE_HANG Un événement de type CRITICAL est créé lorsqu'un processus ou une session ne répond plus dans la base de données conteneur. HEALTH-DB_CLUSTER-CDB-DATABASE_HANG com.oraclecloud.databaseservice.database.critical S.O.
Échecs de sauvegarde HEALTH.DB_CLUSTER.CDB.BACKUP_FAILURE Un événement de type CRITICAL est créé s'il existe une sauvegarde de base de données conteneur avec le statut FAILED signalé dans la vue v$rman_status. HEALTH-DB_CLUSTER-CDB-BACKUP_FAILURE com.oraclecloud.databaseservice.database.critical S.O.
HEALTH.DB_CLUSTER.CDB.BACKUP_FAILURE_CLEARED Un événement de type INFORMATION est créé. S.O. com.oraclecloud.databaseservice.database.information S.O.
Utilisation du groupe de disques HEALTH.DB_CLUSTER.DISK_GROUP.FREE_SPACE Un événement de type CRITICAL est créé lorsqu'un groupe de disques ASM atteint l'espace utilisé à 90 % ou plus. Un événement de type INFORMATION est créé lorsque l'utilisation de l'espace du groupe de disques ASM est inférieure à 90 %. HEALTH-DB_CLUSTER-DISK_GROUP-FREE_SPACE

com.oraclecloud.databaseservice.dbsystem.critical

com.oraclecloud.databaseservice.dbsystem.information (si < 90 %)

Des avis sont envoyés lorsque l'utilisation atteint 70 %, 80 %, 90 % et 100 % avec une gravité correspondante de 4, 3, 2 et 1.

Restreindre temporairement les collectes automatiques de diagnostics our des événements spécifiques

Utilisez la commande tfactl blackout pour supprimer temporairement les collectes automatiques de diagnostics.

Si vous définissez une indisponibilité pour une cible, Oracle Trace File Analyzer arrête les collectes automatiques de diagnostics s'il trouve des événements dans les journaux d'alertes pour cette cible lors de l'analyse. Par défaut, l'indisponibilité sera activée pendant 24 heures.

Vous pouvez également restreindre la collecte de diagnostics automatique à un niveau granulaire, par exemple, uniquement pour ORA-00600 ou même uniquement pour ORA-00600 avec des arguments spécifiques.

Syntaxe

tfactl blackout add|remove|print
    -targettype host|crs|asm|asmdg|database|dbbackup|db_dataguard|
        db_tablespace|pdb_tablespace|pdb|listener|service|os
    -target all|name
    [-container name]
    [-pdb pdb_name]
    -event all|"event_str1,event_str2"|availability
    [-timeout nm|nh|nd|none]
    [-c|-local|-nodes "node1,node2"]
    [-reason "reason for blackout"]
    [-docollection]

Paramètres

Tableau - Paramètres

Paramètre Description
add|remove|print| Ajoute, supprime ou imprime des conditions d'indisponibilité.

-targettype type

Type de cible : host|crs|asm|asmdg|database|dbbackup|db_dataguard|

db_tablespace|pdb_tablespace|pdb|listener|service|os

Limite l'indisponibilité uniquement au type de cible spécifié.

host : Le noeud entier est indisponible. En cas d'indisponibilité de l'hôte, chaque élément d'indisponibilité affiché comme vrai dans le JSON de télémétrie indiquera la raison de l'indisponibilité.

crs : Interrompre la disponibilité des ressources ou des événements Oracle Clusterware dans les journaux Oracle Clusterware.

asm : Interrompre la disponibilité d'Oracle Automatic Storage Management (Oracle ASM) sur cette machine ou ces événements dans les journaux d'alerte Oracle ASM.

asmdg : Rendre indisponible un groupe de disques Oracle ASM.

database : Interrompre la disponibilité d'une base de données Oracle, d'une sauvegarde de base de données Oracle, d'un espace-table, etc., ou d'événements dans les journaux d'alerte de base de données Oracle.

dbbackup : Rendre indisponibles les événements de sauvegarde de base de données Oracle (tels que les sauvegardes de base de données conteneur ou d'archive).

db_dataguard : Rendre indisponibles les événements Oracle Data Guard.

db_tablespace : Rendre indisponibles les événements d'espace-table de base de données Oracle (base de données conteneur).

pdb_tablespace : Rendre indisponibles les événements d'espace-table de base de données enfichable Oracle (base de données enfichable).

pdb : Rendre indisponibles les événements de base de données enfichable Oracle.

listener : Interrompre la disponibilité d'un module d'écoute.

service : Interrompre la disponibilité d'un service.

os : Rendre indisponibles un ou plusieurs enregistrements de système d'exploitation.

-target all|name

Indiquez la cible de l'indisponibilité temporaire. Vous pouvez spécifier une liste de cibles délimitées par des virgules.

Par défaut, la cible est réglée à all.

-container name Spécifiez le nom du conteneur de base de données (db_unique_name) où l'indisponibilité prendra effet (pour la base de données enfichable, DB_TABLESPACE et PDB_TABLESPACE).
-pdb pdb_name Spécifiez la base de données enfichable où l'indisponibilité prendra effet (pour PDB_TABLESPACE uniquement).
-events all|"str1,str2"

Limite l'indisponibilité uniquement aux événements de disponibilité ou aux chaînes d'événement, qui ne doivent pas déclencher des collectes automatiques ou être marqués comme étant indisponibles dans le JSON de télémétrie.

all : Rendre tous les éléments indisponibles pour la cible spécifiée.

chaîne : Indisponibilité pour les incidents où une partie de la ligne contient les chaînes spécifiées.

Spécifiez une liste de chaînes délimitées par des virgules.

-timeout nh|nd|none Spécifiez la durée de l'indisponibilité en nombre d'heures ou de jours avant la temporisation. Par défaut, la temporisation est réglée à 24 heures (24h).
-c|-local

Indiquez si l'indisponibilité doit être réglée à cluster-wide ou local.

Par défaut, l'indisponibilité est réglée à local.

-reason comment Indiquez un motif descriptif pour l'indisponibilité.
-docollection Utilisez cette option pour effectuer une collecte automatique de diagnostics même si une indisponibilité est définie pour cette cible.

Exemples

Les exemples suivants illustrent l'utilisation de la commande tfactl blackout.

Pour rendre indisponible l'événement : ORA-00600 sur le type de cible : database, cible : mydb

tfactl blackout add -targettype database -target mydb -event "ORA-00600"

Pour rendre indisponible l'événement : ORA-04031 sur le type de cible : database, cible : all

tfactl blackout add -targettype database -target all -event "ORA-04031" -timeout 1h

Pour rendre indisponibles les événements de sauvegarde de base de données sur le type de cible : dbbackup, cible : mydb

tfactl blackout add -targettype dbbackup -target mydb

Pour rendre indisponibles les événements dataguard de base de données sur le type de cible : db_dataguard, cible : mydb

tfactl blackout add -targettype db_dataguard -target mydb -timeout 30m

Pour rendre indisponibles les événements d'espace-table de base de données sur le type de cible : db_tablespace, cible : system, conteneur : mydb

tfactl blackout add -targettype db_tablespace -target system -container mydb -timeout 30m

Pour rendre indisponible tous les événements (ALL) sur le type de cible : host, cible : all

tfactl blackout add -targettype host -event all -target all -timeout 1h 
    -reason "Disabling all events during patching"

Pour imprimer les détails de l'indisponibilité :

tfactl blackout print
.-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.
|                                                                                myhostname                                                                                     |
+---------------+---------------------+-----------+------------------------------+------------------------------+--------+---------------+--------------------------------------+
| Target Type   | Target              | Events    | Start Time                   | End Time                     | Status | Do Collection | Reason                               |
+---------------+---------------------+-----------+------------------------------+------------------------------+--------+---------------+--------------------------------------+
| HOST          | ALL                 | ALL       | Thu Mar 24 16:48:39 UTC 2022 | Thu Mar 24 17:48:39 UTC 2022 | ACTIVE | false         | Disabling all events during patching |
| DATABASE      | MYDB                | ORA-00600 | Thu Mar 24 16:39:03 UTC 2022 | Fri Mar 25 16:39:03 UTC 2022 | ACTIVE | false         | NA                                   |
| DATABASE      | ALL                 | ORA-04031 | Thu Mar 24 16:39:54 UTC 2022 | Thu Mar 24 17:39:54 UTC 2022 | ACTIVE | false         | NA                                   |
| DB_DATAGUARD  | MYDB                | ALL       | Thu Mar 24 16:41:38 UTC 2022 | Thu Mar 24 17:11:38 UTC 2022 | ACTIVE | false         | NA                                   |
| DBBACKUP      | MYDB                | ALL       | Thu Mar 24 16:40:47 UTC 2022 | Fri Mar 25 16:40:47 UTC 2022 | ACTIVE | false         | NA                                   |
| DB_TABLESPACE | SYSTEM_CDBNAME_MYDB | ALL       | Thu Mar 24 16:45:56 UTC 2022 | Thu Mar 24 17:15:56 UTC 2022 | ACTIVE | false         | NA                                   |
'---------------+---------------------+-----------+------------------------------+------------------------------+--------+---------------+--------------------------------------'

Pour supprimer l'indisponibilité pour l'événement : ORA-00600 sur le type de cible : database, cible : mydb

tfactl blackout remove -targettype database -event "ORA-00600" -target mydb

Pour supprimer l'indisponibilité pour les événements de sauvegarde de base de données sur le type de cible : dbbackup, cible : mydb

tfactl blackout remove -targettype dbbackup -target mydb

Pour supprimer l'indisponibilité pour les événements d'espace-table de base de données sur le type de cible : db_tablespace, cible : system, conteneur : mydb

tfactl blackout remove -targettype db_tablespace -target system -container mydb

Pour supprimer l'indisponibilité pour les événements d'hôte sur le type de cible : all, cible : all

tfactl blackout remove -targettype host -event all -target all

Gérer Oracle Trace File Analyzer

Pour vérifier le statut d'exécution d'Oracle Trace File Analyzer, exécutez la commande tfactl status en tant qu'utilisateur root ou non racine :

tfactl status
.----------------------------------------------------------------------------------------------.
| Host  | Status of TFA | PID    | Port | Version    | Build ID             | Inventory Status |
+-------+---------------+--------+------+------------+----------------------+------------------+
| node1 | RUNNING       | 41312  | 5000 | 22.1.0.0.0 | 22100020220310214615 | COMPLETE         |
| node2 | RUNNING       | 272300 | 5000 | 22.1.0.0.0 | 22100020220310214615 | COMPLETE         |
'----------------------------------------------------------------------------------------------'

Pour démarrer le démon Oracle Trace File Analyzer sur le noeud local, exécutez la commande tfactl start en tant qu'utilisateur root :

tfactl start
Starting TFA..
Waiting up to 100 seconds for TFA to be started..
. . . . .
Successfully started TFA Process..
. . . . .
TFA Started and listening for commands

Pour arrêter le démon Oracle Trace File Analyzer sur le noeud local, exécutez la commande tfactl stop en tant qu'utilisateur root :

tfactl stop
Stopping TFA from the Command Line
Nothing to do !
Please wait while TFA stops
Please wait while TFA stops
TFA-00002 Oracle Trace File Analyzer (TFA) is not running
TFA Stopped Successfully
Successfully stopped TFA..

Gérer l'agent du service de base de données

Consultez le fichier /opt/oracle/dcs/log/dcs-agent.log pour identifier les problèmes liés à l'agent.

Pour vérifier le statut de l'agent du service de base de données, exécutez la commande systemctl status :

systemctl status dbcsagent.service
dbcsagent.service
Loaded: loaded (/usr/lib/systemd/system/dbcsagent.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2022-04-01 13:40:19 UTC; 6min ago
Process: 9603 ExecStopPost=/bin/bash -c kill `ps -fu opc |grep "java.*dbcs-agent.*jar" |
    awk '{print $2}' ` (code=exited, status=0/SUCCESS)
Main PID: 10055 (sudo)
CGroup: /system.slice/dbcsagent.service
‣ 10055 sudo -u opc /bin/bash -c umask 077; /bin/java -Doracle.security.jps.config=/opt/oracle/...

Pour démarrer l'agent s'il n'est pas en cours d'exécution, exécutez la commande systemctl start en tant qu'utilisateur root :

systemctl start dbcsagent.service