資料庫服務事件

「資料庫服務事件」功能實行可讓您收到 Oracle 資料庫或其他資料庫系統元件狀況問題的通知。

Oracle Database 或叢集軟體可能狀況不佳,或者資料庫系統上的各種系統元件可能空間不足。客戶不會收到此情況的通知。「資料庫服務事件」功能實行會產生資料層作業和狀況的事件,以及利用其租用戶中現有的 OCI 事件服務和通知機制為客戶發出的通知。客戶接著可以建立主題,並透過電子郵件、函數或串流訂閱這些主題。

附註:

資料庫系統上的事件流程取決於 Oracle Trace File Analyzer (TFA) 和 Oracle Database Cloud Service (DBCS) 代理程式。請確定這些元件已啟動並在執行中。

接收與資料庫服務事件有關的通知

訂閱資料庫服務事件並收到通知。若要接收通知,請訂閱「資料庫服務事件」並使用 Oracle 通知服務收到通知,請參閱通知總覽。如需有關 Oracle Cloud Infrastructure Events 的詳細資訊,請參閱活動概要

事件服務 - 事件類型

  • 資料庫 - 嚴重
  • 資料庫節點 - 嚴重
  • 資料庫節點 - 錯誤
  • 資料庫節點 - 警告
  • 資料庫節點 - 資訊
  • 資料庫系統 - 嚴重

資料庫服務事件類型

下表列出「資料庫服務」發出的事件類型。

附註:

  • 嚴重事件是由各種會中斷資料庫或其他基本元件的嚴重狀況和錯誤所觸發。例如,資料庫、資料庫節點和資料庫系統的資料庫無回應錯誤和可用性錯誤,會指出資源何時無法使用。
  • 資訊事件會在資料庫和其他重要元件如預期般運作時觸發。例如,清除關閉 CRS、CDB、從屬端或掃描監聽器,或啟動這些元件會建立嚴重度為 INFO 的事件。
  • 臨界值限制可減少客戶收到類似事件事件的通知數目,同時確保他們能及時收到事件事件並提醒。

資料庫服務事件

附註:

除了下列事件之外,Oracle 還會分析其他事件,以提供最高等級的服務作業與支援,確保服務的高可用性。

表格 - 資料庫服務事件

好記的名稱 事件名稱 描述 修正 事件類型 臨界值
資源使用量 - 磁碟使用量 HEALTH.DB_GUEST.FILESYSTEM.FREE_SPACE

當下列檔案系統的 VM 來賓檔案系統可用空間低於 10% 可用空間 (由作業系統 df(1) 命令決定) 時,就會報告此事件:

  • /
  • /u01
  • /u02
  • /var (僅限 X8M 和更新版本)
  • /tmp (僅限 X8M 和更新版本)
狀況 -DB_GUEST- 檔案系統 -FREE_SPACE com.oraclecloud.databaseservice.dbnode.critical 嚴重性臨界值:90%
CRS 狀態「使用中 / 停用中」 AVAILABILITY.DB_GUEST.CRS_INSTANCE.DOWN. 偵測到 Cluster Ready Service (CRS) 停止運作時,會建立 CRITICAL 類型的事件。 可用性 -DB_GUEST-CRS_INSTANCE.DOWN com.oraclecloud.databaseservice.dbnode.critical (如果)。DOWN 和 NOT "user_action")
AVAILABILITY.DB_GUEST.CRS_INSTANCE.DOWN_CLEARED INFORMATION 類型的事件在確定 CRS 關閉的事件已清除後便會建立。 com.oraclecloud.databaseservice.dbnode.information (如果)。DOWN_CLEARED)
AVAILABILITY.DB_GUEST.CRS_INSTANCE.EVICTION 會建立 CRITICAL 類型的事件。 可用性 -DB_GUEST-CRS_INSTANCE- 描述 com.oraclecloud.databaseservice.dbnode.critical
SCAN 監聽器使用中 / 停用中 AVAILABILITY.DB_CLUSTER.SCAN_LISTENER.DOWN

