RAC詳細命令(轉)

wdnmg發表於2012-09-22

Oracle Clusterware的命令集可以分為以下4種:
節點層:osnodes
網路層:oifcfg
叢集層:crsctl, ocrcheck,ocrdump,ocrconfig
應用層:srvctl,onsctl,crs_stat
下面分別來介紹這些命令。

1、節點層

olsnodes這個命令用來顯示叢集點列表,可用的引數如下:

$olsnodes -h

用法: olsnodes [-n] [-p][-i] [ | -l] [-g] [-v]
-n列印節點編號和節點名
-p列印專用互聯名和節點名
-i列印虛擬IP名和節點名
列印指定節點的資訊
-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、網路層

網路層由各個節點的網路元件組成,包括2個物理網路卡和3個IP地址。也只有一個命令:oifcfg

Oifcfg命令的格式如下:

用法: oifcfg iflist [-p [-n]]
oifcfg setif {-node | -global} {/:}…
oifcfg getif [-node | -global] [ -if [/] [-type ] ]
oifcfg delif [-node | -global] [[/]]
oifcfg [-help]

-為通訊網路所知的主機名
-系統中配置的介面的名稱
-介面的子網地址
-介面型別{ 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

3、叢集層

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

3.1 Crsctl

Crsctl命令可以用來檢查CRS程式棧,每個crs程式狀態,管理Votedisk,跟蹤CRS程式功能。
[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棧是否自啟動

CRS程式棧預設隨著作業系統的啟動而自啟動,有時出於維護目的需要關閉這個特性,可以用root使用者執行下面命令。
[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

以圖形方式安裝Clusterware的過程中,在配置Votedisk時,如果選擇External Redundancy策略,則只能填寫一個Votedisk。但是即使使用External Redundancy作為冗餘策略,也可以新增多個Vodedisk,只是必須通過crsctl命令來新增,新增多個Votedisk後,這些Votedisk互為映象,可以防止Votedisk的單點故障。
需要注意的是,Votedisk使用的是一種“多數可用演算法”,如果有多個Votedisk,,則必須一半以上的Votedisk同時使用,Clusterware才能正常使用。 比如配置了4個Votedisk,壞一個Votedisk,叢集可以正常工作,如果壞了2個,則不能滿足半數以上,叢集會立即宕掉,所有節點立即重啟,所以如果新增Votedisk,儘量不要只新增一個,而應該新增2個。這點和OCR不一樣。OCR只需配置一個。
新增和刪除Votedisk的操作比較危險,必須停止資料庫,停止ASM,停止CRS Stack後操作,並且操作時必須使用-force引數。
1) 檢視當前配置
[root@rac1 bin]# ./crsctl query css votedisk
2) 停止所有節點的CRS:
[root@rac1 bin]# ./crsctl stop 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) 確認新增後的情況:
[root@rac1 bin]# ./crsctl query css votedisk
5) 啟動CRS
[root@rac1 bin]# ./crsctl start crs

3.2 ocr命令系列

Oracle Clusterware把整個叢集的配置資訊放在共享儲存上,這個儲存就是OCR Disk.在整個叢集中,只有一個節點能對OCR Disk進行讀寫操作,這個節點叫作Master Node,所有節點都會在記憶體中保留一份OCR的拷貝,同時喲一個OCR Process從這個記憶體中讀取內容。OCR內容發生改變時,由Master Node的OCR Process負責同步到其他節點的OCR Process。
因為OCR的內容如此重要,Oracle每4個小時對其做一次備份,並且保留最後的3個備份,以及前一天,前一週的最後一個備份。這個備份由Master Node CRSD程式完成,備份的預設位置是$CRS_HOME\crs\cdata\目錄下。每次備份後,備份檔名自動更改,以反應備份時間順序,最近一次的備份叫作backup00.ocr。這些備份檔案除了儲存在本地,DBA還應該在其他儲存裝置上保留一份,以防止意外的儲存故障。

3.2.1 ocrdump

