11G R2 RAC新增刪除節點

tonyzhou_cn發表於2012-12-26
11G R2 RAC新增刪除節點
參考連結:
一、刪除節點
 環境介紹:
HPUX11.31,資料庫:11.2.0.3 兩節點RAC
 說明:在刪節點的時候,未停庫,將刪除節點的庫也未刪除。
另外還有一套虛擬機器上實施的,
OS:RHEL 5.1
DB:11.2.01
所以有些錯誤只有虛擬機器上才有的。
節點2操作:(將要刪除的節點bydb2)
1、 disable listener -n bydb2      -----禁止監聽
2、
stop listener -n bydb2  -----停止監聽
3、
status res -t    ----檢視是否成功
ora.LISTENER.lsnr
               ONLINE  ONLINE       bydb1                                       
               OFFLINE OFFLINE      bydb2
 ...................
4、 $ORACLE_HOME/oui/bin
5、
  -updateNodeList -noClusterEnabled -local ORACLE_HOME=/oracle/app/crs_home "CLUSTER_NODE=bydb1"    -----測試透過
第二種方法:./runInstaller -updateNodelist ORACLE_HOME=$ORACLE_HOME "CLUSTER_NODES={bydb1}" CRS=TRUE
第三種辦法:$ORA_CRS_HOME/oui/bin/runInstaller -updateNodeList ORACLE_HOME=/crs/app/oracle/product/crs_1  "CLUSTER_NODES=bydb1" "INVENTORY_LOCATION=/oracle/app/oracle/oraInventory" LOCAL_NODE=bydb1 CRS=TRUE
 增加INVENTORY_LOCATION 和LOCAL_NODE選項
Starting Oracle Universal Installer...
Checking swap space: must be greater than 500 MB.   Actual 6647 MB    Passed
The inventory pointer is located at /var/opt/oracle/oraInst.loc
The inventory is located at /oracle/app/oraInventory
'UpdateNodeList' was successful.
 6、 -s -t
bydb1   Active  Unpinned
bydb2   Active  Unpinned
 停止並刪除VIP
 7、 -t
Name           Type           Target    State     Host       
------------------------------------------------------------
ora.ARCHIVE.dg ora....up.type ONLINE    ONLINE    bydb2      
ora.CRS.dg     ora....up.type ONLINE    ONLINE    bydb1      
ora.DATA01.dg  ora....up.type OFFLINE   OFFLINE              
ora.DATA02.dg  ora....up.type ONLINE    ONLINE    bydb2      
ora....ER.lsnr ora....er.type ONLINE    ONLINE    bydb1      
ora....N1.lsnr ora....er.type ONLINE    ONLINE    bydb1      
ora.QUORUM.dg  ora....up.type ONLINE    ONLINE    bydb2      
ora.asm        ora.asm.type   ONLINE    ONLINE    bydb1      
ora.bydb.db    ora....se.type ONLINE    ONLINE    bydb2      
ora....SM1.asm application    ONLINE    ONLINE    bydb1      
ora....B1.lsnr application    ONLINE    ONLINE    bydb1      
ora.bydb1.gsd  application    ONLINE    OFFLINE              
ora.bydb1.ons  application    ONLINE    ONLINE    bydb1      
ora.bydb1.vip  ora....t1.type ONLINE    ONLINE    bydb1      
ora....SM2.asm application    ONLINE    ONLINE    bydb2      
ora....B2.lsnr application    OFFLINE   OFFLINE              
ora.bydb2.gsd  application    ONLINE    OFFLINE              
ora.bydb2.ons  application    ONLINE    ONLINE    bydb2      
ora.bydb2.vip  ora....t1.type ONLINE    ONLINE    bydb2      
ora.cvu        ora.cvu.type   ONLINE    ONLINE    bydb1      
ora.gsd        ora.gsd.type   ONLINE    OFFLINE              
ora....network ora....rk.type ONLINE    ONLINE    bydb1      
ora.oc4j       ora.oc4j.type  OFFLINE   OFFLINE              
ora.ons        ora.ons.type   ONLINE    ONLINE    bydb1      
ora.scan1.vip  ora....ip.type ONLINE    ONLINE    bydb1
 8、 stop vip -i bydb2_vip   ----多餘的,需要在ROOT下執行
 9、/oracle/app/crs_home/bin# ./srvctl remove vip -i bydb2_vip -----root 使用者下
