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

데이터베이스 서비스 이벤트 기능 구현을 통해 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에 대한 자세한 내용은 이벤트 개요를 참조하십시오.

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

  • 데이터베이스 - 위기
  • DB 노드 - 위기
  • DB 노드 - 오류
  • DB 노드 - 경고
  • DB 노드 - 정보
  • DB 시스템 - 위기

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

다음 표에는 데이터베이스 서비스가 내보내는 이벤트 유형이 나열되어 있습니다.

주:

  • 중요 이벤트는 데이터베이스 또는 기타 필수 구성 요소를 방해하는 다양한 중요 조건 및 오류에 의해 트리거됩니다. 예를 들어, 데이터베이스, 데이터베이스 노드 및 DB 시스템에 대한 데이터베이스 응답 없는 오류 및 가용성 오류는 리소스를 사용할 수 없는 시기를 나타냅니다.
  • 정보 이벤트는 데이터베이스 및 기타 중요 구성요소가 예상대로 작동할 때 트리거됩니다. 예를 들어, CRS, CDB, 클라이언트 또는 스캔 리스너를 완전히 종료하거나 이러한 구성 요소를 시작하면 심각도가 INFO인 이벤트가 생성됩니다.
  • 임계값 한도는 유사한 사고 이벤트에 대해 고객이 수신할 통지 수를 줄이는 동시에 사고 이벤트를 수신하고 적시에 미리 알림을 받도록 보장합니다.

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

주:

아래 나열된 이벤트 외에도 Oracle은 추가 이벤트를 분석하여 최고 수준의 서비스 운영 및 서비스 고가용성 보장을 위한 지원을 제공합니다.

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

친화적 이름 이벤트 이름 설명 수정 이벤트 유형 임계값
리소스 활용률 - 디스크 사용량 HEALTH.DB_GUEST.FILESYSTEM.FREE_SPACE

이 이벤트는 다음 파일 시스템에 대한 운영체제 df(1) 명령의 결정에 따라 VM 게스트 파일 시스템 사용 가능 공간이 10% 미만으로 떨어질 때 보고됩니다.

  • /
  • /u01
  • /u02
  • /var(X8M 이상만 해당)
  • /tmp(X8M 이상만 해당)