SCAN 監聽器停止作用時會建立 DOWN 事件。SCAN 監聽器因使用者動作而關閉時,事件的類型為 INFORMATION,例如使用「伺服器控制公用程式」(srvctl) 或「監聽器控制」(lsnrctl) 命令,或任何使用這些命令的 Oracle Cloud 維護動作 (例如執行 Grid Infrastructure 軟體更新)。當 SCAN 監聽器意外停止作用時,事件的類型為 CRITICAL。啟動 SCAN 監聽器時,會建立對應的 DOWN_CLEARED 事件。

每個叢集有三個稱為 LISTENER_SCAN[1,2,3] 的 SCAN 監聽器。

可用性 -DB_CLUSTER-SCAN_LISTENER- 停用中 com.oraclecloud.databaseservice.dbnode.critical (如果)。DOWN 和 NOT "user_action")
AVAILABILITY.DB_CLUSTER.SCAN_LISTENER.DOWN_CLEARED INFORMATION 類型的事件會在確定 SCAN 監聽器的事件已清除後建立。 com.oraclecloud.databaseservice.dbnode.information (如果)。DOWN_CLEARED)
網路監聽器使用中 / 停用中 AVAILABILITY.DB_GUEST.CLIENT_LISTENER.DOWN

當從屬端監聽器停止作用時,就會建立 DOWN 事件。當從屬端監聽器因使用者動作而關閉時,事件的類型為 INFORMATION,例如使用「伺服器控制公用程式」(srvctl) 或「監聽器控制」(lsnrctl) 命令,或任何使用這些命令的 Oracle Cloud 維護動作 (例如執行 Grid Infrastructure 軟體更新)。從屬端監聽器意外停止時,事件的類型為 CRITICAL。啟動從屬端監聽器時,會建立對應的 DOWN_CLEARED 事件。

每個節點各有一個從屬端監聽器,每個監聽器都稱為 LISTENER。

可用性 -DB_GUEST-CLIENT_LISTENER.DOWN com.oraclecloud.databaseservice.database.critical (如果)。DOWN 和 NOT "user_action")
AVAILABILITY.DB_GUEST.CLIENT_LISTENER.DOWN_CLEARED INFORMATION 類型的事件會在確定已清除「從屬端監聽器」的事件之後建立。 com.oraclecloud.databaseservice.database.information (如果)。DOWN_CLEARED)
CDB 使用中 / 停用中 AVAILABILITY.DB_GUEST.CDB_INSTANCE.DOWN 當資料庫執行處理停止作用時,就會建立 DOWN 事件。當資料庫執行處理因使用者動作而關閉時,事件的類型是 INFORMATION,例如使用 SQL*Plus (sqlplus) 或「伺服器控制公用程式 (srvctl)」命令,或是任何使用這些命令的 Oracle Cloud 維護動作 (例如執行資料庫本位目錄軟體更新)。當資料庫執行處理意外停止時,事件的類型為 CRITICAL。啟動資料庫執行處理時會建立對應的 DOWN_CLEARED 事件。 可用性 -DB_GUEST-CDB_INSTANCE- 停用中 com.oraclecloud.databaseservice.database.critical (如果)。DOWN 和 NOT "user_action")
AVAILABILITY.DB_GUEST.CDB_INSTANCE.DOWN_CLEARED 一旦確定了 CDB 的事件已清除,就會建立 INFORMATION 類型的事件。 com.oraclecloud.databaseservice.database.information (如果)。DOWN_CLEARED)
嚴重資料庫錯誤 HEALTH.DB_CLUSTER.CDB.CORRUPTION 已在您的主要或待命資料庫上偵測到資料庫損毀。如果發生實體區塊損毀、邏輯區塊損毀或遺失寫入所造成的邏輯區塊損毀,則會剖析資料庫 alert.log。 狀況 -DB_CLUSTER-CDB- 損毀 com.oraclecloud.databaseservice.database.critical
其他資料庫錯誤 HEALTH.DB_CLUSTER.CDB.ARCHIVER_HANG 如果 CDB 無法將作用中的線上重做日誌存檔,或是無法將足夠的作用中線上重做日誌存檔至日誌存檔目的地,就會建立 CRITICAL 類型的事件。 狀況 -DB_CLUSTER-CDB-ARCHIVER_HANG com.oraclecloud.databaseservice.database.critical
HEALTH.DB_CLUSTER.CDB.DATABASE_HANG 當 CDB 中的處理作業或階段作業沒有回應時,就會建立 CRITICAL 類型的事件。 狀況 -DB_CLUSTER-CDB-DATABASE_HANG com.oraclecloud.databaseservice.database.critical
備份失敗 HEALTH.DB_CLUSTER.CDB.BACKUP_FAILURE 如果 CDB 備份在 v$rman_status 視觀表中報告 FAILED 狀態,則會建立 CRITICAL 類型的事件。 狀況 -DB_CLUSTER-CDB-BACKUP_FAILURE com.oraclecloud.databaseservice.database.critical
HEALTH.DB_CLUSTER.CDB.BACKUP_FAILURE_CLEARED 會建立 INFORMATION 類型的事件。 com.oraclecloud.databaseservice.database.information
磁碟群組使用狀況 HEALTH.DB_CLUSTER.DISK_GROUP.FREE_SPACE 當 ASM 磁碟群組達到 90% 或更高的空間使用量時,就會建立 CRITICAL 類型的事件。當 ASM 磁碟群組空間使用量低於 90% 時,就會建立 INFORMATION 類型的事件。 狀況 -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 命令可暫時抑制自動診斷集合。

