資料庫服務事件
「資料庫服務事件」功能實行可讓您收到 Oracle 資料庫或其他資料庫系統元件狀況問題的通知。
Oracle Database 或叢集軟體可能狀況不佳,或者資料庫系統上的各種系統元件可能空間不足。客戶不會收到此情況的通知。「資料庫服務事件」功能實行會產生資料層作業和狀況的事件,以及利用其租用戶中現有的 OCI 事件服務和通知機制為客戶發出的通知。客戶接著可以建立主題,並透過電子郵件、函數或串流訂閱這些主題。
附註:
資料庫系統上的事件流程取決於 Oracle Trace File Analyzer (TFA) 和 Oracle Database Cloud Service (DBCS) 代理程式。請確定這些元件已啟動並在執行中。資料庫服務事件類型
下表列出「資料庫服務」發出的事件類型。
附註:
- 嚴重事件是由各種會中斷資料庫或其他基本元件的嚴重狀況和錯誤所觸發。例如,資料庫、資料庫節點和資料庫系統的資料庫無回應錯誤和可用性錯誤,會指出資源何時無法使用。
- 資訊事件會在資料庫和其他重要元件如預期般運作時觸發。例如,清除關閉 CRS、CDB、從屬端或掃描監聽器,或啟動這些元件會建立嚴重度為
INFO
的事件。 - 臨界值限制可減少客戶收到類似事件事件的通知數目,同時確保他們能及時收到事件事件並提醒。
資料庫服務事件
附註:
除了下列事件之外,Oracle 還會分析其他事件,以提供最高等級的服務作業與支援,確保服務的高可用性。表格 - 資料庫服務事件
好記的名稱 | 事件名稱 | 描述 | 修正 | 事件類型 | 臨界值 |
---|---|---|---|---|---|
資源使用量 - 磁碟使用量 | HEALTH.DB_GUEST.FILESYSTEM.FREE_SPACE |
當下列檔案系統的 VM 來賓檔案系統可用空間低於 10% 可用空間 (由作業系統
|
狀況 -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,例如使用「伺服器控制公用程式」( 每個叢集有三個稱為 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,例如使用「伺服器控制公用程式」( 每個節點各有一個從屬端監聽器,每個監聽器都稱為 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 |
|
使用次數達到 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 |
|
新增、移除或列印中斷條件。 |
目標類型:
|
只將中斷限制在指定的目標類型。
|
-target all|name |
指定中斷的目標。您可以指定以逗號分隔的目標清單。 依照預設,目標設為 |
-container name |
指定中斷將在其中生效的資料庫容器名稱 (db_unique_name ) (針對 PDB、DB_TABLESPACE 和 PDB_TABLESPACE)。
|
-pdb pdb_name |
指定中斷將生效的 PDB (僅適用於 PDB_TABLESPACE)。 |
-events all|"str1,str2" |
只將中斷限制在可用性事件或不應觸發自動收集的事件字串,或在遙測 JSON 中標示為已中斷的事件字串。
string:中斷行中任一部分包含指定字串的事件。 指定以逗號區隔的字串清單。 |
-timeout nh|nd|none |
指定逾時前的中斷持續時間 (小時或天)。逾時預設為 24 小時 (24h)。 |
-c|-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