Evénements du service Database

L'implémentation de la fonctionnalité des événements du service Database vous permet d'être informé des problèmes d'état des bases de données ou d'autres composants Oracle sur le système de base de données.

Il est possible qu'Oracle Database ou Clusterware ne soit pas en bon état, ou que divers composants système ne disposent pas de suffisamment d'espace dans le système de base de données. Les clients ne sont pas informés de cette situation. L'implémentation de la fonctionnalité des événements du service Database génère des événements pour les opérations et conditions de plan de données, ainsi que des notifications pour les clients à l'aide du service OCI Events et des mécanismes de notification existants dans leur location. Les clients peuvent ensuite créer des sujets et s'y abonner via leur adresse électronique, des fonctions ou des flux de données.

Remarques :

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

Réception de notifications sur les événements du service Database

Abonnez-vous aux événements du service Database et recevez des notifications. Pour recevoir des notifications, abonnez-vous aux événements du service Database et recevez des notifications à l'aide d'Oracle Notification Service. Reportez-vous à Présentation de Notifications. Pour plus d'informations sur Oracle Cloud Infrastructure Events, reportez-vous à Présentation d'Events.

Service Events - 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 - Informations
  • Système de base de données - Critique

Types d'événement du service Database

Le tableau suivant répertorie les types d'événement émis par le service Database.

Remarques :

  • Les événements critiques sont déclenchés par diverses conditions critiques et erreurs qui perturbent la base de données ou d'autres composants essentiels. Par exemple, les erreurs de base de données ne répondant pas et les erreurs de disponibilité pour les bases de données, les noeuds de base de données et les 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 les autres composants critiques fonctionnent comme prévu. Par exemple, un arrêt correct de CRS, de la base de données Conteneur, du client ou du processus d'écoute SCAN, ou un démarrage de ces composants, entraînera la création d'un événement avec la gravité INFO.
  • Les limites de seuil réduisent le nombre de notifications que les clients reçoivent pour des événements d'incident similaires, tout en s'assurant qu'ils reçoivent ces événements d'incident ainsi que les rappels correspondants en temps opportun.

Evénements du service Database

Remarques :

Outre les événements énumérés ci-dessous, Oracle analyse des événements supplémentaires afin de fournir le plus haut niveau d'opérations de service et de support pour assurer une haute disponibilité des services.

Tableau - Evénements du service Database

Nom convivial Nom d'événement Description Résolution Type d'événement Seuil
Utilisation des ressources - Utilisation du disque HEALTH.DB_GUEST.FILESYSTEM.FREE_SPACE

Cet événement est signalé lorsque l'espace libre du système de fichiers de l'invité de machine virtuelle est inférieur à 10 %, comme 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 Démarré/Arrêté de CRS AVAILABILITY.DB_GUEST.CRS_INSTANCE.DOWN. Un événement de type CRITICAL est créé lorsque CRS (Cluster Ready Service) est repéré comme étant arrêté. AVAILABILITY-DB_GUEST-CRS_INSTANCE.DOWN com.oraclecloud.databaseservice.dbnode.critical (si .DOWN et non "user_action") S/O
AVAILABILITY.DB_GUEST.CRS_INSTANCE.DOWN_CLEARED Un événement de type INFORMATION est créé une fois qu'il est déterminé que l'événement concernant l'instance CRS arrêtée 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
Processus d'écoute SCAN démarré/arrêté AVAILABILITY.DB_CLUSTER.SCAN_LISTENER.DOWN

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

Il existe trois processus d'écoute SCAN par cluster appelés LISTENER_SCAN[1,2,3].

AVAILABILITY-DB_CLUSTER-SCAN_LISTENER-DOWN com.oraclecloud.databaseservice.dbnode.critical (si .DOWN et non "user_action") S/O
AVAILABILITY.DB_CLUSTER.SCAN_LISTENER.DOWN_CLEARED Un événement de type INFORMATION est créé une fois qu'il est déterminé que l'événement concernant le processus d'écoute SCAN arrêté a été effacé. S/O com.oraclecloud.databaseservice.dbnode.information (si .DOWN_CLEARED) S/O
Processus d'écoute réseau démarré/arrêté AVAILABILITY.DB_GUEST.CLIENT_LISTENER.DOWN

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

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

AVAILABILITY-DB_GUEST-CLIENT_LISTENER.DOWN com.oraclecloud.databaseservice.database.critical (si .DOWN et non "user_action") S/O
AVAILABILITY.DB_GUEST.CLIENT_LISTENER.DOWN_CLEARED Un événement de type INFORMATION est créé une fois qu'il est déterminé que l'événement concernant le processus d'écoute client arrêté a été effacé. S/O com.oraclecloud.databaseservice.database.information (si .DOWN_CLEARED) S/O
Base de données Conteneur démarrée/arrêtée AVAILABILITY.DB_GUEST.CDB_INSTANCE.DOWN Un événement DOWN est créé lorsqu'une instance de base de données est arrêtée. 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 celles de l'utilitaire Server Control (srvctl), ou de toute action de maintenance Oracle Cloud qui utilise ces commandes, telle qu'une mise à jour du logiciel du répertoire de base de base de données. L'événement est de type CRITICAL lorsqu'une instance de base de données est arrêtée de manière inattendue. Un événement DOWN_CLEARED correspondant est créé lorsqu'une instance de base de données est démarrée. AVAILABILITY-DB_GUEST-CDB_INSTANCE-DOWN com.oraclecloud.databaseservice.database.critical (si .DOWN et non "user_action") S/O
AVAILABILITY.DB_GUEST.CDB_INSTANCE.DOWN_CLEARED Un événement de type INFORMATION est créé une fois qu'il est déterminé que l'événement concernant la base de données Conteneur arrêtée a été effacé. S/O com.oraclecloud.databaseservice.database.information (si .DOWN_CLEARED) S/O
Erreurs de base de données critiques HEALTH.DB_CLUSTER.CDB.CORRUPTION Une altération 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é à la recherche d'erreurs spécifiques qui indiquent des altérations de bloc physique ou logique, ou des altérations de bloc logique dus à 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 ne peut pas le faire assez rapidement vers 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
Echecs de sauvegarde HEALTH.DB_CLUSTER.CDB.BACKUP_FAILURE Un événement de type CRITICAL est créé si une sauvegarde de base de données Conteneur avec un statut FAILED est signalée 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 une utilisation de l'espace supérieure ou égale à 90 %. Un événement de type INFORMATION est créé lorsque l'utilisation de l'espace par le 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 notifications sont envoyées lorsque l'utilisation atteint 70 %, 80 %, 90 % et 100 % avec une gravité correspondante de 4, 3, 2 et 1.

