天天看點

RAC 管理(crs_stat、crsctl、srvctl)   RAC 管理(crs_stat、crsctl、srvctl)  

節點層:osnodes 

網絡層:oifcfg 

叢集層:crsctl, ocrcheck,ocrdump,ocrconfig 

應用層:srvctl,onsctl,crs_stat 

下面分别來介紹這些指令。

olsnodes,這個指令用來顯示叢集點清單,可用的參數如下:

$olsnodes -h

用法: olsnodes [-n] [-p][-i] [<node> | -l] [-g] [-v] 

-n列印節點編号和節點名 

-p列印專用互聯名和節點名 

-i列印虛拟IP名和節點名 

<node>列印指定節點的資訊 

-l列印本地節點的資訊 

-g啟用事件記錄 

-v在詳細模式下運作

這些參數可以混合使用。 

[root@rac1 bin]#$olsnodes

racnode1

racnode2 

[root@rac1 bin]#olsnodes-n

racnode11

racnode22

注:若指令不能運作,添加path,或直接進入指令所在目錄運作。本例位于:

/u01/crs/oracle/product/11.1.0/crs/bin

網絡層由各個節點的網絡元件組成,包括2個實體網卡和3個IP位址。也隻有一個指令:oifcfg。

Oifcfg指令的格式如下:

用法: oifcfg iflist [-p [-n]] 

oifcfg setif {-node <nodename> | -global} {<if_name>/<subnet>:<if_type>}… 

oifcfg getif [-node <nodename> | -global] [ -if <if_name>[/<subnet>] [-type <if_type>] ] 

oifcfg delif [-node <nodename> | -global] [<if_name>[/<subnet>]] 

oifcfg [-help]

<nodename> -為通信網絡所知的主機名 

<if_name> -系統中配置的接口的名稱 

<subnet> -接口的子網位址 

<if_type> -接口類型{ cluster_interconnect | public | storage } 

Oifctg指令用來定義和修改Oracle叢集需要的網卡屬性,這些屬性包括網卡的網段位址,子網路遮罩,接口類型等。要想正确的使用這個指令,必須先知道Oracle是如何定義網絡接口的,Oracle的每個網絡接口包括名稱,網段位址,接口類型3個屬性:interface_name/subnet:interface_type。

這些屬性中沒有IP位址,但接口類型有兩種,public和private,前者說明接口用于外部通信,用于Oracle Net和VIP位址,而後者說明接口用于Interconnect。

接口的配置方式分為兩類:

global和node-specific。前者說明叢集所有節點的配置資訊相同,也就是說所有節點的配置是對稱的;而後者意味着這個節點的配置和其他節點配置不同,是非對稱的。 

Iflist:顯示網口清單 

Getif:獲得單個網口資訊 

Setif:配置單個網口 

Delif:删除網口 

[root@rac1 bin]# ./oifcfg -help

[root@rac1 bin]# ./oifcfg iflist 

[root@rac1 bin]# ./oifcfg getif 

–檢視public類型的網卡 

[root@rac1 bin]# ./oifcfg getif -type public 

–删除接口配置 

[root@rac1 bin]# ./oifcfg delif–global 

–添加接口配置 

[root@rac1 bin]# ./oifcfg setif -global eth0/192.168.1.119:public 

[root@rac1 bin]# ./oifcfg setif -globaleth1/10.85.10.119:cluster_interconnect

叢集層是指由Clusterware組成的核心叢集, 這一層負責維護叢集内的共享裝置,并為應用叢集提供完整的叢集狀态視圖,應用叢集依據這個視圖進行調整。這一層共有4個指令:crsctl, ocrcheck,ocrdump,ocrconfig.後三個是針對OCR磁盤的。

[root@rac1 bin]# ./crsctl

3.1.1 檢查crs狀态

[root@rac1 bin]# ./crsctl check crs 

Cluster Synchronization Services appears healthy

Cluster Ready Services appears healthy

Event Manager appears healthy 

–檢查單個狀态 

[root@rac1 bin]# ./crsctl check cssd 

CSS appears healthy 

[root@rac1 bin]# ./crsctl check crsd 

CRS appears healthy 

[root@rac1 bin]# ./crsctl check evmd 

EVM appears healthy

3.1.2 配置crs棧是否自啟動

[root@rac1 bin]# ./crsctl disable crs 

