| 類別 | 工具 | 典型用途 |
| 集群倉 | crsctl | 集群啟停、節點狀態、資源管理 |
| 資源管理 | srvctl | 數據庫/實例/監聽/ASM/服務生命周期 |
| SQL 監控 | GV$ 視圖 | 跨實例性能、會話、鎖等待分析 |
核心狀態檢查命令
1. 集群整體健康度
$ crsctl check cluster
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
2. 數據庫/實例狀態
# 數據庫級
$ srvctl status database -d racdb
Instance racdb1 is running on node rac01
Instance racdb2 is running on node rac02
# 單實例級
$ srvctl status instance -d racdb -i racdb1
Instance racdb1 is running on node rac01
3. 節點應用狀態(VIP/ONS/GSD/監聽)
$ srvctl status nodeapps
VIP rac01-vip is enabled
VIP rac01-vip is running on node: rac01
VIP rac02-vip is enabled
VIP rac02-vip is running on node: rac02
Network is enabled
Network is running on node: rac01
Network is running on node: rac02
GSD is disabled
ONS daemon is running on node: rac01
ONS daemon is running on node: rac02
eONS is enabled
eONS daemon is running on node: rac01
eONS daemon is running on node: rac02
4. ASM 實例狀態
$ srvctl status asm
ASM is running on rac01,rac02
$ srvctl config asm -a
ASM home: /u01/app/11.2.0/grid
ASM listener: LISTENER
ASM is enabled.
5. 監聽器與 SCAN 狀態
$ srvctl status listener
Listener LISTENER is enabled
Listener LISTENER is running on node(s): rac01,rac02
$ srvctl status scan
SCAN VIP scan1 is enabled
SCAN VIP scan1 is running on node rac02
$ srvctl config scan
SCAN name: rac-scan.example.com, Network: 1/192.168.1.0/255.255.255.0/eth0
SCAN VIP name: scan1, IP: /rac-scan.example.com/192.168.1.55
配置信息查詢命令
數據庫完整配置
$ srvctl config database -d racdb -a
Database unique name: racdb
Database name: racdb
Oracle home: /u01/app/oracle/product/11.2.0/dbhome_1
Oracle user: oracle
Spfile: +RACDB_DATA/racdb/spfileracdb.ora
Domain: example.com
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: racdb
Database instances: racdb1,racdb2
Disk Groups: RACDB_DATA,FRA
Services:
Database is enabled
Database is administrator managed
VIP 詳細配置
$ srvctl config vip -n rac01
VIP exists.: rac01
VIP exists.: /rac01-vip/192.168.1.53/255.255.255.0/eth0
$ srvctl config vip -n rac02
VIP exists.: rac02
VIP exists.: /rac02-vip/192.168.1.54/255.255.255.0/eth0
節點應用綜合配置
$ srvctl config nodeapps -a -g -s
VIP exists.: rac01
VIP exists.: /rac01-vip/192.168.1.53/255.255.255.0/eth0
VIP exists.: rac02
VIP exists.: /rac02-vip/192.168.1.54/255.255.255.0/eth0
GSD exists.
ONS daemon exists. Local port 6100, remote port 6200
Name: LISTENER
Network: 1, Owner: grid
Home:
End points: TCP:1521
時鐘同步驗證(關鍵健康檢查)
$ cluvfy comp clocksync -verbose
Verifying Clock Synchronization across the cluster nodes
Checking if Clusterware is installed on all nodes... PASSED
Checking if CTSS Resource is running on all nodes... PASSED
Node Name Status
rac01 passed
rac02 passed
Result: CTSS resource check passed
Reference Time Offset Limit: 1000.0 msecs
Node Name Time Offset Status
rac01 0.0 passed
rac02 0.0 passed
Result: Check of clock time offsets passed
Oracle Cluster Time Synchronization Services check passed
SQL 級跨實例監控
所有實例狀態
SELECT inst_id, instance_number, instance_name, parallel, status,
database_status, active_state, host_name
FROM gv$instance ORDER BY inst_id;
ASM 磁盤組與數據文件分佈
-- 所有數據文件及所在磁盤組
SELECT file_name, tablespace_name, bytes/1024/1024 MB
FROM dba_data_files;
-- ASM 磁盤組使用情況
SELECT name, total_mb, free_mb, usable_file_mb, state
FROM v$asm_diskgroup;
集群啟停操作(需 root 權限)
單節點操作
# 停止本節點 Clusterware(資源未停會失敗)
# crsctl stop cluster
# 強制停止所有資源並停止 Clusterware
# crsctl stop cluster -f
# 啟動本節點 Clusterware
# crsctl start cluster
全集群操作
# 停止所有節點
# crsctl stop cluster -all
# 啟動所有節點
# crsctl start cluster -all
# 指定節點啟動
# crsctl start cluster -n rac01 rac02
使用 SRVCTL 管理數據庫實例
# 停止整個數據庫(所有實例)
$ srvctl stop database -d racdb
# 啟動整個數據庫
$ srvctl start database -d racdb
# 停止單個實例
$ srvctl stop instance -d racdb -i racdb1
# 啟動單個實例
$ srvctl start instance -d racdb -i racdb1
故障排查常用組合拳
| 現象 | 診斷命令序列 |
| 實例掛起 | crsctl check cluster → srvctl status database -d racdb → gv$instance 查狀態 → alert.log 分析 |
| 監聽連不上 | srvctl status listener → srvctl config listener → lsnrctl status → tnsping SCAN名 |
| 節點被驅逐 | crsctl check cluster → $GRID_HOME/log/節點/alert.log → 時鐘同步 cluvfy comp clocksync |
| ASM 磁盤組離線 | srvctl status asm → v$asm_diskgroup 狀態 → kfed 讀磁盤頭 → 檢查存儲多路徑 |
最佳實踐建議
- 建立巡檢腳本:將上述狀態命令封裝為每日巡檢,異常自動告警
- 參數化部署:使用
srvctl add/modify 而非手動修改配置文件
- 變更管理:任何
srvctl modify 操作前必須 config 備份當前配置
- 版本對應:11.2.0.4 為終端版本,建議規劃升級至 19c 長期支持版本
- 上一篇文章: Oracle 刪除用戶報錯「當前連接用戶」?標準解鎖與刪除操作手冊
- 下一篇文章: Oracle ASM 磁盤頭損壞災難恢復實錄:fdisk 误操作導致 ORA-15196 的根因分析與異地容災救援
Copyright ©
程式碼之家 All Rights Reserved