데이터베이스 서비스 이벤트

데이터베이스 서비스 이벤트 기능 구현을 통해 Oracle 데이터베이스 또는 DB 시스템의 다른 구성요소에 대한 건전성 문제에 대한 통지를 받을 수 있습니다.

Oracle Database 또는 Clusterware가 정상이 아니거나 다양한 시스템 구성요소가 DB 시스템의 공간이 부족할 수 있습니다. 이 상황을 고객에게 알리지 않습니다. 데이터베이스 서비스 이벤트 기능 구현은 데이터 플레인 작업 및 조건에 대한 이벤트와 해당 테넌시의 기존 OCI 이벤트 서비스 및 통지 방식을 활용하여 고객에 대한 통지를 생성합니다. 그런 다음 고객은 전자메일, 함수 또는 스트림을 통해 토픽을 생성하고 해당 토픽을 구독할 수 있습니다.

주: DB 시스템의 이벤트 흐름은 Oracle Trace File Analyzer(TFA) 및 Oracle Database Cloud Service(DBCS) 에이전트에 따라 달라집니다. 이러한 구성 요소가 작동되어 실행 중인지 확인합니다.

데이터베이스 서비스 이벤트에 대한 알림 받기

데이터베이스 서비스 이벤트를 구독하고 통지를 받습니다. 통지를 수신하려면 데이터베이스 서비스 이벤트에 가입하고 Oracle Notification 서비스를 사용하여 통지를 받으십시오. Notifications Overview를 참조하십시오. Oracle Cloud Infrastructure Events에 대한 자세한 내용은 이벤트 개요를 참조하십시오.

이벤트 서비스 - 이벤트 유형

데이터베이스 서비스 이벤트 유형

다음 표에서는 데이터베이스 서비스가 내보내는 이벤트 유형을 나열합니다.

참고:

데이터베이스 서비스 이벤트

주: 아래 나열된 이벤트 외에도 Oracle은 추가 이벤트를 분석하여 최고 수준의 서비스 작업과 높은 서비스 가용성 보장을 지원합니다.

