Eventos de Database Service

La implantación de la función Eventos de Database Service permite recibir notificaciones sobre incidencias de estado con instancias de Oracle Database u otros componentes del sistema de base de datos.

Es posible que Oracle Database o Clusterware no estén en buen estado o que varios componentes del sistema se estén quedando sin espacio en el sistema de base de datos. Los clientes no reciben notificaciones sobre esta situación. La implantación de la función Eventos de Database Service genera eventos para las operaciones y los estados del plano de datos, así como notificaciones para los clientes mediante el uso del servicio OCI Events y los mecanismos de notificación existentes en su arrendamiento. A continuación, los clientes pueden crear temas y suscribirse a estos temas a través del correo electrónico, las funciones o los flujos.

Note:

El flujo de eventos en el sistema de base de datos depende de Oracle Trace File Analyzer (TFA) y del agente de Oracle Database Cloud Service (DBCS). Asegúrese de que estos componentes están activos y en ejecución.

Recepción de notificaciones sobre eventos de Database Service

Suscríbase a los eventos de Database Service y reciba una notificación. Para recibir notificaciones, suscríbase a los eventos de Database Service y reciba notificaciones mediante el servicio Oracle Notification. Consulte Visión general de Notifications. Para obtener más información sobre Oracle Cloud Infrastructure Events, consulte Visión general de Events.

Servicio de eventos - Tipos de eventos

  • Base de datos - Crítico
  • Nodo de base de datos - Crítico
  • Nodo de base de datos - Error
  • Nodo de base de datos - Advertencia
  • Nodo de base de datos - Información
  • Sistema de base de datos - Crítico

Tipos de eventos del servicio de base de datos

En la siguiente tabla se muestran los tipos de eventos que emite Database Service.

Note:

  • Los eventos críticos se disparan por diversas condiciones y errores críticos que interrumpen la base de datos u otros componentes esenciales. Por ejemplo, los errores de base de datos que no responden y los errores de disponibilidad para bases de datos, nodos de base de datos y sistemas de base de datos indican cuándo un recurso deja de estar disponible.
  • Los eventos de información se disparan cuando la base de datos y otros componentes críticos funcionan como se esperaba. Por ejemplo, un cierre limpio de CRS, CDB, cliente o listener de exploración, o un inicio de estos componentes, creará un evento con la gravedad INFO.
  • Los límites de umbral reducen el número de notificaciones que recibirán los clientes para eventos de incidente similares, al mismo tiempo que garantizan que reciban eventos de incidente y recordatorios de manera puntual.

Eventos de Database Service

Note:

Además de los eventos que se muestran a continuación, Oracle analiza eventos adicionales para proporcionar el máximo nivel de operaciones de servicio y soporte para garantizar una alta disponibilidad de los servicios.

Tabla - Eventos de Database Service

Nombre fácil de recordar Nombre de evento Descripción Reparación Tipo de evento Umbral
Uso de recursos: uso de disco HEALTH.DB_GUEST.FILESYSTEM.FREE_SPACE

Este evento se notifica cuando el espacio libre del sistema de archivos de VM de invitado es inferior al 10 % , según lo determina el comando df(1) del sistema operativo, para los siguientes sistemas de archivos:

  • /
  • /u01
  • /u02
  • /var (solo X8M y versiones posteriores)
  • /tmp (solo X8M y versiones posteriores)
HEALTH-DB_GUEST-FILESYSTEM-FREE_SPACE com.oraclecloud.databaseservice.dbnode.critical Umbral Crítico: 90 %
Estado de CRS activo/inactivo AVAILABILITY.DB_GUEST.CRS_INSTANCE.DOWN. Se crea un evento de tipo CRITICAL cuando se detecta que Cluster Ready Service (CRS) ha dejado de funcionar. AVAILABILITY-DB_GUEST-CRS_INSTANCE.DOWN com.oraclecloud.databaseservice.dbnode.critical (si "user_action" es .DOWN y NOT) NA
AVAILABILITY.DB_GUEST.CRS_INSTANCE.DOWN_CLEARED Se crea un evento de tipo INFORMATION una vez que se ha determinado que se ha borrado el evento de CRS inactivo. NA com.oraclecloud.databaseservice.dbnode.information (en el caso de .DOWN_CLEARED) NA
AVAILABILITY.DB_GUEST.CRS_INSTANCE.EVICTION Se crea un evento de tipo CRITICAL. AVAILABILITY-DB_GUEST-CRS_INSTANCE-EVICTION com.oraclecloud.databaseservice.dbnode.critical NA
Listener de SCAN activo/inactivo AVAILABILITY.DB_CLUSTER.SCAN_LISTENER.DOWN

