安裝rac資料庫時例項的編號由誰指定

crystal_ocean發表於2014-03-19
今天重新安裝了一套oracle rac,有了一個新發現,就是兩個例項的編號到底由誰指定。
我的rac環境是兩個節點分別命名為node1、node2,環境變數設定如下:

node1:
export ORACLE_BASE=/u01/app
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORA_CRS_HOME=$ORACLE_BASE/crs_1
export ORACLE_SID=racdb1
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:$ORA_CRS_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib

node2:
export ORACLE_BASE=/u01/app
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORA_CRS_HOME=$ORACLE_BASE/crs_1
export ORACLE_SID=racdb2
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:$ORA_CRS_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib

在node2上安裝完cluster和database軟體後,檢視crs狀態如下:
[oracle@node1 ~]$ crs_stat -t
Name           Type           Target    State     Host        
------------------------------------------------------------
ora....E1.lsnr application    ONLINE    ONLINE    node1       
ora.node1.gsd  application    ONLINE    ONLINE    node1       
ora.node1.ons  application    ONLINE    ONLINE    node1       
ora.node1.vip  application    ONLINE    ONLINE    node1       
ora....E2.lsnr application    ONLINE    ONLINE    node2       
ora.node2.gsd  application    ONLINE    ONLINE    node2       
ora.node2.ons  application    ONLINE    ONLINE    node2       
ora.node2.vip  application    ONLINE    ONLINE    node2   

 這個時候一切看起來是那麼正常。


接下來在node2使用dbca配置asm例項、建立資料庫racdb後,檢視crs狀態如下:
[oracle@node1 ~]$ crs_stat -t
Name           Type           Target    State     Host        
------------------------------------------------------------
ora....SM2.asm application    ONLINE    ONLINE    node1       
ora....E1.lsnr application    ONLINE    ONLINE    node1       
ora.node1.gsd  application    ONLINE    ONLINE    node1       
ora.node1.ons  application    ONLINE    ONLINE    node1       
ora.node1.vip  application    ONLINE    ONLINE    node1       
ora....SM1.asm application    ONLINE    ONLINE    node2       
ora....E2.lsnr application    ONLINE    ONLINE    node2       
ora.node2.gsd  application    ONLINE    ONLINE    node2       
ora.node2.ons  application    ONLINE    ONLINE    node2       
ora.node2.vip  application    ONLINE    ONLINE    node2       
ora.racdb.db   application    ONLINE    ONLINE    node1       
ora....b1.inst application    ONLINE    ONLINE    node2       
ora....b2.inst application    ONLINE    ONLINE    node1 

這個時候我們看到資料庫例項1和asm例項1都安裝在node2上了,而例項2卻安裝在node1上了,為了進一步確認我登入到資料庫racdb進行查詢,結果如下:

SQL> select INST_ID,INSTANCE_NAME,HOST_NAME from gv$instance;

   INST_ID INSTANCE_NAME    HOST_NAME
---------- ---------------- ----------------------------------------------------------------
         1 racdb1           node2.ocean.com
         2 racdb2           node1.ocean.com

為什麼會出現這種情況呢?在安裝之前兩個節點已經分別在環境變數中設定好例項名,為什麼oracle沒有按照環境變數中設定的進行分配?
經過多方查詢得知,原因是在安裝rac資料庫時節點例項和ASM例項的編號是由oracle自動進行分配的,當我們在第一個節點即node1上進行安裝時,例項的編號和節點的編號是對應的,當我們在第二個節點上安裝時,例項的編號和節點的編號是相反的,也就是說例項1會安裝在node2上,例項2會安裝在node1上。

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

相關文章