Please confirm that you intend to remove the VIPs bydb2_vip (y/[n]) y
# ./crsctl stop crs
CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'bydb2'
CRS-2673: Attempting to stop 'ora.crsd' on 'bydb2'
......
CRS-4133: Oracle High Availability Services has been stopped.
 10、刪除節點 ---這步好像不需要操作  --刪不掉。
首先停止CRS,不然會報如下錯誤:
[root@bydb2 bin]#./ crsctl delete node -n bydb2    --------、/oracle/app/crs_home/bin
CRS-4658: The clusterware stack on node racnode1 is not completely down.
CRS-4000: Command Delete failed, or completed with errors.
[root@bydb2 bin]# ./crsctl stop crs
 
 11、# cd /oracle/app/crs_home/crs/install
        # ./rootcrs.pl -deconfig -force
Using configuration parameter file: ./crsconfig_params
PRCR-1119 : Failed to look up CRS resources of ora.cluster_vip_net1.type type
PRCR-1068 : Failed to query resources
Cannot communicate with crsd
PRCR-1070 : Failed to check if resource ora.gsd is registered
Cannot communicate with crsd
PRCR-1070 : Failed to check if resource ora.ons is registered
Cannot communicate with crsd
CRS-4544: Unable to connect to OHAS
CRS-4000: Command Stop failed, or completed with errors.
Successfully deconfigured Oracle clusterware stack on this node
節點1操作:bydb1
 12、 -updateNodeList ORACLE_HOME=/oracle/app/crs_home CLUSTER_NODES={bydb1} CRS=TRUE
Starting Oracle Universal Installer...
Checking swap space: must be greater than 500 MB.   Actual 7016 MB    Passed
The inventory pointer is located at /var/opt/oracle/oraInst.loc
The inventory is located at /oracle/app/oraInventory
'UpdateNodeList' was successful.
13、crsctl status res -t
 檢視系統的狀態是否正常了
  14、最後在節點一,DBCA刪除資料庫。
 
 
 
二、新增節點:
首先在主節點執行檢查:(grid 安裝檔案目錄)
 ./runcluvfy.sh stage -pre crsinst -n bydb2 -verbose
 --11.2.0.2的安裝有BUG,共享磁碟檢測總是不成功,所以在確認只有磁碟檢測錯誤,並且在新節點上確定能夠訪問共磁碟的情況下忽略CHECKS
如果因為一些無關緊要的問題檢查不成功,那麼一定要加上這一句:(可以檢視一下addNode.sh,就明白了)
 export IGNORE_PREADDNODE_CHECKS=Y
1、 如果是完全空白的機器,執行以下命令會從別的節點複製全部的GI和DB的軟體,然後完成註冊OCR等操作。(  這個目錄)
 1)擴充套件Grid節點
 ./addNode.sh "CLUSTER_NEW_NODES={bydb2}" "CLUSTER_NEW_VIRTUAL_HOSTNAMES={bydb2_vip}"
 2)擴充套件Oracle資料庫軟體(ORACLE使用者,DB_HOME:oracle/app/oracle/product/11.2.0/db_1/oui/bin下執行下面的命令)
 addNode.sh -silent "CLUSTER_NEW_NODES={bydb01}" 
 建議用上面的方法.
 ./addNode.sh -silent "CLUSTER_NEW_NODES={bydb2} CLUSTER_NEW_PRIVATE_NODE_NAMES={bydb2-priv} CLUSTER_NEW_VIRTUAL_HOSTNAMES={bydb2-vip}"
問題(11.2.0.1liunx32位平臺存在這個問題,11.2.0.3HPUX平臺下沒有)
-silent "CLUSTER_NEW_NODES={bydb2}"
Starting Oracle Universal Installer...
Checking swap space: must be greater than 500 MB.   Actual 4790 MB    Passed
Oracle Universal Installer, Version 11.2.0.1.0 Production
Copyright (C) 1999, 2009, Oracle. All rights reserved.
SEVERE:Number of new nodes being added are not equal to number of new virtual nodes. Silent install cannot continue.
據稱這個是BUG 需要使用
 ./addNode.sh -silent "CLUSTER_NEW_NODES={bydb2}" "CLUSTER_NEW_VIRTUAL_HOSTNAMES={bydb2-vip}"