건전성 DB_GUEST-파일 시스템-FREE_SPACE com.oraclecloud.databaseservice.dbnode.critical 한계 임계값: 90%
CRS 상태 위로/아래로 AVAILABILITY.DB_GUEST.CRS_INSTANCE.DOWN. CRS(Cluster Ready Service)가 작동 중지된 것으로 감지되면 CRITICAL 유형의 이벤트가 생성됩니다. 가용성-DB_GUEST-CRS_INSTANCE.DOWN com.oraclecloud.databaseservice.dbnode.critical(있는 경우) DOWN 및 NOT "user_action" NA
AVAILABILITY.DB_GUEST.CRS_INSTANCE.DOWN_CLEARED CRS 작동 중지 이벤트가 지워진 것으로 확인되면 INFORMATION 유형의 이벤트가 생성됩니다. NA com.oraclecloud.databaseservice.dbnode.information(있는 경우) DOWN_CLEARED) NA
AVAILABILITY.DB_GUEST.CRS_INSTANCE.EVICTION CRITICAL 유형의 이벤트가 생성됩니다. 가용성-DB_GUEST-CRS_INSTANCE-EVICTION com.oraclecloud.databaseservice.dbnode.critical NA
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 (있는 경우) DOWN 및 NOT "user_action" NA
AVAILABILITY.DB_CLUSTER.SCAN_LISTENER.DOWN_CLEARED INFORMATION 유형의 이벤트는 SCAN 리스너에 대한 이벤트가 지워진 것으로 확인되면 생성됩니다. NA com.oraclecloud.databaseservice.dbnode.information(있는 경우) DOWN_CLEARED) NA
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(있는 경우) DOWN 및 NOT "user_action" NA
AVAILABILITY.DB_GUEST.CLIENT_LISTENER.DOWN_CLEARED INFORMATION 유형의 이벤트는 클라이언트 리스너에 대한 이벤트가 지워진 것으로 확인되면 생성됩니다. NA com.oraclecloud.databaseservice.database.information(있는 경우) DOWN_CLEARED) NA
CDB 업/다운 AVAILABILITY.DB_GUEST.CDB_INSTANCE.DOWN DOWN 이벤트는 데이터베이스 Instance의 작동이 중지될 때 생성됩니다. 이 이벤트는 SQL*Plus(sqlplus) 또는 Server Control Utility(srvctl) 명령 또는 데이터베이스 홈 소프트웨어 업데이트 수행과 같이 해당 명령을 사용하는 Oracle Cloud 유지 관리 작업과 같은 사용자 작업으로 인해 데이터베이스 인스턴스가 종료될 때 INFORMATION 유형입니다. 데이터베이스 Instance가 예기치 않게 다운되는 경우 이 이벤트는 CRITICAL 유형입니다. 해당 DOWN_CLEARED 이벤트는 데이터베이스 인스턴스가 시작될 때 생성됩니다. 가용성-DB_GUEST-CDB_INSTANCE-DOWN com.oraclecloud.databaseservice.database.critical(있는 경우) DOWN 및 NOT "user_action" NA
AVAILABILITY.DB_GUEST.CDB_INSTANCE.DOWN_CLEARED INFORMATION 유형의 이벤트는 CDB 작동 중지 이벤트가 지워진 것으로 확인되면 생성됩니다. NA com.oraclecloud.databaseservice.database.information(있는 경우) DOWN_CLEARED) NA
심각한 DB 오류 HEALTH.DB_CLUSTER.CDB.CORRUPTION 데이터베이스 손상이 기본 또는 대기 데이터베이스에서 감지되었습니다. 데이터베이스 alert.log는 물리적 블록 손상, 논리적 블록 손상 또는 손실된 쓰기로 인한 논리적 블록 손상을 나타내는 특정 오류에 대해 구문 분석됩니다. 건전성 DB_CLUSTER-CDB-부패 com.oraclecloud.databaseservice.database.critical NA
기타 DB 오류 HEALTH.DB_CLUSTER.CDB.ARCHIVER_HANG CDB가 활성 온라인 리두 로그를 아카이브할 수 없거나 활성 온라인 리두 로그를 로그 아카이브 대상에 충분히 빨리 아카이브할 수 없는 경우 CRITICAL 유형의 이벤트가 생성됩니다. 건전성 DB_CLUSTER-CDB-ARCHIVER_HANG com.oraclecloud.databaseservice.database.critical NA
HEALTH.DB_CLUSTER.CDB.DATABASE_HANG CRITICAL 유형의 이벤트는 CDB에서 프로세스 또는 세션이 응답하지 않을 때 생성됩니다. 건전성 DB_CLUSTER-CDB-DATABASE_HANG com.oraclecloud.databaseservice.database.critical NA
백업 실패 HEALTH.DB_CLUSTER.CDB.BACKUP_FAILURE v$rman_status 뷰에 FAILED 상태의 CDB 백업이 있는 경우 CRITICAL 유형의 이벤트가 생성됩니다. 건전성 DB_CLUSTER-CDB-BACKUP_FAILURE com.oraclecloud.databaseservice.database.critical NA
HEALTH.DB_CLUSTER.CDB.BACKUP_FAILURE_CLEARED INFORMATION 유형의 이벤트가 생성됩니다. NA com.oraclecloud.databaseservice.database.information NA
디스크 그룹 사용량 HEALTH.DB_CLUSTER.DISK_GROUP.FREE_SPACE CRITICAL 유형의 이벤트는 ASM 디스크 그룹이 90% 이상의 공간 사용량에 도달하면 생성됩니다. INFORMATION 유형의 이벤트는 ASM 디스크 그룹 공간 사용량이 90% 미만으로 떨어질 때 생성됩니다. 건강 DB_CLUSTER-DISK_GROUP-FREE_SPACE

com.oraclecloud.databaseservice.dbsystem.critical

com.oraclecloud.databaseservice.dbsystem.information(90% 미만인 경우)

사용량이 70%, 80%, 90%, 100%에 도달하고 해당 심각도가 4, 3, 2, 1인 경우 통지가 전송됩니다.

특정 이벤트에 대한 자동 진단 모음 일시적 제한

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

대상 유형:host|crs|asm|asmdg|database|dbbackup|db_dataguard|

