CRS提供了很多命令可以管理和查看叢集服務狀態,常用的有crs_stat、crs_start、crs_stop、crsctl等,這裡依次介紹。
1、 查看叢集狀態
通過crs_stat命令可以查看叢集中所有資源的狀態,包括資源狀態、資源運行在哪個節點上、資源類型等資訊。例如:
- [Oracle@node-rac1 ~]$ crs_stat –t
- Name Type Target State Host
- ------------------------------------------------------------
- ora....SM1.asm application ONLINE ONLINE node-rac1
- ora....C1.lsnr application ONLINE ONLINE node-rac1
- ora....ac1.gsd application ONLINE ONLINE node-rac1
- ora....ac1.ons application ONLINE ONLINE node-rac1
- ora....ac1.vip application ONLINE ONLINE node-rac1
- ora....SM2.asm application ONLINE ONLINE node-rac2
- ora....C2.lsnr application ONLINE ONLINE node-rac2
- ora....ac2.gsd application ONLINE ONLINE node-rac2
- ora....ac2.ons application ONLINE ONLINE node-rac2
- ora....ac2.vip application ONLINE ONLINE node-rac2
- ora.racdb.db application ONLINE ONLINE node-rac2
- ora....b1.inst application ONLINE ONLINE node-rac1
- ora....b2.inst application ONLINE ONLINE node-rac2
- ora....test.cs application ONLINE ONLINE node-rac2
- ora....db1.srv application ONLINE ONLINE node-rac1
- ora....db2.srv application ONLINE ONLINE node-rac2
如果要更詳細的瞭解每個資源的名稱及狀態,還可以使用“crs_stat -l”命令,例如:
- [oracle@node-rac2 ~]$crs_stat -l|head -n 15
- NAME=ora.node-rac1.ASM1.asm
- TYPE=application
- TARGET=ONLINE
- STATE=ONLINE on node-rac1
-
- NAME=ora.node-rac1.LISTENER_NODE-RAC1.lsnr
- TYPE=application
- TARGET=ONLINE
- STATE=ONLINE on node-rac1
-
- NAME=ora.node-rac1.gsd
- TYPE=application
- TARGET=ONLINE
- STATE=ONLINE on node-rac1
-
可以看到,這個輸出中包含了每個服務完整的名稱和運行狀態。通過瞭解節點運行狀態,有助於對RAC叢集的管理和維護。
還可以使用crs_stat -p <resource_name> 來查看資源的屬性情況,包括依賴關係等等,例如:
- [oracle@node-rac1 ~]$crs_stat -p ora.node-rac2.LISTENER_NODE-RAC2.lsnr
2.1 crs_stop與crs_start命令
通過crs_stop可以方便的關閉某個服務資源,例如:
- [oracle@node-rac1 admin]$ crs_stop ora.node-rac1.LISTENER_NODE-RAC1.lsnr
- Attempting to stop `ora.node-rac1.LISTENER_NODE-RAC1.lsnr` on member `node-rac1`
- Stop of `ora.node-rac1.LISTENER_NODE-RAC1.lsnr` on member `node-rac1` succeeded.
此時,查看node-rac1節點的LISTENER服務狀態:
- [oracle@node-rac1 ~]$ crs_stat -t|grep lsnr
- ora....C1.lsnr application OFFLINE OFFLINE
- ora....C2.lsnr application ONLINE ONLINE node-rac2
從輸出可知,node-rac1節點的LISTENER服務已經處於OFFLINE狀態了。
接著啟動node-rac1節點的LISTENER服務:
- [oracle@node-rac1 ~]$crs_start ora.node-rac1.LISTENER_NODE-RAC1.lsnr
- Attempting to start `ora.node-rac1.LISTENER_NODE-RAC1.lsnr` on member `node-rac1`
- Start of `ora.node-rac1.LISTENER_NODE-RAC1.lsnr` on member `node-rac1` succeeded.
其實RAC資料庫的監聽還可以通過如下方式啟動和關閉:
- [oracle@node-rac1 ~]$lsnrctl start LISTENER_NODE-RAC1
- [oracle@node-rac1 ~]$lsnrctl stop LISTENER_NODE-RAC1
有時候,可能需要將叢集資源全部關閉,可以通過如下命令完成:
- [oracle@node-rac1 ~]$ crs_stop -all
也通過一個命令將叢集所有資源全部啟動,操作如下:
- [oracle@node-rac2 ~]$ crs_start -all