Se crea un evento de tipo DOWN cuando deja de funcionar un listener de SCAN. El evento es de tipo INFORMATION cuando se cierra un listener de SCAN debido a la acción del usuario, como con los comandos de la utilidad de control de servidor (srvctl) o de control del listener (lsnrctl), o cualquier acción de mantenimiento de Oracle Cloud que utilice esos comandos, como realizar una actualización del software de infraestructura de grid. El evento es de tipo CRITICAL cuando un listener de SCAN deja de funcionar inesperadamente. Se crea el evento DOWN_CLEARED correspondiente cuando se inicia un listener de SCAN.

Existen tres listeners de SCAN por cluster denominados LISTENER_SCAN[1,2,3].

AVAILABILITY-DB_CLUSTER-SCAN_LISTENER-DOWN com.oraclecloud.databaseservice.dbnode.critical (si "user_action" es .DOWN y NOT) NA
AVAILABILITY.DB_CLUSTER.SCAN_LISTENER.DOWN_CLEARED Se crea un evento de tipo INFORMATION una vez que se ha determinado que se ha borrado el evento de listener de SCAN inactivo. NA com.oraclecloud.databaseservice.dbnode.information (en el caso de .DOWN_CLEARED) NA
Listener de red activo/inactivo AVAILABILITY.DB_GUEST.CLIENT_LISTENER.DOWN

Se crea un evento de tipo DOWN cuando deja de funcionar un listener de cliente. El evento es de tipo INFORMATION cuando se cierra un listener de cliente debido a la acción del usuario, como con los comandos de la utilidad de control de servidor (srvctl) o de control del listener (lsnrctl), o cualquier acción de mantenimiento de Oracle Cloud que utilice esos comandos, como realizar una actualización del software de infraestructura de grid. El evento es de tipo CRITICAL cuando un listener de cliente deja de funcionar inesperadamente. Se crea el evento DOWN_CLEARED correspondiente cuando se inicia un listener de cliente.

Hay un listener de cliente por nodo, cada uno de los cuales se denomina LISTENER.