[root@rac1 bin]# ./crsctl enable crs 

這個指令實際是修改了/etc/oracle/scls_scr/raw/root/crsstart這個檔案裡的内容。

3.1.3 啟動,停止crs棧

Oracle在10.1時,必須通過重新啟動系統重新開機Clusterware,但是從Oracle 10.2開始,可以通過指令來啟動和停止CRS。 

–啟動CRS: 

[root@rac1 bin]# ./crsctl start crs

Attempting to start CRS stack 

The CRS stack will be started shortly 

–關閉CRS: 

[root@rac1 bin]# ./crsctl stop crs 

Stopping resources. 

Successfully stopped CRS resources 

Stopping CSSD. 

Shutting down CSS daemon. 

Shutdown request successfully issued.

3.1.4 檢視votedisk磁盤位置

[root@rac1 bin]# ./crsctl query css votedisk

3.1.5 檢視和修改crs參數

–檢視參數:用get 

[root@rac1 bin]# ./crsctl get css misscount 

60 

–修改參數: 用set,但是這個功能要慎用 

[root@rac1 bin]# ./crsctl set css miscount 60

3.1.6 跟蹤crs子產品,提供輔助功能

CRS由CRS,CSS,EVM三個服務組成,每個服務又是由一系列module組成,crsctl允許對每個module進行跟蹤,并把跟蹤内容記錄到日志中。 

[root@rac1 bin]# ./crsctl lsmodules css 

[root@rac1 bin]# ./crsctl lsmodules evm 

–跟蹤CSSD子產品,需要root使用者執行: 

[root@rac1 bin]# ./crsctl debug log css "CSSD:1" 

Configuration parameter trace is now set to 1. 

Set CRSD Debug Module: CSSD Level: 1 

–檢視跟蹤日志 

[root@rac1 cssd]# pwd 

/u01/app/oracle/product/crs/log/rac1/cssd 

[root@rac1 cssd]# more ocssd.log 

3.1.7 維護votedisk

1) 檢視目前配置 

[root@rac1 bin]# ./crsctl query css votedisk 

2) 停止所有節點的CRS: 

3) 添加Votedisk 

[root@rac1 bin]# ./crsctl add css votedisk /dev/raw/rac1 -force 

注意:即使在CRS關閉後,也必須通過-force參數來添加和删除Votedisk,并且-force參數隻有在CRS關閉的場合下使用才安全,否則會報:Cluter is not a ready state for online disk addition. 

4) 确認添加後的情況: 

5) 啟動CRS 

Oracle Clusterware把整個叢集的配置資訊放在共享存儲上,這個存儲就是OCR Disk.在整個叢集中,隻有一個節點能對OCR Disk進行讀寫操作,這個節點叫作Master Node,所有節點都會在記憶體中保留一份OCR的拷貝,同時喲一個OCR Process從這個記憶體中讀取内容。OCR内容發生改變時,由Master Node的OCR Process負責同步到其他節點的OCR Process。 

3.2.1 ocrdump

該指令能以ASCII的方式列印出OCR的内容,但是這個指令不能用作OCR的備份恢複,也就是說産生的檔案隻能用作閱讀,而不能用于恢複。 

指令格式:ocrdump [-stdout] [filename] [-keyname name] [-xml] 

參數說明: 

-stdout:把内容列印輸出到螢幕上 

Filename:内容輸出到檔案中 

-keyname:隻列印某個鍵及其子健内容 

示例:把system.css鍵的内容以.xml格式列印輸出到螢幕 

[root@rac1 bin]#./ocrdump -stdout -keyname system.css -xml|more 

…… 

這個指令在執行過程中,會在$CRS_HOME\log\<node_name>\client目錄下産生日志檔案,檔案名ocrdump_<pid>.log,如果指令執行出現問題,可以從這個日志檢視問題原因。

3.2.2 ocrcheck

Ocrcheck指令用于檢查OCR内容的一緻性,指令執行過程會在$CRS_HOME\log\nodename\client目錄下産生ocrcheck_pid.log日志檔案。 這個指令不需要參數。 

[root@rac1 bin]#./ocrcheck

3.2.3 ocrconfig

該指令用于維護OCR磁盤,安裝clusterware過程中,如果選擇External Redundancy備援方式,則隻能輸入一個OCR磁盤位置。但是Oracle允許配置兩個OCR磁盤互為鏡像,以防止OCR磁盤的單點故障。OCR磁盤和Votedisk磁盤不一樣,OCR磁盤最多隻能有兩個,一個Primary OCR和一個Mirror OCR。 