該命令能以ASCII的方式列印出OCR的內容,但是這個命令不能用作OCR的備份恢復,也就是說產生的檔案只能用作閱讀,而不能用於恢復。
命令格式:ocrdump [-stdout] [filename] [-keyname name] [-xml]
引數說明:
-stdout:把內容列印輸出到螢幕上
Filename:內容輸出到檔案中
-keyname:只列印某個鍵及其子健內容
-xml:以xml格式列印輸出

示例:把system.css鍵的內容以.xml格式列印輸出到螢幕
[root@rac1 bin]#./ocrdump -stdout -keyname system.css -xml|more
……
這個命令在執行過程中,會在$CRS_HOME\log\\client目錄下產生日誌檔案,檔名ocrdump_.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 命令修改到新的目錄

3.2.4 使用匯出,匯入進行備份和恢復

Oracle推薦在對叢集做調整時,比如增加,刪除節點之前,應該對OCR做一個備份,可以使用export備份到指定檔案,如果做了replace或者restore等操作,Oracle建議使用cluvfy comp ocr -n all命令來做一次全面的檢查。該命令在clusterware的安裝軟體裡。
1) 首先關閉所有節點的CRS
[root@rac1 bin]#./crsctl stop crs
2) 用root使用者匯出OCR內容

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

3) 重啟CRS
[root@rac1 bin]# ./crsctl start crs

4) 檢查CRS狀態
[root@rac1 bin]# ./crsctl check crs
CSS appears healthy
CRS appears healthy
EVM appears healthy

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
[root@rac1 bin]# ./ocrcheck
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 -showbackup
如果沒有備份,可以立即執行一次匯出作為備份:
[root@rac1 bin]#./ocrconfig -export /u01/ocrbackup -s online
2) 檢視當前OCR配置
[root@rac1 bin]# ./ocrcheck
3)新增一個Mirror OCR
[root@rac1 bin]#./ocrconfig -replace ocrmirror /dev/raw/raw4
4)確認新增成功
[root@rac1 bin]#./ocrcheck

5)改變primary OCR位置
[root@rac1 bin]#./ocrconfig -replace ocr /dev/raw/raw3
確認修改成功:
[root@rac1 bin]#./ocrcheck

6)使用ocrconfig命令修改後,所有RAC節點上的/etc/oracle/ocr.loc檔案內容也會自動同步了,如果沒有自動同步,可以手工的改成以下內容。
[root@rac1 bin]#more /etc/oracle/ocr.loc
ocrconfig_loc=/dev/raw/rac1
Ocrmirrorconfig_loc=/dev/raw/raw3
local_only=FALSE

4、應用層

應用層就是指RAC資料庫了,這一層有若干資源組成,每個資源都是一個程式或者一組程式組成的完整服務,這一層的管理和維護都是圍繞這些資源進行的。有如下命令:srvctl, onsctl, crs_stat三個命令。

4.1.1 crs_stat

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

這些欄位是所有資源共有的,但是根據資源型別不同,某些欄位可以空值。
4) 使用-ls選項,可以檢視每個資源的許可權定義,許可權定義格式和Linux一樣。
[root@rac1 bin]#./crs_stat -ls

4.1.2 onsctl

這個命令用於管理配置ONS(Oracle Notification Service). ONS是Oracle Clusterware實現FAN Event Push模型的基礎。在傳統模型中,客戶端需要定期檢查伺服器來判斷服務端狀態,本質上是一個pull模型,Oracle 10g引入了一個全新的PUSH機制–FAN(Fast Application Notification),當服務端發生某些事件時,伺服器會主動的通知客戶端這種變化,這樣客戶端就能儘早得知服務端的變化。而引入這種機制就是依賴ONS實現, 在使用onsctl命令之前,需要先配置ONS服務。

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]#

4.1.3 srvctl

該命令是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
4)確認新增成功
[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
檢視資訊
[root@rac1 bin]# ./srvctl config database -d raw -a
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

4.1.4 恢復

設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′;

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

相關文章