AVAILABILITY-DB_GUEST-CLIENT_LISTENER.DOWN com.oraclecloud.databaseservice.database.critical (si "user_action" es .DOWN y NOT) NA
AVAILABILITY.DB_GUEST.CLIENT_LISTENER.DOWN_CLEARED Se crea un evento de tipo INFORMATION una vez que se ha determinado que se ha borrado el evento de listener de cliente inactivo. NA com.oraclecloud.databaseservice.database.information (en el caso de .DOWN_CLEARED) NA
CDB activa/inactiva AVAILABILITY.DB_GUEST.CDB_INSTANCE.DOWN Se crea un evento de tipo DOWN cuando deja de funcionar una instancia de base de datos. El evento es de tipo INFORMATION cuando se cierra una instancia de base de datos debido a la acción del usuario, como con los comandos de SQL*Plus (sqlplus) o de la utilidad de control de servidor (srvctl), o cualquier acción de mantenimiento de Oracle Cloud que utilice esos comandos, como realizar una actualización del software del directorio raíz de base de datos. El evento es de tipo CRITICAL cuando una instancia de base de datos deja de funcionar inesperadamente. Se crea el evento de tipo DOWN_CLEARED correspondiente cuando se inicia una instancia de base de datos. AVAILABILITY-DB_GUEST-CDB_INSTANCE-DOWN com.oraclecloud.databaseservice.database.critical (si "user_action" es .DOWN y NOT) NA
AVAILABILITY.DB_GUEST.CDB_INSTANCE.DOWN_CLEARED Se crea un evento de tipo INFORMATION una vez que se ha determinado que se ha borrado el evento de CDB inactivo. NA com.oraclecloud.databaseservice.database.information (en el caso de .DOWN_CLEARED) NA
Errores críticos de base de datos HEALTH.DB_CLUSTER.CDB.CORRUPTION Se han detectado daños de base de datos en la base de datos principal o en espera. El archivo alert.log de la base de datos se analiza para detectar errores específicos indicativos de daños en bloques físicos, daños en bloques lógicos o daños en bloques lógicos causados por escrituras perdidas. HEALTH-DB_CLUSTER-CDB-CORRUPTION com.oraclecloud.databaseservice.database.critical NA
Otros errores de base de datos HEALTH.DB_CLUSTER.CDB.ARCHIVER_HANG Se crea un evento de tipo CRITICAL si una CDB no puede archivar el redo log en línea activo o no puede archivar el redo log en línea activo lo suficientemente rápido en los destinos de archivo log. HEALTH-DB_CLUSTER-CDB-ARCHIVER_HANG com.oraclecloud.databaseservice.database.critical NA
HEALTH.DB_CLUSTER.CDB.DATABASE_HANG Se crea un evento de tipo CRITICAL cuando un proceso o sesión deja de responder en la CDB. HEALTH-DB_CLUSTER-CDB-DATABASE_HANG com.oraclecloud.databaseservice.database.critical NA
Fallos de copia de seguridad HEALTH.DB_CLUSTER.CDB.BACKUP_FAILURE Se crea un evento de tipo CRITICAL si hay una copia de seguridad de CDB con el estado FAILED notificado en la vista v$rman_status. HEALTH-DB_CLUSTER-CDB-BACKUP_FAILURE com.oraclecloud.databaseservice.database.critical NA
HEALTH.DB_CLUSTER.CDB.BACKUP_FAILURE_CLEARED Se crea un evento de tipo INFORMATION. NA com.oraclecloud.databaseservice.database.information NA
Uso de grupo de discos HEALTH.DB_CLUSTER.DISK_GROUP.FREE_SPACE Se crea un evento de tipo CRITICAL cuando un grupo de discos de ASM alcanza un uso de espacio del 90 % o superior. Se crea un evento de tipo INFORMATION cuando el uso de espacio del grupo de discos de ASM cae por debajo del 90 %. HEALTH-DB_CLUSTER-DISK_GROUP-FREE_SPACE

com.oraclecloud.databaseservice.dbsystem.critical

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

Se envían notificaciones cuando el uso alcanza el 70 %, el 80 %, el 90% y el 100 % con la gravedad correspondiente de 4, 3, 2 y 1.

Restricción temporal de recopilaciones de diagnóstico automático para eventos específicos

Utilice el comando tfactl blackout para suprimir temporalmente las recopilaciones de diagnóstico automático.

Si define la interrupción para un destino, Oracle Trace File Analyzer detiene las recopilaciones de diagnóstico automático si detecta eventos en los logs de alertas para ese destino durante la exploración. Por defecto, la interrupción se aplicará durante 24 horas.

También puede restringir la recopilación de diagnóstico automático en un nivel granular, por ejemplo, solo para ORA-00600 o incluso solo para ORA-00600 con argumentos específicos.

Sintaxis

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]

Parámetros

Tabla - Parámetros

parámetro Descripción
add|remove|print| Agrega, elimina o imprime condiciones de interrupción.

-targettype type

Tipo de destino:host|crs|asm|asmdg|database|dbbackup|db_dataguard|

db_tablespace|pdb_tablespace|pdb|listener|service|os

Limita la interrupción solo al tipo de destino especificado.

host: el nodo completo queda interrumpido. Si se produce una interrupción del host, todos los elementos de interrupción que se muestran como verdaderos en el JSON de telemetría tendrán el motivo de la interrupción.

crs: interrumpe la disponibilidad del recurso o los eventos de Oracle Clusterware en los logs de Oracle Clusterware.

asm: interrumpe la disponibilidad de Oracle Automatic Storage Management (Oracle ASM) en esta máquina o de los eventos en los logs de alertas de Oracle ASM.

asmdg: interrumpe un grupo de discos de Oracle ASM.

database: interrumpe la disponibilidad de una instancia de Oracle Database, una copia de seguridad de Oracle Database, un tablespace, etc. o de los eventos en los logs de alertas de Oracle Database.