Restriction temporaire des collectes de diagnostics automatiques pour des événements spécifiques

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

Lorsque vous définissez la coupure d'une cible, Oracle Trace File Analyzer arrête les collectes de diagnostics automatiques s'il détecte des événements dans les journaux d'alertes de cette cible lors de l'analyse. Par défaut, une coupure est effective 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| Permet d'ajouter, d'enlever ou d'imprimer des conditions de coupure.

-targettype type

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

db_tablespace|pdb_tablespace|pdb|listener|service|os

Permet de limiter la coupure uniquement au type de cible indiqué.

host : l'intégralité du noeud fait l'objet d'une coupure. En cas de coupure de l'hôte, tous les éléments de coupure présentant la valeur True dans le fichier JSON de télémétrie auront le motif de cette coupure.

crs : coupure de la disponibilité de la ressource ou des événements Oracle Clusterware dans les journaux Oracle Clusterware.

asm : coupure de la disponibilité d'Oracle ASM (Automatic Storage Management) sur cette machine ou des événements dans les journaux d'alertes Oracle ASM.

asmdg : coupure d'un groupe de disques Oracle ASM.

database : coupure de la disponibilité d'une base de données Oracle, d'une sauvegarde de base de données Oracle, d'un tablespace, etc., ou des événements dans les journaux d'alertes de la base de données Oracle.

dbbackup : coupure des é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 : coupure des événements Oracle Data Guard.

db_tablespace : coupure des événements de tablespace de base de données Oracle (base de données Conteneur).

pdb_tablespace : coupure des événements de tablespace de base de données pluggable Oracle (base de données pluggable).

pdb : coupure des événements de base de données pluggable Oracle.

listener : coupure de la disponibilité d'un processus d'écoute.

service : coupure de la disponibilité d'un service.

os : coupure des enregistrements de système d'exploitation.

-target all|name

Permet d'indiquer la cible pour la coupure. Vous pouvez indiquer une liste de cibles séparées par des virgules.

Par défaut, la cible est définie sur all.

-container name Permet d'indiquer le nom du conteneur de base de données (db_unique_name) dans lequel la coupure prendra effet (pour PDB, DB_TABLESPACE et PDB_TABLESPACE).
-pdb pdb_name Permet d'indiquer la base de données pluggable dans laquelle la coupure prendra effet (pour PDB_TABLESPACE uniquement).
-events all|"str1,str2"

Permet de limiter la coupure aux événements de disponibilité, ou aux chaînes d'événement, qui ne doivent pas déclencher de collectes automatiques, ou qui doivent être marqués comme faisant l'objet d'une coupure dans le fichier JSON de télémétrie.

all : coupure de l'intégralité de la cible indiquée.

string : coupure pour les incidents dont une partie de la ligne contient les chaînes indiquées.

Indiquez une liste de chaînes séparées par des virgules.

-timeout nh|nd|none Permet d'indiquer la durée de la coupure en nombre d'heures ou de jours avant expiration. Par défaut, le délai d'expiration est défini sur 24 heures (24 h).
-c|-local

Permet d'indiquer si la coupure doit être définie sur cluster-wide ou local.

Par défaut, la coupure est définie sur local.

-reason comment Permet d'indiquer un motif descriptif de la coupure.
-docollection Utilisez cette option afin d'effectuer une collecte de diagnostics automatique même si une coupure est définie pour cette cible.

Exemples 

Voici quelques exemples d'utilisation de la commande tfactl blackout.

Pour effectuer la coupure de l'événement ORA-00600 sur le type de cible database et la cible mydb

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

Pour effectuer la coupure de l'événement ORA-04031 sur le type de cible database et la cible all

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

Pour effectuer la coupure des événements de sauvegarde de base de données sur le type de cible dbbackup et la cible mydb

tfactl blackout add -targettype dbbackup -target mydb

Pour effectuer la coupure des événements Data Guard de base de données sur le type de cible db_dataguard et la cible mydb

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

Pour effectuer la coupure des événements de tablespace de base de données sur le type de cible db_tablespace, la cible system et le conteneur mydb

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

Pour effectuer la coupure des événements ALL sur le type de cible host et la 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 la coupure :

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 enlever la coupure de l'événement ORA-00600 sur le type de cible database et la cible mydb

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

Pour enlever la coupure des événements de sauvegarde de base de données sur le type de cible dbbackup et la cible mydb

tfactl blackout remove -targettype dbbackup -target mydb

Pour enlever la coupure des événements de tablespace de base de données sur le type de cible db_tablespace, la cible system et le conteneur mydb

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

Pour enlever la coupure des événements d'hôte sur le type de cible all et la cible all

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

Gestion d'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 autre que root :

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

Gestion de l'agent de service Database

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 de service Database, 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