資料庫服務事件

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

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

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

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

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

事件服務 - 事件類型

資料庫服務事件類型

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

備註:

資料庫服務事件

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

好記的名稱 事件名稱 說明 修正 事件類型 臨界值
資源使用量 - 磁碟使用量 HEALTH.DB_GUEST.FILESYSTEM.FREE_SPACE VM 來賓檔案系統可用空間低於 10% 的可用空間時 (由作業系統 df(1) 命令決定),便會報告此事件:
/
/u01
/u02
/var (僅限 X8M 及更新版本)
/tmp (僅限 X8M 及更新版本)
HEALTH-DB_GUEST-FILESYSTEM-FREE_SPACE com.oraclecloud.databaseservice.dbnode.critical 嚴重臨界值:90%
CRS 狀態啟動 / 停止 AVAILABILITY.DB_GUEST.CRS_INSTANCE.DOWN. 當偵測到 Cluster Ready Service (CRS) 停止運作時,就會建立 CRITICAL 類型的事件。 可用性 - 資料庫來賓 -CRS_INSTANCE.DOWN com.oraclecloud.databaseservice.dbnode.critical (如果)。DOWN 與 NOT "user_action") 北美
CRS 狀態啟動 / 停止 AVAILABILITY.DB_GUEST.CRS_INSTANCE.DOWN_CLEARED 一旦確定 CRS 停止運作的事件已清除,就會建立類型為 INFORMATION 的事件。 北美 com.oraclecloud.databaseservice.dbnode.information (如果)。DOWN_CLEARED) 北美
CRS 狀態啟動 / 停止 AVAILABILITY.DB_GUEST.CRS_INSTANCE.EVICTION 已建立 CRITICAL 類型的事件。 可用性 - 資料庫來賓 -CRS_INSTANCE-EVICTION com.oraclecloud.databaseservice.dbnode.critical 北美
SCAN 監聽器向上 / 向下 AVAILABILITY.DB_CLUSTER.SCAN_LISTENER.DOWN SCAN 監聽器停止運作時會建立 DOWN 事件。當 SCAN 監聽器因使用者動作而關閉時 (例如使用伺服器控制公用程式 (srvctl) 或監聽器控制 (lsnrctl) 命令),或任何使用這些命令的 Oracle Cloud 維護動作 (例如執行 Grid Infrastructure 軟體更新),事件的類型為 INFORMATION。當 SCAN 監聽器意外停止運作時,事件的類型為 CRITICAL。啟動 SCAN 監聽器時,會建立對應的 DOWN_CLEARED 事件。
每個叢集都有三個 SCAN 監聽器,稱為 LISTENER_SCAN[1,2,3]。
可用性 -DB_CLUSTER-SCAN_LISTENER- 停用中 com.oraclecloud.databaseservice.dbnode.critical (如果)。DOWN 與 NOT "user_action") 北美
SCAN 監聽器向上 / 向下 AVAILABILITY.DB_CLUSTER.SCAN_LISTENER.DOWN_CLEARED 「資訊」類型的事件會在確定「SCAN 監聽器」已清除後建立。 北美 com.oraclecloud.databaseservice.dbnode.information (如果)。DOWN_CLEARED) 北美
淨監聽器向上 / 向下 AVAILABILITY.DB_GUEST.CLIENT_LISTENER.DOWN 當從屬端監聽器停止運作時,會建立 DOWN 事件。當從屬端監聽器因使用者動作而關閉時 (例如使用「伺服器控制公用程式」(srvctl) 或「監聽器控制」(lsnrctl) 命令),或任何使用這些命令的 Oracle Cloud 維護動作 (例如執行 Grid Infrastructure 軟體更新),事件的類型為 INFORMATION。當從屬端監聽器意外停止運作時,事件的類型為 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 事件。當資料庫執行處理因使用者動作而關閉時 (例如使用 SQL*Plus (sqlplus) 或「伺服器控制公用程式 (srvctl)」命令),或任何使用這些命令的 Oracle Cloud 維護動作 (例如執行資料庫本位目錄軟體更新),事件的類型是 INFORMATION。當資料庫執行處理意外停止運作時,事件的類型為 CRITICAL。當資料庫執行處理啟動時,就會建立對應的 DOWN_CLEARED 事件。 可用性 - 資料庫來賓 - 資料庫執行處理 - 停用中 com.oraclecloud.databaseservice.database.critical (如果)。DOWN 與 NOT "user_action") 北美
CDB 啟動 / 關閉 AVAILABILITY.DB_GUEST.CDB_INSTANCE.DOWN_CLEARED INFORMATION 類型的事件會在判斷 CDB 下載的事件已清除後建立。 北美 com.oraclecloud.databaseservice.database.information (如果)。DOWN_CLEARED) 北美
嚴重資料庫錯誤 HEALTH.DB_CLUSTER.CDB.CORRUPTION 在您的主要或待命的資料庫偵測到資料庫損毀。資料庫 alert.log 會針對因遺失寫入而導致的實體區塊損毀、邏輯區塊損毀或邏輯區塊損毀等特定錯誤進行剖析。 狀況 -DB_CLUSTER- 資料庫 - 損毀 com.oraclecloud.databaseservice.database.critical 北美
其他資料庫錯誤 HEALTH.DB_CLUSTER.CDB.ARCHIVER_HANG 如果 CDB 無法存檔作用中的線上重做日誌,或是無法將作用中的線上重做日誌快速存檔到日誌存檔目的地,就會建立 CRITICAL 類型的事件。 狀況 - 資料庫叢集 - 資料庫存檔器 com.oraclecloud.databaseservice.database.critical 北美
其他資料庫錯誤 HEALTH.DB_CLUSTER.CDB.DATABASE_HANG 當 CDB 中的處理作業或階段作業沒有回應時,就會建立 CRITICAL 類型的事件。 狀況 - 資料庫叢集 - 資料庫資料庫停滯 com.oraclecloud.databaseservice.database.critical 北美
備份故障 HEALTH.DB_CLUSTER.CDB.BACKUP_FAILURE 如果 v$rman_status 視觀表中報告 CDB 備份的狀態為 FAILED,就會建立 CRITICAL 類型的事件。 狀況 -DB_CLUSTER- 資料庫 - 備份 _ 失敗 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 的事件。 狀況 - 資料庫叢集 - 磁碟群組 - 免費空間 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]

參數:

參數 說明
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:中斷指定目標的所有項目。
string:中斷任何部分包含指定字串的未預期事件。
指定以逗號分隔的字串清單。
-timeout nh\|nd\|none 指定逾時前的中斷持續時間 (小時或天)。依預設,逾時設定為 24 小時 (24 小時)。
-c\|-local 指定中斷是否應設為 cluster-wide 或 local。
中斷預設為 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

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

tfactl blackout add -targettype dbbackup -target mydb

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

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

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

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

若要中斷以下目標類型的 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                                   |
'---------------+---------------------+-----------+------------------------------+------------------------------+--------+---------------+--------------------------------------'

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

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

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

tfactl blackout remove -targettype dbbackup -target mydb

若要移除下列目標類型的資料庫表格空間事件中斷:db_tablespace,目標:system,容器: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