crs命令用法及offline, unknown 狀態處理

tolywang發表於2009-02-17

$ORA_CRS_HOME/bin/crs_stat  -t   檢視crs各服務狀態 。

$ORA_CRS_HOME/bin/crs_start –all
此命令用來啟動所有的叢集服務,但是啟動的前提是 資源狀態State不能是UNKNOWN。
$ORA_CRS_HOME/bin/crs_start 叢集服務名(叢集服務名可以透過$ORA_CRS_HOME/bin/crs_stat得到)

$ORA_CRS_HOME/bin/crs_stop -all
$ORA_CRS_HOME/bin/crs_stop 叢集服務名(叢集服務名可以透過$ORA_CRS_HOME/bin/crs_stat得到)
上面的一組crs命令是用來啟動關閉crs服務的

 

-------------------------------------------------------------------------------------------------------- 

 

發現unknown 的服務如何處理 ?

[oracle@rac1 ~]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....CL1.srv application ONLINE UNKNOWN rac1
ora....CL2.srv application ONLINE UNKNOWN rac2
ora....TEST.cs application ONLINE UNKNOWN rac2
ora....L1.inst application ONLINE OFFLINE
ora....L2.inst application ONLINE OFFLINE
ora.ORCL.db application ONLINE UNKNOWN rac1
ora....SM1.asm application ONLINE UNKNOWN rac1
ora....C1.lsnr application ONLINE UNKNOWN rac1
ora.rac1.gsd application ONLINE UNKNOWN rac1
ora.rac1.ons application ONLINE UNKNOWN rac1
ora.rac1.vip application ONLINE ONLINE rac1
ora....SM2.asm application ONLINE UNKNOWN rac2
ora....C2.lsnr application ONLINE UNKNOWN rac2
ora.rac2.gsd application ONLINE UNKNOWN rac2
ora.rac2.ons application ONLINE UNKNOWN rac2
ora.rac2.vip application ONLINE ONLINE rac2

可以各種原因導致服務呈現unknown 狀態,比如兩個節點時間差太多,比如1分鐘,可能導致這個異常。

那麼我們需要首先處理好這個異常,然後去處理unknown狀態。

$ORA_CRS_HOME/bin/crs_stop –all只能停掉State為ONLINE的服務(使之變成offline) , 狀態為UNKNOWN的資源不能透過這個命令關閉, 因此可以透過  $ORA_CRS_HOME/bin/crs_stop 服務名 的方式單獨停止那些狀態為UNKNOWN的資源。服務名稱的獲取可以透過 $crs_stat  -v 得到 。

[oracle@rac1 ~]$ crs_stop  -all             停掉狀態為online的服務 。

[oracle@rac1 ~]$ crs_stop     ora.rac1.LISTENER_RAC1.lsnr        停掉狀態為unknown 狀態的服務 。

例子 :

ecsrac01$crs_stop  ora.ecsrac01.ons
ecsrac01$crs_stop  ora.ecsrac01.gsd
ecsrac01$crs_stop  ora.ecsrac01.vip
ecsrac01$crs_stop  ora.ecsrac02.LISTENER_ECSRAC02.lsnr
ecsrac01$crs_stop  ora.ecsdb.ecsdb1.inst 

 

 

再次檢視資源狀態:


[oracle@rac1 ~]$ $ORA_CRS_HOME/bin/crs_stat   -t                   所有服務變成offline 狀態 
Name Type Target State Host
------------------------------------------------------------
ora....CL1.srv application OFFLINE OFFLINE
ora....CL2.srv application OFFLINE OFFLINE
ora....TEST.cs application OFFLINE OFFLINE
ora....L1.inst application OFFLINE OFFLINE
ora....L2.inst application OFFLINE OFFLINE
ora.ORCL.db application OFFLINE OFFLINE
ora....SM1.asm application OFFLINE OFFLINE
ora....C1.lsnr application OFFLINE OFFLINE
ora.rac1.gsd application OFFLINE OFFLINE
ora.rac1.ons application OFFLINE OFFLINE
ora.rac1.vip application OFFLINE OFFLINE
ora....SM2.asm application OFFLINE OFFLINE
ora....C2.lsnr application OFFLINE OFFLINE
ora.rac2.gsd application OFFLINE OFFLINE
ora.rac2.ons application OFFLINE OFFLINE
ora.rac2.vip application OFFLINE OFFLINE   


此時可以重啟所有crs資源了
[oracle@rac1 ~]$ $ORA_CRS_HOME/bin/crs_start –all(注意,這裡是在oracle使用者下操作) 

此時,看到crs所有資源全部啟動,問題解決。
其它一些常用命令:
$ORA_CRS_HOME/bin/crsctl check crs 用於檢查後臺程式狀態
$ORA_CRS_HOME/bin/crsctl start resources 啟動crs資源
$ORA_CRS_HOME/bin/crsctl start crs 啟動crs,需要超級使用者操作。
$ORA_CRS_HOME/bin/crsctl stop crs 關閉crs,需要超級使用者操作。
$ORA_CRS_HOME/bin/crs_unregister 取消註冊crs
$ORA_CRS_HOME/bin/ocrcheck 檢查ocr設定資訊用ocrcheck
$ORA_CRS_HOME/bin/crsctl query css votedisk 檢查表決磁碟資訊
舉例:
[oracle@rac2 css]$ ocrcheck
Status of Oracle Cluster Registry is as follows :
Version : 2
Total space (kbytes) : 104344
Used space (kbytes) : 4568
Available space (kbytes) : 99776
ID : 328160432
Device/File Name : /dev/raw/raw4
Device/File integrity check succeeded
Device/File Name : /dev/raw/raw5
Device/File integrity check succeeded
Cluster registry integrity check succeeded
[oracle@rac2 css]$ $ORA_CRS_HOME/bin/ocrcheck
Status of Oracle Cluster Registry is as follows :
Version : 2
Total space (kbytes) : 104344
Used space (kbytes) : 4568
Available space (kbytes) : 99776
ID : 328160432
Device/File Name : /dev/raw/raw4
Device/File integrity check succeeded
Device/File Name : /dev/raw/raw5
Device/File integrity check succeeded
Cluster registry integrity check succeeded
[oracle@rac2 css]$ crsctl query css votedisk
0. 0 /dev/raw/raw6
1. 0 /dev/raw/raw7
2. 0 /dev/raw/raw8
located 3 votedisk(s).
注意:
執行crsctl命令的可以是root使用者,也可以是oracle使用者,如果是root使用者要指定絕對路徑,但是對於crsctl start crs和crsctl stop crs必須是root使用者來執行。
crs主要程式
(1)crsd
負責管理ha操作
管理crs資源,如linstener,vip,ons,gsn等
由root使用者管理、啟動
(2)ocssd
管理各節點的關係,用於節點間通訊
由oracle使用者執行管理
(3)oprocd
叢集程式管理 —Process monitor for the cluster.
僅在沒有使用vendor的叢集軟體狀態下執行
(4)evmd
事件檢測程式,由oracle使用者執行管理
(5)主要log位置
$ORA_CRS_HOME/log/節點主機名/racg
$ORA_CRS_HOME/log/節點主機名/crsd
$ORA_CRS_HOME/crs/init
$ORA_CRS_HOME/css/log
$ORA_CRS_HOME/css/init
$ORA_CRS_HOME/evm/log
$ORA_CRS_HOME/evm/init
$ORA_CRS_HOME/srvm/log

 

 

 


 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-553545/,如需轉載,請註明出處,否則將追究法律責任。

相關文章