dbbackup: interrumpe los eventos de copia de seguridad de Oracle Database (como las copias de seguridad de la CDB o del archivo).

db_dataguard: interrumpe los eventos de Oracle Data Guard.

db_tablespace: interrumpe los eventos de tablespace de Oracle Database (base de datos de contenedores).

pdb_tablespace: interrumpe los eventos de tablespace de la base de datos conectable de Oracle (base de datos conectable).

pdb: interrumpe los eventos de la base de datos conectable de Oracle.

listener: interrumpe la disponibilidad de un listener.

service: interrumpe la disponibilidad de un servicio.

os: interrumpe uno o más registros del sistema operativo.

-target all|name

Especifique el destino de la interrupción. Puede especificar una lista de destinos delimitados por comas.

Por defecto, el destino está definido en all.

-container name Especifique el nombre del contenedor de base de datos (db_unique_name) en el que se aplicará la interrupción (para PDB, DB_TABLESPACE y PDB_TABLESPACE).
-pdb pdb_name Especifique la PDB en la que se aplicará la interrupción (solo para PDB_TABLESPACE).
-events all|"str1,str2"

Limita la interrupción solo a los eventos de disponibilidad o a las cadenas de eventos, que no deben disparar recopilaciones automáticas ni se deben marcar como interrumpidas en el JSON de telemetría.

all: lo interrumpe todo para el destino especificado.

string: interrumpe los incidentes en los que cualquier parte de la línea contenga las cadenas especificadas.

Especifique una lista de cadenas separadas por comas.

-timeout nh|nd|none Especifique la duración de la interrupción en número de horas o días antes de que se produzca el timeout. Por defecto, el timeout está definido en 24 horas (24h).
-c|-local

Especifique si la interrupción se debe definir en cluster-wide o en local.

Por defecto, la interrupción está definida en local.

-reason comment Especifique un motivo descriptivo para la interrupción.
-docollection Utilice esta opción para realizar una recopilación de diagnóstico automático incluso si se ha definido una interrupción para este destino.

Ejemplos

A continuación se incluyen ejemplos para utilizar el comando tfactl blackout.

Para interrumpir el evento: ORA-00600 en el tipo de destino: database, destino: mydb

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

Para interrumpir el evento: ORA-04031 en el tipo de destino: database, destino: all

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

Para interrumpir eventos de copia de seguridad de base de datos en el tipo de destino: dbbackup, destino: mydb

tfactl blackout add -targettype dbbackup -target mydb

Para interrumpir eventos de dataguard de base de datos en el tipo de destino: db_dataguard, destino: mydb

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

Para interrumpir eventos de tablespace de base de datos en el tipo de destino: db_tablespace, destino: system, contenedor: mydb

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

Para interrumpir eventos ALL en el tipo de destino: host, destino: all

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

Para imprimir los detalles de interrupción:

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                                   |
'---------------+---------------------+-----------+------------------------------+------------------------------+--------+---------------+--------------------------------------'

Para eliminar la interrupción del evento: ORA-00600 en el tipo de destino: database, destino: mydb

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

Para eliminar la interrupción para eventos de copia de seguridad de base de datos en el tipo de destino: dbbackup, destino: mydb

tfactl blackout remove -targettype dbbackup -target mydb

Para eliminar la interrupción de eventos de tablespace de base de datos en el tipo de destino: db_tablespace, destino: system, contenedor: mydb

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

Para eliminar la interrupción de los eventos de host en el tipo de destino: all, destino: all

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

Gestión de Oracle Trace File Analyzer

Para comprobar el estado de ejecución de Oracle Trace File Analyzer, ejecute el comando tfactl status como root o un usuario no raíz:

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

Para iniciar el daemon de Oracle Trace File Analyzer en el nodo local, ejecute el comando tfactl start como usuario 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

Para parar el daemon de Oracle Trace File Analyzer en el nodo local, ejecute el comando tfactl stop como usuario 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..

Gestión del agente de servicio de base de datos

Consulte el archivo /opt/oracle/dcs/log/dcs-agent.log para identificar las incidencias relacionadas con el agente.

Para comprobar el estado del agente de servicio de base de datos, ejecute el comando 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/...

Para iniciar el agente si no se está ejecutando, ejecute el comando systemctl start como usuario root:

systemctl start dbcsagent.service