如果還是不行,那麼就需要修改
db_home下的lsnode命令有問題,如下處理
$ cd $DB_HOME/bin
$ mv lsnodes lsnodes.old
$ ln -s $GRID_HOME/bin/olsnodes $DB_HOME/bin/lsnodes
$ ln -s $GRID_HOME/bin/olsnodes.bin $DB_HOME/bin/lsnodes.bin
$ cd $DB_HOME/oui/bin
$ mv lsnodes lsnodes.old
$ ln -s $GRID_HOME/bin/olsnodes $DB_HOME/oui/bin/lsnodes
$ ln -s $GRID_HOME/bin/olsnodes.bin $DB_HOME/oui/bin/lsnodes.bin

2、 如果這個節點上已經有GI和DB的軟體,就不需要再copy一遍了,可以透過下面的命令直接新增節點,這樣是很快的,也就是更改一下OCR,同時啟動一下例項就OK了
 ./addNode.sh -noCopy "CLUSTER_NEW_NODES={bydb2} CLUSTER_NEW_VIRTUAL_HOSTNAMES={bydb2-vip}"
在需要新增的節點上執行root.sh指令碼,完成最後的新增
3、最後DBCA新增instance,NETCA建監聽。
 也可以靜默安裝
例子:Oracle_home/bin/dbca -silent -addInstance -nodeList bydb2 -gdbName rac -instanceName bydb2 -sysDBAUserName sys -sysDBAPassword oracle

1) cd /u01/app/11.2.0/grid/oui/bin
2) runInstaller -updateNodeList Oracle_HOME=/u01/app/11.2.0/grid CLUSTER_NODES={racnode1,racnode2} CRS=TRUE
3) [root@racnode1 grid]# cd /u01/app/11.2.0/grid/crs/install/
4) [root@racnode1 install]# ./rootcrs.pl -deconfig -force
5) Successfully deconfigured Oracle clusterware stack on this node
到此,刪除新增都完成了,步驟不多也比較簡單。
 
 
補充:
 如果使用DBCA工具進行資料庫的建立、叢集服務建立,或使用netca進行叢集監聽器的配置等操作,相應的配置結果會被自動寫入OCR中註冊記載。但如果手工建立了資料庫(create database)、手工編輯了監聽器檔案,則OCR中不作記載。這是需要管理員使用srvctl add 命令進行群集服務資訊箱OCR的手工註冊。反之,如果進行了資料庫的直接刪除等類似操作,而未經過DBCA工具等,則需要使用反向命令srvctl remove進行資訊的手工刪除。
     例如,下面透過add database命令手工新增一套群集資料庫sdzy,在叢集節點node_a的node_b上分別新增例項
sdzy1和sdzy2:
 $srvctl add database -d sdzy -o /db/oracle/product/10.2.0/db_1
$srvctl add instance -d sdzy -i sdzy1 -n node_a
$srvctl add instance -d sdzy -i sdzy2 -n node_b
在上面的過程中,關於資料庫sdzy的定義被新增到了叢集登錄檔中(這並不意味著這個資料庫一定存在)。其中-d 引數後面的是資料庫名,-o引數宣告瞭這套資料庫的ORACLE_HOME,-i引數宣告的是在各節點上的資料庫例項名,而-n引數則描述了節點名。
檢查資料庫在OCR的註冊結果,對資料庫sdzy進行查詢如下:
$srvctl config database -d sdzy
node_a sdzy1 /db/oracle/product/10.2.0/db_1
node_b sdzy2 /db/oracle/product/10.2.0/db_1
$crs_stat -t  檢視狀態
新增完成後,管理員可以從任意一個節點進行手工的sdzy資料庫的建立操作,並從各節點按照群集方式啟動和關閉資料庫,或者以叢集方式使用資料庫,只要再建立其它相關資訊即可,如網路監聽服務等。

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

相關文章