[root@rac1 bin]# ./ocrconfig –help

–檢視自助備份 

[root@rac1 bin]#./ocrconfig -showbackup 

在預設情況下,OCR自動備份在$CRS_HOME\CRS\CDATA\cluster_name目錄下,可以通過ocrconfig -backuploc <directory_name>指令修改到新的目錄

3.2.4 使用導出,導入進行備份和恢複

1) 首先關閉所有節點的CRS 

[root@rac1 bin]#./crsctl stop crs 

2) 用root使用者導出OCR内容

[root@rac1 bin]# ./ocrconfig -export /u01/ocr.exp

3) 重新開機CRS 

4) 檢查CRS狀态 

5)破壞OCR内容 

[root@rac1 bin]# dd if=/dev/zero f=/dev/raw/rac1 bs=1024 count=102400 

102400+0 records in 

102400+0 records out 

6) 檢查OCR一緻性 

[root@rac1 bin]# ./ocrcheck 

PROT-601: Failed to initialize ocrcheck

7)使用cluvfy工具檢查一緻性 

[root@rac1 cluvfy]# ./runcluvfy.sh comp ocr -n all 

Verifying OCR integrity 

Unable to retrieve nodelist from Oracle clusterware. 

Verification cannot proceed. 

8) 使用Import恢複OCR内容 

[root@rac1 bin]# ./ocrconfig -import /u01/ocr.exp 

9)再次檢查OCR 

10) 使用cluvfy工具檢查 

[root@rac1 cluvfy]# ./runcluvfy.sh comp ocr -n all

3.2.5 移動ocr檔案位置

執行個體示範将OCR從/dev/raw/rac1移動到/dev/raw/raw3上。 

1) 檢視是否有OCR備份 

如果沒有備份,可以立即執行一次導出作為備份: 

[root@rac1 bin]#./ocrconfig -export /u01/ocrbackup -s online 

2) 檢視目前OCR配置 

3)添加一個Mirror OCR 

[root@rac1 bin]#./ocrconfig -replace ocrmirror /dev/raw/raw4 

4)确認添加成功 

5)改變primary OCR位置 

[root@rac1 bin]#./ocrconfig -replace ocr /dev/raw/raw3 

确認修改成功: 

[root@rac1 bin]#more /etc/oracle/ocr.loc 

ocrconfig_loc=/dev/raw/rac1 

Ocrmirrorconfig_loc=/dev/raw/raw3 

local_only=FALSE

Crs_stat這個指令用于檢視CRS維護的所有資源的運作狀态,如果不帶任何參數時,顯示所有資源的概要資訊。每個資源顯示是各個屬性:資源名稱,類型,目錄,資源運作狀态等。 

[root@rac1 bin]#./crs_stat 

也可以指定資源名,檢視指定資源的狀态,并可以使用-V和-P選項,以檢視詳細資訊,其中-p參數顯示的内容比-V更詳細。 

1) 檢視制定資源狀态 

[root@rac1 bin]#./crs_stat ora.rac2.vip 

2) 使用-v選項,檢視詳細内容,這時輸出多出4項内容,分别是允許重新開機次數,已執行重新開機次數,失敗閥值,失敗次數。 

[root@rac1 bin]#./crs_stat -v ora.rac2.vip 

3) 使用-p選項檢視更詳細内容 

[root@rac1 bin]#./crs_stat -p ora.rac2.vip

這些字段是所有資源共有的,但是根據資源類型不同,某些字段可以空值。 

[root@rac1 bin]#./crs_stat -ls

4.1.2.1 ons配置内容

在RAC環境中,需要使用$CRS_HOME下的ONS,而不是$ORACLE_HOME下面的ONS, 這點需要注意。 配置檔案在$CRS_HOME\opmn\conf\ons.config. 

[root@rac1 conf]#pwd 

/u01/app/oracle/product/crs/opmn/conf 

[root@rac1 conf]# more ons.config 

Localport:這個參數代表本地監聽端口,這裡本地特指:127.0.0.1這個回環位址,用來和運作在本地的用戶端進行通信 

Remoteport:這個參數代表的是遠端監聽端口,也就是除了127.0.0.1以外的所有本地IP位址,用來和遠端的用戶端進行通信。 

