Oracle10g下手工重建CRS和RAC資料庫

xingfei80發表於2010-07-16

Oracle10g下手工重建CRS和RAC資料庫

轉自:

  某個剛安裝好的RAC庫,由於需要更換儲存,所以需要重建。由於主機系統並沒有重新安裝,因此只需要重建CRS和庫就行了。

環境:AIX 5306+HACMP 5.2+ORACLE 10.2.0.1+祼裝置,文中對節點名、網路配置等資訊處了更改處理。

[@more@]

以下是詳細操作步驟:

1、在兩個節點上修改主機配置:由於網路變更的原因,需要更換VIP,因此修改/etc/hosts檔案,將VIP地址對應的地址更改為新的IP地址

2、在兩個節點上修改/etc/oracle/ocr.loc檔案,將檔案中的ocrconfig_loc=後的地址改為新的儲存ocr的祼裝置名(如果用的是叢集檔案系統,則為檔名)

3、在兩個節點上刪除檔案/etc/oracle/scls_scr//oracle/cssfatal

4、在兩個節點上,進入$ORA_CRS_HOME/install目錄,修改paramfile.crs檔案,修改變動的配置資料。這裡主要包括CRS_OCR_LOCATIONS、CRS_VOTING_DISKS、CRS_NODEVIPS

5、對儲存OCR CONFIG的祼裝置,用dd命令進行清除。(如果是叢集檔案系統,只需要刪除OCR CONFIG的檔案即可)。這裡祼裝置名為rocr,dd if=/dev/zero f=/dev/rocr bs=4096 count=10000 (如果是OCR本來是存在,只是需要重建,則必須要執行這一步。就算是完全新建在祼裝置上,在後面的步驟中有時也會遇到莫名其妙的問題,則也需要對祼裝置用dd進行清除,dd清除的大小不能過小,bs=4096的情況下,count為10之類的數值就顯得過小,後面也會出現問題)

6、在兩個節點上修改檔案$ORA_CRS_HOME/install/rootconfig,修改在檔案前面的變數。這裡也主要是CRS_OCR_LOCATIONS、CRS_VOTING_DISKS、CRS_NODEVIPS

7、如果是透過遠端telnet、ssh在主機上操作,則要設定DISPLAY變數。export DISPLAY=x.x.x.x:0.0。這裡x.x.x.x為操作的終端的IP地址。在操作終端上執行如xmanager這樣的軟體。

7、在節點一上以root使用者執行$ORA_CRS_HOME/install/rootconfig,注意不要執行rootinstall

8、待節點一完全執行完後,在節點二上執行$ORA_CRS_HOME/install/rootconfig。正常情況下會彈出vip設定視窗。如果VIP設定視窗沒有彈出來,則看一下是否只是vipca啟動出現問題。

9、在兩個節點上執行crs_stat -t,如果出現CRS沒有資源或有VIP相關的資源啟動(在VIP已經設定的情況下),說明CRS已經建立成功。

10、如果前面沒有配置VIP,則以root使用者執行vipca,配置VIP。注意在彈出的視窗中,提示選擇網路介面時,選擇public介面。(如果顯示介面異常,在shell用oifcfg命令檢查一下網路介面,如有必要,用該命令對網路介面進行重新配置)

11、至此crs已經配置完畢,用crs_stat檢查crs是否正常執行。如果沒有正常執行,檢查crs日誌。此時應該有VIP、ONS、GSD等資源執行。在兩個節點上執行ifconfig -a檢查VIP是否已經繫結到PUBLIC網路卡上(注意要確保是在PUBLIC網路卡上,有的時候粗略一下VIP已經起了,但實際上綁在了PRIVATE網路卡上)

12、清除原來的監聽設定,確認監聽是處於關閉狀態,執行netca,配置監聽,配置完成後將會自動把監聽加入到crs中。

12、由於存在原來的建庫指令碼,開啟原來的指令碼,修改對應的資料檔名為新的檔名(祼裝置名)

13、在節點一上執行建庫指令碼(shell指令碼)

14、一番耐心等候之後,在節點一上的資料庫建立完成

15、在節點二上執行建庫指令碼(shell指令碼),這個過程很快

16、在兩個節點上修改tnsnames.ora,內容如下(根據實際情況進行修改):

LISTENERS_DMDB =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = dm1-vip)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = dm2-vip)(PORT = 1521))
)

DMDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dm1-vip)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = dm2-vip)(PORT = 1521))
(LOAD_BALANCE = yes)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = dmdb)
)
)

RAC2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dm2-vip)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = dmdb)
(INSTANCE_NAME = rac2)
)
)

RAC1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dm1-vip)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = dmdb)
(INSTANCE_NAME = rac1)
)
)

EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)

17、修改兩個節點的初始化引數REMOTE_LISTENERS為 ‘LISTENERS_DMDB’,節點一的LOCAL_LISTENER=’(ADDRESS = (PROTOCOL = TCP)(HOST = IP1 )(PORT = 1521))’,節點二的
LOCAL_LISTENER=’(ADDRESS = (PROTOCOL = TCP)(HOST = IP2)(PORT = 1521))’,注意這裡的IP1和IP2分別是節點一和節點二的VIP地址(注意一定是IP地址,而不能是主機名)。設定LOCAL_LISTENER的目的是避免在使用負載均衡時出現ORA-12545錯誤。

18、在其中一個結點上建立spfile,這裡spfile為祼設務rspfile:create spfile=’/dev/rspfile’ from pfile=’xxxx’

19、關閉兩個節點的例項。將資料庫和例項增加到crs中,以便能夠能用crs命令進行監控和用srvctl命令啟停資料庫例項:

srvctl add database -d dbname -o $ORACLE_HOME -y manual
srvctl add instance -d dbname -n 節點名1 -i 例項名1
srvctl add instance -d dbname -n 節點名2 -i 例項名2

這裡例項名1和例項名2應分別與兩個節點的ORACLE_SID一致

注意:10.2.0.1版本,例項依賴於VIP,因此如果某結點如網路卡DOWN掉、VIP BUG等,將導致例項也DOWN掉。為避免出現這樣的情況,可省略此步驟,不要將例項加入到CRS資源中。

至此所有工作已經全部完成。

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

相關文章