db_tablespace|pdb_tablespace|pdb|listener|service|os

블랙아웃은 지정된 대상 유형으로만 제한합니다.

host: 전체 노드가 일시중단 상태입니다. 호스트 일시중단이 있는 경우 Telemetry JSON에 true로 표시된 모든 일시중단 요소는 일시중단에 대한 원인이 됩니다.

crs: Oracle Clusterware 리소스 또는 Oracle Clusterware 로그에 있는 이벤트의 가용성을 일시 중단합니다.

asm: 이 시스템에서 Oracle ASM(Oracle Automatic Storage Management)의 가용성을 일시 중단하거나 Oracle ASM 경보 로그의 이벤트를 차단합니다.

asmdg: Oracle ASM 디스크 그룹을 일시 중단합니다.

database: Oracle Database, Oracle Database 백업, 테이블스페이스 등의 가용성 또는 Oracle Database Alert Log의 이벤트를 일시 중단합니다.

dbbackup: Oracle Database 백업 이벤트(예: CDB 또는 아카이브 백업)를 일시 중단합니다.

db_dataguard: Oracle Data Guard 이벤트를 일시중단합니다.

db_tablespace: Oracle Database 테이블스페이스 이벤트(컨테이너 데이터베이스)를 일시 중단합니다.

pdb_tablespace: Oracle 플러거블 데이터베이스 테이블스페이스 이벤트(플러거블 데이터베이스)를 일시중단합니다.

pdb: Oracle 플러거블 데이터베이스 이벤트를 일시중단합니다.

listener: 리스너의 가용성을 일시 중단합니다.

service: 서비스 가용성을 일시 중단합니다.

os: 하나 이상의 운영 체제 레코드를 일시 중단합니다.

-target all|name

블랙아웃할 대상을 지정합니다. 콤마로 구분된 대상 목록을 지정할 수 있습니다.

기본적으로 대상은 all로 설정됩니다.

-container name PDB, DB_TABLESPACE 및 PDB_TABLESPACE의 경우 일시중단이 적용될 데이터베이스 컨테이너 이름(db_unique_name)을 지정합니다.
-pdb pdb_name 일시중단이 적용될 PDB를 지정합니다(PDB_TABLESPACE에만 해당).
-events all|"str1,str2"

자동 수집을 트리거하지 않거나 원격 측정 JSON에서 일시중단됨으로 표시해서는 안 되는 가용성 이벤트 또는 이벤트 문자열로만 일시중단을 제한합니다.

all: 지정된 대상에 대한 모든 항목을 일시 중단합니다.

string: 행의 일부가 지정된 문자열을 포함하는 장애에 대한 일시중단입니다.

콤마로 구분된 문자열 목록을 지정합니다.

-timeout nh|nd|none 시간 초과 전 시간 또는 일수로 일시중단 기간을 지정합니다. 기본적으로 시간 초과는 24시간(24h)으로 설정됩니다.
-c|-local

일시중단을 cluster-wide 또는 local로 설정해야 할지 여부를 지정합니다.

기본적으로 blackout은 local으로 설정됩니다.

-reason comment 일시중단에 대한 구체적인 이유를 지정합니다.
-docollection 이 대상에 대해 blackout이 설정된 경우에도 자동 진단 수집을 수행하려면 이 옵션을 사용합니다.

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

이벤트를 일시중단하려면 targettype database, target mydb에서 ORA-00600을 사용합니다.

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

이벤트를 일시중단하려면 targettype database, target all에서 ORA-04031을 사용합니다.

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

targettype에서 DB 백업 이벤트를 일시중단하려면: 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 테이블스페이스 이벤트를 일시중단하려면 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: database, target: mydb에서 이벤트: ORA-00600에 대한 일시중단을 제거하려면

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

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

tfactl blackout remove -targettype dbbackup -target mydb

targettype: db_tablespace, target: system, container: mydb에서 db 테이블스페이스 이벤트 blackout을 제거합니다.

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의 실행 상태를 확인하려면 root 또는 비루트 사용자로 tfactl status 명령을 실행합니다.

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 데몬을 시작하려면 tfactl start 명령을 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

로컬 노드에서 Oracle Trace File Analyzer 데몬을 정지하려면 tfactl stop 명령을 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..

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

/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