Loglevel:Oracle允許跟蹤ONS程序的運作,并把日志記錄到本地檔案中,這個參數用來定義ONS程序要記錄的日志級别,從1-9,預設值是3. 

Logfile:這個參數和loglevel參數一起使用,用于定義ONS程序日志檔案的位置,預設值是$CRS_HOME\opmn\logs\opmn.log 

nodes和useocr:這兩個參數共同決定餓了本地的ONS daemon要和哪些遠端節點上的ONS daemon進行通信。 

Nodes參數值格式如下:Hostname/IP:port[hostname/ip:port] 

如:useoce=off 

Nodes=rac1:6200,rac2:6200 

而useocr參數值為on/off,如果useocr是ON, 說明資訊儲存在OCR中,如果是OFF,說明資訊取nodes中的配置。對于單執行個體而言,要把useocr設定為off。

4.1.2.2 配置ons

可以直接編譯ONS的配置檔案來修改配置,如果使用了OCR,則可以通過racgons指令進行配置,但必須以root使用者來執行,如果用oracle使用者來執行,不會提示任何錯誤,但也不會更改任何配置。 

若要添加配置,可以使用下面指令: 

Racgons add_config rac1:6200 rac2:6200 

若要删除配置,可以用下面指令: 

Racgons remove_config rac1:6200 rac2:6200

4.1.2.3 onsctl指令

使用onsctl指令可以啟動,停止,調試ONS,并重新載入配置檔案,其指令格式如下: 

[root@rac1 bin]#./onsctl 

ONS程序運作,并不一定代表ONS正常工作,需要使用ping指令來确認。 

1) 在OS級别檢視程序狀态。 

[root@rac1 bin]#ps -aef|grep ons 

2) 确認ONS服務的狀态 

[root@rac1 bin]#./onsctl ping 

3) 啟動ONS服務 

[root@rac1 bin]#./onsctl start

4)使用debug選項,可以檢視詳細資訊,其中最有意義的就是能顯示所有連接配接。 

[root@rac1 bin]#./onsctl debug 

[root@rac1 bin]#

該指令是RAC維護中最常用的指令,也是最複雜的指令。 這個工具可以操作下面的幾種資源:Database,Instance,ASM,Service,Listener和Node Application,其中Node application又包括GSD,ONS,VIP。 這些資源除了使用srvctl工具統一管理外,某些資源還有自己獨立的管理工具,比如ONS可以使用onsctl指令進行管理;Listener可以通過lsnrctl管理。 

[root@rac1 bin]#./srvctl –help

4.1.3.1 使用config檢視配置

1)檢視資料庫配置 

–不帶任何參數時,顯示OCR中注冊的所有資料庫 

[root@rac1 bin]#./srvctl config database 

–使用-d選項,檢視某個資料庫配置 

[root@rac1 bin]#./srvctl config database -d raw 

注: 該輸出結果顯示資料庫raw由2個節點組成,各自執行個體名交rac1和rac2.兩個執行個體的$ORACLE_HOME是/u01/app/oracle/product/10.2.0/db_1 

–使用-a選項檢視配置的詳細資訊 

[root@rac1 bin]#./srvctl config database -d raw -a 

2)檢視Node Application的配置 

–不帶任何參數,傳回節點名,執行個體名和$ORACLE_HOME 

[root@rac1 bin]#./srvctl config nodeapps -n rac1

–使用-a選項,檢視VIP配置 

[root@rac1 bin]#./srvctl config nodeapps -n rac1 -a

–使用-g選項, 檢視GSD: 

[root@rac1 bin]#./srvctl config nodeapps -n rac1 -g 

–使用-s選項,檢視ONS: 

[root@rac1 bin]#./srvctl config nodeapps -n rac1 -s 

–使用-l選項,檢視Listener: 

[root@rac1 bin]# ./srvctl config nodeapps -n rac1 -l 

Listener exists. 

3)檢視Listener. 

[root@rac1 bin]#./srvctl config listener -n rac1 

[root@rac1 bin]#./srvctl config listener -n rac2 

4)檢視ASM 

[root@rac1 bin]#./srvctl config asm -n rac1 

[root@rac1 bin]#./srvctl config asm -n rac2 

5) 檢視Service 

–檢視資料庫所有service配置 