如果您設定目標的中斷,則 Oracle Trace File Analyzer 會在掃描時,在警示日誌中找到該目標的事件時停止自動診斷收集。依照預設,中斷將生效 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]

參數

表格 - 參數

Parameter - 參數 描述
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 Automatic Storage Management (Oracle ASM) 可用性,或 Oracle ASM 警示日誌中的事件。

asmdg:中斷 Oracle ASM 磁碟群組。

database:中斷 Oracle Database、Oracle Database 備份、表格空間等等的可用性,或 Oracle Database 警示日誌中的事件。

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 指定中斷將在其中生效的資料庫容器名稱 (db_unique_name) (針對 PDB、DB_TABLESPACE 和 PDB_TABLESPACE)。
-pdb pdb_name 指定中斷將生效的 PDB (僅適用於 PDB_TABLESPACE)。
-events all|"str1,str2"

只將中斷限制在可用性事件或不應觸發自動收集的事件字串,或在遙測 JSON 中標示為已中斷的事件字串。

all:中斷指定目標的所有項目。

string:中斷行中任一部分包含指定字串的事件。

指定以逗號區隔的字串清單。

-timeout nh|nd|none 指定逾時前的中斷持續時間 (小時或天)。逾時預設為 24 小時 (24h)。
-c|-local

指定中斷是否應設為 cluster-widelocal

依照預設,中斷會設為 local

-reason comment 指定中斷的描述性原因。
-docollection 使用此選項可執行自動診斷收集,即使已為此目標設定中斷。

範例

以下是使用 tfactl blackout 命令的範例。

若要中斷事件:目標類型:database 上的 ORA-00600,目標:mydb

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

若要中斷事件:目標類型:database 上的 ORA-04031,目標:all

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

若要中斷 targettype:dbbackup 的資料庫備份事件,目標:mydb

tfactl blackout add -targettype dbbackup -target mydb

若要中斷 targettype:db_dataguard 的資料庫資料保全事件,目標:mydb

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

若要中斷 targettype:db_tablespace 的資料庫表格空間事件,目標:system,容器:mydb

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

若要中斷 targettype:host 上的 ALL 事件,目標: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 上事件 ORA-00600 的中斷,目標:mydb

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

移除 targettype:dbbackup 之資料庫備份事件的中斷,目標:mydb

tfactl blackout remove -targettype dbbackup -target mydb

移除 targettype: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 的執行狀態,請以 root 或非 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 協助程式,請以 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