친화적 이름 이벤트 이름 설명 개선 이벤트 유형 임계값
리소스 활용률 - 디스크 사용량 HEALTH.DB_GUEST.FILESYSTEM.FREE_SPACE 이 이벤트는 다음 파일 시스템에 대해 운영 체제 df(1) 명령에 따라 결정된 대로 VM 게스트 파일 시스템의 사용 가능 공간이 10% 미만이면 보고됩니다.
/
/u01
/u02
/var(X8M 이상만 해당)
/tmp(X8M 이상만 해당)
HEALTH-DB_GUEST-FILESYSTEM-FREE_SPACE com.oraclecloud.databaseservice.dbnode.critical Critical 임계값: 90%
CRS 상태 작동/작동 중지 AVAILABILITY.DB_GUEST.CRS_INSTANCE.DOWN. CRS(Cluster Ready Service)의 작동이 중지된 것으로 감지되면 CRITICAL 유형의 이벤트가 생성됩니다. 가용성-DB_GUEST-CRS_INSTANCE.DOWN com.oraclecloud.databaseservice.dbnode.critical( "user_action"이 아닌 DOWN 해당 사항 없음
CRS 상태 작동/작동 중지 AVAILABILITY.DB_GUEST.CRS_INSTANCE.DOWN_CLEARED CRS 작동 중지 이벤트가 지워진 것으로 확인되면 INFORMATION 유형의 이벤트가 생성됩니다. 해당 사항 없음 com.oraclecloud.databaseservice.dbnode.information( 아래쪽(_C) 해당 사항 없음
CRS 상태 작동/작동 중지 AVAILABILITY.DB_GUEST.CRS_INSTANCE.EVICTION CRITICAL 유형의 이벤트가 생성됩니다. 가용성-DB_GUEST-CRS_INSTANCE-EVICTION com.oraclecloud.databaseservice.dbnode.critical 해당 사항 없음
SCAN 리스너 작동/작동 중지 AVAILABILITY.DB_CLUSTER.SCAN_LISTENER.DOWN DOWN 이벤트는 SCAN 리스너가 작동 중지될 때 생성됩니다. Server Control Utility(srvctl) 또는 Listener Control(lsnrctl) 명령과 같은 사용자 작업이나 Grid Infrastructure 소프트웨어 업데이트 수행과 같은 해당 명령을 사용하는 Oracle Cloud 유지 관리 작업으로 인해 SCAN 리스너가 종료될 때 INFORMATION 유형의 이벤트입니다. SCAN 리스너가 예상치 않게 작동 중지되면 이벤트가 CRITICAL 유형입니다. 해당 DOWN_CLEARED 이벤트는 SCAN 리스너가 시작될 때 생성됩니다.
클러스터당 LISTENER_SCAN[1,2,3]이라는 세 개의 SCAN 리스너가 있습니다.
가용성-DB_CLUSTER-SCAN_LISTENER-DOWN com.oraclecloud.databaseservice.dbnode.critical( "user_action"이 아닌 DOWN 해당 사항 없음
SCAN 리스너 작동/작동 중지 AVAILABILITY.DB_CLUSTER.SCAN_LISTENER.DOWN_CLEARED SCAN 리스너 작동 중지 이벤트가 지워진 것으로 확인되면 INFORMATION 유형의 이벤트가 생성됩니다. 해당 사항 없음 com.oraclecloud.databaseservice.dbnode.information( 아래쪽(_C) 해당 사항 없음
Net 리스너 작동/작동 중지 AVAILABILITY.DB_GUEST.CLIENT_LISTENER.DOWN 클라이언트 리스너의 작동이 중지되면 DOWN 이벤트가 생성됩니다. Server Control Utility(srvctl) 또는 Listener Control(lsnrctl) 명령과 같은 사용자 작업이나 Grid Infrastructure 소프트웨어 업데이트 수행과 같은 해당 명령을 사용하는 Oracle Cloud 유지 관리 작업으로 인해 클라이언트 리스너가 종료될 때 INFORMATION 유형이 이벤트입니다. 클라이언트 리스너가 예상치 않게 작동 중지될 때 이벤트가 CRITICAL 유형입니다. 해당 DOWN_CLEARED 이벤트는 클라이언트 리스너가 시작될 때 생성됩니다.
각 노드마다 LISTENER라는 클라이언트 리스너가 하나씩 있습니다.
가용성-DB_GUEST-CLIENT_LISTENER.DOWN com.oraclecloud.databaseservice.database.critical( "user_action"이 아닌 DOWN 해당 사항 없음
Net 리스너 작동/작동 중지 AVAILABILITY.DB_GUEST.CLIENT_LISTENER.DOWN_CLEARED INFORMATION 유형의 이벤트는 클라이언트 리스너 작동 중지 이벤트가 지워진 것으로 확인되면 생성됩니다. 해당 사항 없음 com.oraclecloud.databaseservice.database.information( 아래쪽(_C) 해당 사항 없음
CDB 작동/작동 중지 AVAILABILITY.DB_GUEST.CDB_INSTANCE.DOWN 데이터베이스 Instance의 작동이 중지되면 DOWN 이벤트가 생성됩니다. SQL*Plus(sqlplus) 또는 Server Control Utility(srvctl) 명령 또는 이러한 명령을 사용하는 Oracle Cloud 유지 관리 작업(예: 데이터베이스 홈 소프트웨어 업데이트 수행)과 같은 사용자 작업으로 인해 데이터베이스 인스턴스가 종료될 때 INFORMATION 유형이 이벤트입니다. 데이터베이스 Instance가 예기치 않게 작동 중지되면 이벤트 유형은 CRITICAL입니다. 해당 DOWN_CLEARED 이벤트는 데이터베이스 Instance가 시작될 때 생성됩니다. 가용성-DB_GUEST-CDB_INSTANCE-DOWN com.oraclecloud.databaseservice.database.critical( "user_action"이 아닌 DOWN 해당 사항 없음
CDB 작동/작동 중지 AVAILABILITY.DB_GUEST.CDB_INSTANCE.DOWN_CLEARED INFORMATION 유형의 이벤트는 CDB 작동 중지 이벤트가 지워진 것으로 확인되면 생성됩니다. 해당 사항 없음 com.oraclecloud.databaseservice.database.information( 아래쪽(_C) 해당 사항 없음
심각한 DB 오류 HEALTH.DB_CLUSTER.CDB.CORRUPTION 기본 또는 대기 데이터베이스에서 데이터베이스 손상이 감지되었습니다. 데이터베이스 alert.log는 물리적 블록 손상, 논리적 블록 손상 또는 손실된 쓰기로 인한 논리적 블록 손상을 나타내는 특정 오류에 대해 구문 분석됩니다. HEALTH-DB_CLUSTER-CDB-CORRUPTION com.oraclecloud.databaseservice.database.critical 해당 사항 없음
기타 DB 오류 HEALTH.DB_CLUSTER.CDB.ARCHIVER_HANG CDB가 활성 온라인 리두 로그를 아카이브할 수 없거나 활성 온라인 리두 로그를 로그 아카이브 대상에 충분히 빨리 아카이브할 수 없는 경우 CRITICAL 유형의 이벤트가 생성됩니다. HEALTH-DB_CLUSTER-CDB-ARCHIVER_HANG com.oraclecloud.databaseservice.database.critical 해당 사항 없음
기타 DB 오류 HEALTH.DB_CLUSTER.CDB.DATABASE_HANG CRITICAL 유형의 이벤트는 CDB에서 프로세스 또는 세션이 응답하지 않을 때 생성됩니다. HEALTH-DB_CLUSTER-CDB-DATABASE_HANG com.oraclecloud.databaseservice.database.critical 해당 사항 없음
백업 Failure HEALTH.DB_CLUSTER.CDB.BACKUP_FAILURE v$rman_status 뷰에서 FAILED 상태의 CDB 백업이 보고된 경우 CRITICAL 유형의 이벤트가 생성됩니다. 건전성 DB 클러스터 CDB 백업 실패 com.oraclecloud.databaseservice.database.critical 해당 사항 없음
백업 Failure HEALTH.DB_CLUSTER.CDB.BACKUP_FAILURE_CLEARED INFORMATION 유형의 이벤트가 생성됩니다. 해당 사항 없음 com.oraclecloud.databaseservice.database.information 해당 사항 없음
디스크 그룹 사용량 HEALTH.DB_CLUSTER.DISK_GROUP.FREE_SPACE CRITICAL 유형의 이벤트는 ASM 디스크 그룹이 공간 사용량 90% 이상에 도달하면 생성됩니다. ASM 디스크 그룹 공간 사용량이 90% 미만으로 떨어지면 INFORMATION 유형의 이벤트가 생성됩니다. HEALTH-DB_CLUSTER-DISK_GROUP-FREE_SPACE com.oraclecloud.databaseservice.dbsystem.critical
com.oraclecloud.databaseservice.dbsystem.information(90% 미만인 경우)
해당 심각도가 4, 3, 2 및 1인 경우 사용량이 70%, 80%, 90%, 100%에 도달하면 통지가 전송됩니다.

특정 이벤트에 대한 자동 진단 수집을 일시적으로 제한

tfactl blackout 명령을 사용하여 자동 진단 수집을 일시적으로 금지합니다.

대상에 대해 blackout을 설정하는 경우 Oracle Trace File Analyzer는 스캔하는 동안 해당 대상에 대한 alert log에서 이벤트를 발견하면 자동 진단 수집을 정지합니다. 기본적으로 일시중단은 24시간 동안 적용됩니다.

ORA-00600 또는 특정 인수가 있는 ORA-00600에만 해당하는 경우와 같이 세분화된 레벨에서 자동 진단 수집을 제한할 수도 있습니다.

구문:

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]

매개변수:

매개변수 설명
add|remove|print| 일시중단 조건을 추가, 제거 또는 인쇄합니다.
-targettype type
Target type:host|crs|asm|asmdg|database|dbbackup|db_dataguard|
db_tablespace|pdb_tablespace|pdb|listener|service|os
지정된 대상 유형으로만 일시중단을 제한합니다.
host: 전체 노드가 일시중단 상태입니다. If there is host blackout, then every blackout element that’s shown true in the Telemetry JSON will have the reason for the blackout.
crs: Blackout the availability of the Oracle Clusterware resource or events in the Oracle Clusterware logs.
asm: Blackout the availability of Oracle Automatic Storage Management (Oracle ASM) on this machine or events in the Oracle ASM alert logs.
asmdg: Blackout an Oracle ASM disk group.
database: Blackout the availability of an Oracle Database, Oracle Database backup, tablespace, and so on, or events in the Oracle Database alert logs.
dbbackup: Blackout Oracle Database backup events (such as CDB or archive backups).
db_dataguard: Blackout Oracle Data Guard events.
db_tablespace: Blackout Oracle Database tablespace events (container database).
pdb_tablespace: Blackout Oracle pluggable database tablespace events (pluggable database).
pdb: Blackout Oracle pluggable database events.
listener: Blackout the availability of a listener.
service: Blackout the availability of a service.
os: Blackout one or more operating system records.
-target all\|name 블랙아웃할 대상을 지정합니다. 콤마로 구분된 대상 목록을 지정할 수 있습니다.
기본적으로 대상은 all로 설정됩니다.
-container name 일시중단이 적용될 데이터베이스 컨테이너 이름(db_unique_name)을 지정합니다(PDB, DB_TABLESPACE 및 PDB_TABLESPACE).
-pdb pdb_name 일시중단이 적용될 PDB를 지정합니다(PDB_TABLESPACE에만 해당).
-events all\|"str1,str2" 자동 수집을 트리거하거나 원격 측정 JSON에서 일시중단으로 표시되지 않아야 하는 가용성 이벤트 또는 이벤트 문자열로만 일시중단을 제한합니다.
all: 지정된 대상에 대한 모든 항목을 일시중단합니다.
문자열: 행의 일부에 지정된 문자열이 포함되어 있는 인시던트에 대한 일시중단입니다.
쉼표로 구분된 문자열 목록을 지정합니다.
-timeout nh\|nd\|none 시간 초과 전 일시중단 기간(시간 또는 일)을 지정합니다. 기본적으로 시간 초과는 24시간(24시간)으로 설정됩니다.
-c\|-local 일시중단을 cluster-wide 또는 local로 설정해야 하는지 여부를 지정합니다.
기본적으로 일시중단은 local로 설정됩니다.
-reason comment 일시중단에 대한 설명적인 이유를 지정합니다.
-docollection 이 대상에 대해 일시중단이 설정된 경우에도 자동 진단 수집을 수행하려면 이 옵션을 사용합니다.

예제는 다음과 같습니다.

다음은 tfactl blackout 명령을 사용하는 예입니다.

이벤트 일시중단: targettype의 ORA-00600: database, target: mydb

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

이벤트 일시중단: targettype의 ORA-04031: database, target: all

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

targettype에서 db 백업 이벤트를 blackout하려면 dbbackup, target: mydb

tfactl blackout add -targettype dbbackup -target mydb

targettype에서 db dataguard 이벤트를 일시중단하려면 db_dataguard, 대상: mydb

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

targettype에서 db 테이블스페이스 이벤트를 blackout하려면 db_tablespace, target: system, container: mydb

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

targettype에서 ALL 이벤트를 일시중단하려면 host, 대상: all

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

일시중단 세부정보를 인쇄하려면 다음과 같이 하십시오.

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

이벤트에 대한 일시중단을 제거하려면 targettype의 ORA-00600: database, target: mydb

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

targettype에서 DB 백업 이벤트에 대한 일시중단을 제거하려면 dbbackup, 대상: mydb

tfactl blackout remove -targettype dbbackup -target mydb

targettype에서 db 테이블스페이스 이벤트에 대한 blackout을 제거하려면 db_tablespace, target: system, container: mydb

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

targettype에서 호스트 이벤트에 대한 일시중단을 제거하려면 all, 대상: all

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

Oracle Trace File Analyzer 관리

Oracle Trace File Analyzer의 실행 상태를 확인하려면 tfactl status 명령을 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         |
'----------------------------------------------------------------------------------------------'

로컬 노드에서 Oracle Trace File Analyzer 데몬을 시작하려면 root 사용자로 tfactl start 명령을 실행합니다.

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

로컬 노드에서 Oracle Trace File Analyzer 데몬을 중지하려면 root 사용자로 tfactl stop 명령을 실행합니다.

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

데이터베이스 서비스 에이전트 관리

/opt/oracle/dcs/log/dcs-agent.log 파일을 보고 에이전트 관련 문제를 식별합니다.

데이터베이스 서비스 에이전트의 상태를 확인하려면 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/...

실행 중이 아닌 경우 에이전트를 시작하려면 root 사용자로 systemctl start 명령을 실행합니다.

systemctl start dbcsagent.service