[root@rac1 bin]#./srvctl config service -d raw -a 

–檢視某個Service配置 

[root@rac1 bin]#./srvctl config service -d raw -s dmm 

–使用-a選項,檢視TAF政策 

[root@rac1 bin]#./srvctl config service -d raw -s dmm -a

4.1.3.2 使用add添加對象

一般情況下,應用層資源都是在圖形界面的幫助下注冊到OCR中的,比如VIP,ONS實在安裝最後階段建立的,而資料庫,ASM是執行DBCA的過程中自動注冊到OCR中的,Listener是通過netca工具。 但是有些時候需要手工把資源注冊到OCR中。 這時候就需要add指令了。 

1) 添加資料庫 

[root@rac1 bin]#./srvctl add database -d dmm -o $ORACLE_HOME 

2) 添加執行個體 

[root@rac1 bin]#./srvctl add instance -d dmm -n rac1 -i dmm1 

[root@rac1 bin]#./srvctl add instance -d dmm -n rac2 -i dmm2 

3)添加服務,需要使用4個參數 

-s :服務名 

-r:首選執行個體名 

-a:備選執行個體名 

-P:TAF政策,可選值為None(預設值),Basic,preconnect。 

[root@rac1 bin]# ./srvctl add service -d dmm -s dmmservice -r rac1 -a rac2 -P BASIC 

[root@rac1 bin]# ./srvctl config service -d dmm -s dmmservice -a

4.1.3.3 使用enable/disable啟動,禁用對象

預設情況下資料庫,執行個體,服務,ASM都是随着CRS的啟動而自啟動的,有時候由于維護的需要,可以先關閉這個特性。 

1)配置資料庫随CRS的啟動而自動啟動 

–啟用資料庫的自啟動: 

[root@rac1 bin]#./srvctl enable database -d raw 

–檢視配置 

[root@rac1 bin]# ./srvctl config database -d raw -a 

–禁止資料庫在CRS啟動後自啟動,這時需要手動啟動 

[root@rac1 bin]# ./srvctl disable database -d raw 

2) 關閉某個執行個體的自動啟動 

[root@rac1 bin]# ./srvctl disable instance -d raw -i rac1 

[root@rac1 bin]# ./srvctl enable instance -d raw -i rac1 

–檢視資訊 

3)禁止某個服務在執行個體上運作 

[root@rac1 bin]# ./srvctl enable service -d raw -s rawservice -i rac1 

[root@rac1 bin]# ./srvctl disable service -d raw -s rawservice -i rac1 

–檢視 

[root@rac1 bin]# ./srvctl config service -d raw -a 

dmm PREF: rac2 AVAIL: rac1 TAF: basic

4.1.3.4 使用remove删除對象

使用remove指令删除的是對象在OCR中的定義資訊,對象本省比如資料庫的資料檔案等不會被删除,以後随時可以使用add指令重新添加到OCR中。 

1)删除Service,在删除之前,指令會給出确定提示 

[root@rac1 bin]# ./srvctl remove service -d raw -s rawservice 

2)删除執行個體,删除之前同樣會給出提示 

[root@rac1 bin]# ./srvctl remove instance -d raw -i rac1 

3)删除資料庫 

[root@rac1 bin]# ./srvctl remove database -d raw

4.1.3.5 啟動,停止對象與檢視對象

在RAC環境下啟動,關閉資料庫雖然仍然可以使用SQL/PLUS方法,但是更推薦使用srvctl指令來做這些工作,這可以保證即使更新CRS中運作資訊,可以使用start/stop指令啟動,停止對象,然後使用status指令檢視對象狀态。 

1) 啟動資料庫,預設啟動到open狀态 

[root@rac1 bin]# ./srvctl start database -d raw 

2) 指定啟動狀态 

[root@rac1 bin]# ./srvctl start database -d raw -i rac1 -o mount 

[root@rac1 bin]# ./srvctl start database -d raw -i rac1 -o nomount 

3) 關閉對象,并指定關閉方式 

[root@rac1 bin]# ./srvctl stop instance -d raw -i rac1 -o immediate 

[root@rac1 bin]# ./srvctl stop instance -d raw -i rac1 -o abort 

4) 在指定執行個體上啟動服務: 

[root@rac1 bin]# ./srvctl start service -d raw -s rawservice -i rac1 

–檢視服務狀态 

