資料庫服務事件
「資料庫服務事件」功能實行可讓您收到有關 Oracle 資料庫或資料庫系統上其他元件狀況問題的通知。
Oracle Database 或 Clusterware 可能狀況不佳,或者資料庫系統上的各種系統元件可能空間不足。客戶不會收到此情況的通知。資料庫服務事件功能實行會利用其租用戶中現有的 OCI 事件服務和通知機制,產生資料層作業和條件的事件,以及客戶的通知。接著,客戶可以透過電子郵件、功能或串流建立主題,並訂閱這些主題。
注意:資料庫系統上的事件流程取決於 Oracle Trace File Analyzer (TFA) 和 Oracle Database Cloud Service (DBCS) 代理程式。請確定這些元件已啟動並在執行中。
接收有關資料庫服務事件的通知
訂閱資料庫服務事件並收到通知。若要接收通知,請訂閱「資料庫服務事件」,然後使用 Oracle Notification 服務收到通知,請參閱通知總覽。如需有關 Oracle Cloud Infrastructure Events 的詳細資訊,請參閱活動概要。
事件服務 - 事件類型
- 資料庫 - 嚴重
- 資料庫節點 - 嚴重
- 資料庫節點 - 錯誤
- 資料庫節點 - 警告
- 資料庫節點 - 資訊
- 資料庫系統 - 嚴重
資料庫服務事件類型
下表列出資料庫服務所發出的事件類型。
備註:
- 嚴重事件是由各種會中斷資料庫或其他基本元件的嚴重狀況和錯誤所觸發。例如,資料庫、資料庫節點和資料庫系統的資料庫無回應錯誤和可用性錯誤,會指出資源何時無法使用。
- 資訊事件會在資料庫與其他重要元件如預期般運作時觸發。例如,清除 CRS、CDB、從屬端或 SCAN 監聽器,或這些元件的啟動將會建立嚴重度為
INFO的事件。 - 臨界值限制可減少客戶收到類似事件的通知數,同時確保他們收到事件,並及時提醒。
資料庫服務事件
備註:除了下列事件之外,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.criticalcom.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 typeTarget 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