[root@rac1 bin]# ./srvctl status service -d raw -v 

5) 關閉指定執行個體上的服務 

[root@rac1 bin]# ./srvctl stop service -d raw -s rawservice -i rac1 

[root@rac1 bin]# ./srvctl status service -d raw -v

4.1.3.6 跟蹤srcctl

在Oracle 10g中要跟蹤srvctl非常簡單,隻要設定srvm_trace=true這個OS環境變量即可,這個指令的所有函數調用都會輸出到螢幕上,可以幫助使用者進行診斷。 

[root@rac1 bin]# export SRVM_TRACE=TRUE 

[root@rac1 bin]# ./srvctl config database -d raw

設OCR磁盤和Votedisk磁盤全部破壞,并且都沒有備份,該如何恢複,這時最簡單的方法就是重新初始話OCR和Votedisk, 具體操作如下:

1) 停止所有節點的Clusterware Stack

Crsctl stop crs;

2) 分别在每個節點用root使用者執行$CRS_HOME\install\rootdelete.sh腳本

3) 在任意一個節點上用root使用者執行$CRS_HOME\install\rootinstall.sh腳本

4) 在和上一步同一個節點上用root執行$CRS_HOME\root.sh腳本

5) 在其他節點用root執行行$CRS_HOME\root.sh腳本

6) 用netca指令重新配置監聽,确認注冊到Clusterware中

#crs_stat -t -v 

到目前為止,隻有Listener,ONS,GSD,VIP注冊到OCR中,還需要把ASM, 資料庫都注冊到OCR中。

l 向OCR中添加ASM

#srvctl add asm -n rac1 -i +ASM1 -o /u01/app/product/database 

#srvctl add asm -n rac2 -i +ASM2 -o /u01/app/product/database

l 啟動ASM

#srvctl start asm -n rac1 

#srvctl start asm -n rac2 

若在啟動時報ORA-27550錯誤。是因為RAC無法确定使用哪個網卡作為Private Interconnect,解決方法:在兩個ASM的pfile檔案裡添加如下參數: 

+ASM1.cluster_interconnects=’10.85.10.119′ 

+ASM2.cluster_interconnects=’10.85.10.121′

l 手工向OCR中添加Database對象

#srvctl add database -d raw -o /u01/app/product/database

l 添加2個執行個體對象

#srvctl add instance -d raw -i rac1 -n rac1 

#srvctl add instance -d raw -i rac2 -n rac2

l 修改執行個體和ASM執行個體的依賴關系

#srvctl modify instance -d raw -i rac1 -s +ASM1 

#srvctl modify instance -d raw -i rac2 -s +ASM2

l 啟動資料庫

#srvctl start database-d raw 

若也出現ORA-27550錯誤。也是因為RAC無法确定使用哪個網卡作為Private Interconnect,修改pfile參數在重新開機動即可解決。 

SQL>alter system set cluster_interconnects=’10.85.10.119′ scope=spfile sid=’rac1′; 

SQL>alter system set cluster_interconnects=’10.85.10.121′ scope=spfile sid=’rac2′;

使用秘訣:

srvctl +<command:status,start,stop,config,modify,relocate>+<object:database,service,instance,nodeapps> + <option: -i ,-d,-s,-n>

srvctl -h

srvctl stop instance -h

srvctl relocate service -h 

eg:

AEG2_DB2:/oracle/product/10.2.0/crs>srvctl relocate service -h

Usage: srvctl relocate service -d <name> -s <service_name> -i <old_inst_name> -t <new_inst_name> [-f]

    -d <name>           Unique name for the database

    -s <service>        Service name

    -i <old_inst>       Old instance name

    -t <new_inst>       New instance name

    -f                  Disconnect all sessions during stop or relocate service operations

    -h                  Print usage

根據你寫出的長度不同的指令,會具體給出這個指令對應的作用的使用方法,非常好用。

---------------------Start/Stop Instance--------------------

$ srvctl status database -d racdb

$ srvctl stop instance -d racdb -i racdb1 -o abort

$ srvctl start instance –d db –i db02

-------------------Start/Stop CRS--------------------------

$ crsctl check crs

$ crsctl stop crs

$ /etc/init.crs stop

$ crs_stop –all

$ crsctl start crs

$ /etc/init.crs start

$ /etc/init.crs disable

$ /etc/init.crs enable

-----------------CRS Resource-----------------------------

$ crs_stat

$ crs_stat -t

$ crsctl check boot

# /etc/init.crs disable

# /etc/init.crs stop

# su – oracle

$ cd $ORA_CRS_HOME/bin

$./ocrconfig -restore /opt/app/oracle/crs/cdata/crs/week.ocr

# /etc/init.crs enable

$ crsctl

Usage: crsctl check crs          - checks the viability of the CRS stack

       crsctl check cssd         - checks the viability of CSS

       crsctl check crsd         - checks the viability of CRS

       crsctl check evmd         - checks the viability of EVM

       crsctl set    css <parameter> <value> - sets a parameter override

       crsctl get    css <parameter> - gets the value of a CSS parameter

       crsctl unset css <parameter> - sets CSS parameter to its default

       crsctl query css votedisk    - lists the voting disks used by CSS

       crsctl add    css votedisk <path> - adds a new voting disk

       crsctl delete css votedisk <path> - removes a voting disk

       crsctl enable crs    - enables startup for all CRS daemons

       crsctl disable crs    - disables startup for all CRS daemons

       crsctl start crs - starts all CRS daemons.

       crsctl stop crs - stops all CRS daemons. Stops CRS resources in case of cluster.

       crsctl start resources - starts CRS resources.

       crsctl stop resources - stops CRS resources.

       crsctl debug statedump evm - dumps state info for evm objects

       crsctl debug statedump crs - dumps state info for crs objects

       crsctl debug statedump css - dumps state info for css objects

       crsctl debug log css [module:level]{,module:level} ...

                             - Turns on debugging for CSS

       crsctl debug trace css - dumps CSS in-memory tracing cache

       crsctl debug log crs [module:level]{,module:level} ...

                             - Turns on debugging for CRS

       crsctl debug trace crs - dumps CRS in-memory tracing cache

       crsctl debug log evm [module:level]{,module:level} ...

                             - Turns on debugging for EVM

       crsctl debug trace evm - dumps EVM in-memory tracing cache

       crsctl debug log res <resname:level> turns on debugging for resources

       crsctl query crs softwareversion [<nodename>] - lists the version of CRS software installed

       crsctl query crs activeversion - lists the CRS software operating version

       crsctl lsmodules css - lists the CSS modules that can be used for debugging

       crsctl lsmodules crs - lists the CRS modules that can be used for debugging

       crsctl lsmodules evm - lists the EVM modules that can be used for debugging

SRVCTL指令介紹

SRVCTL指令可以控制RAC資料庫中的instance,listener以及services。

通常SRVCTL在ORACLE使用者下執行。下面我們來介紹srvctl指令。

1、通過SRVCTL指令來start/stop/check所有的執行個體:

$ srvctl start|stop|status database -d <db_name>

2、start/stop指定的執行個體:

$ srvctl start|stop|status instance -d <db_name> -i <instance_name>

3、列出目前RAC下所有的

$ srvctl config database -d <db_name>

4、start/stop/check 所有的nodeapps,比如:VIP, GSD, listener, ONS:

$ srvctl start|stop|status nodeapps -n <node_name>

5、如果你使用ASM,srvctl也可以start/stop ASM執行個體:

$ srvctl start|stop asm -n <node_name> [-i <asm_inst_name>] [-o<oracle_home>]

6、可以擷取所有的環境資訊:

$ srvctl getenv database -d <db_name> [-i <instance_name>]

7、設定全局環境和變量:

$ srvctl setenv database -d <db_name> -t LANG=en

8、從OCR中删除已有的資料庫:

$ srvctl remove database -d <db_name>

9、向OCR中添加一個資料庫:

$ srvctl add database -d <db_name> -o <oracle_home>

[-m <domain_name>] [-p<spfile>] [-A <name|ip>/netmask] [-r {PRIMARY | PHYSICAL_STANDBY |LOGICAL_STANDBY}] [-s <start_options>]

10、向OCR中添加一個資料庫的執行個體:

$ srvctl add instance -d <db_name> -i <instance_name> -n <node1>

$ srvctl add instance -d <db_name> -i <instance_name> -n <node2>

11、向OCR中添加一個ASM執行個體:

$ srvctl add asm -n <node_name> -i <asm_inst_name> -o <oracle_home>

12、添加一個service

$ srvctl add service -d <db_name> -s <service_name> -r <preferred_list>

[-a <available_list>] [-P <TAF_policy>] [-u]

13、修改在其他節點上的service(修改的是配置,此時使用的執行個體不變)

$ srvctl modify service -d <db_name> -s <service_name> -I <orig_instance_name> -t <target_instance_name>

14、relocate 某個節點的service到其他節點(當taf轉到avail執行個體上後,又想轉到pre的執行個體上,用relocate)

srvctl relocate service -d <db_name> -s <service_name> -I

<orig_instance_name> -t <target_instance_name>

SRVCTL相關的選項

SRVCTL START/STOP/STATUS options:

-d database name

-i instance name

-n node name (for nodeapps)

SRVCTL ADD options:

-A vip range, node, and database, address specification. The format of address string is:

[<logical host name>]/<VIP address>/<net mask> [/<host interface1 [ | host interface2 |..]>] [,]

[<logical host name>]/<VIP address>/<net mask> [/<host interface1[ | host interface2 |..]>]

-a for services, list of available instances, this list cannot include preferred instances

-m domain name with the format “us.domain.com”

-n node name that will support one or more instances

-o $ORACLE_HOME to locate Oracle binaries

-P for services, TAF preconnect policy - NONE, PRECONNECT

-r for services, list of preferred instances, this list cannot include available instances.

-s spfile name

-u updates the preferred or available list for the service to support the specified

instance. Only one instance may be specified with the -u switch. Instances that already

support the service should not be included.

SRVCTL MODIFY options:

-i <instance-name> -t <instance-name> : the instance name (-i) is replaced by the

instance name (-t) -i <instance-name>

-r : the named instance is modified to be a preferred instance -A address-list for VIP application,

at node level -s <asm_inst_name> : add or remove ASM dependency

SRVCTL RELOCATE options:

-i <instance-name> -t <instance-name> : the instance name (-i) is replaced by the instance name (-t)

CRS及相關服務的常用指令

1、檢視狀态的指令

# su – oracle -- 先切換到oracle使用者

$ crs_stat -t -- 檢視crs及所有的service的狀态

Name Type Target State Host

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

ora.oradb.db application ONLINE ONLINE db01

ora....radb.cs application ONLINE ONLINE db01

ora....db1.srv application ONLINE ONLINE db01

ora....db2.srv application ONLINE ONLINE db02

ora....b1.inst application ONLINE ONLINE db01

ora....b2.inst application ONLINE ONLINE db02

ora....C1.lsnr application ONLINE ONLINE db01

ora.db01.gsd application ONLINE ONLINE db01

ora.db01.ons application ONLINE ONLINE db01

ora.db01.vip application ONLINE ONLINE db01

ora....C2.lsnr application ONLINE ONLINE db02

ora.db02.gsd application ONLINE ONLINE db02

ora.db02.ons application ONLINE ONLINE db02

ora.db02.vip application ONLINE ONLINE db02

$ crsctl check crs -- 用crsctl指令,檢查crs相關服務的狀态

CSS appears healthy

CRS appears healthy

$ srvctl status nodeapps -n db01 (db02) -- 使用srvctl檢視所有節點上的服務是否正常

VIP is running on node:db01

GSD is running on node:db01

Listener is running on node:db01

ONS daemon is running on node:db01

$ srvctl status database -d db -- 使用srvctl檢視資料庫狀态

Instance db01 is running on node db01

Instance db02 is running on node db02

2、啟動和關閉相關服務的指令

$ crs_start –all --啟動所有的crs服務

$ crs_stop –all --停止所有的crs服務

$ crsctl start crs --啟動crs服務

$ crsctl stop crs --停止crs服務

$ srvctl start nodeapps -n db01(db02) --啟動某節點上所有的應用

$ srvctl stop nodeapps -n db01(db02) --停止某節點上所有的應用

$ srvctl start listener -n db01(db02) --啟動某個節點的listener

$ srvctl stop listener -n db01(db02) --停止某個節點的listener

$ srvctl start instance –d db –i db01(db02) --啟動某個instance

$ srvctl stop instance –d db –i db01(db02) --停止某個instance

$ srvctl start database –d db --啟動資料庫

$ srvctl stop database –d db --停止資料庫

本文轉自xiaocao1314051CTO部落格,原文連結:http://blog.51cto.com/xiaocao13140/1930501 ,如需轉載請自行聯系原作者