1. 程式人生 > >Oracle RAC中刪除節點:

Oracle RAC中刪除節點:



刪除節點:
1.檢視將要刪除的節點是被pin住,如果pin住需要,unpin節點 
$ olsnodes -n -t -s
unpin需要root許可權
crsctl unpin css -n rac2
2.刪除例項
通過dbca 例項管理進行刪除
檢視
select thread#,status,instance from v$thread;
注:此過程可能報錯,因為在節點2上已經重灌系統,在DBCA刪除例項時無法找到節點2上的相應檔案。只要保證 在資料庫中查不到racdb2的例項即可
 檢視庫的配置:
# srvctl config database -d orcl

1.1

在racdb1節點上停止刪除節點NodeApps           
$ srvctl stop nodeapps -n racdb2 -f

3.更新叢集列表
su – oracle
$ORACLE_HOME/oui/bin/runInstaller -updateNodeList ORACLE_HOME=$ORACLE_HOME “CLUSTER_NODES={racdb1}”
4.刪除節點的VIP
# crs_stat -t
如果仍然有racdb2節點的VIP服務存在,執行如下:
[
[email protected]
~]# srvctl stop vip -i ora.racdb2.vip -f
[[email protected] ~]# srvctl remove vip -i ora.racdb2.vip -f
[[email protected] ~]# crsctl delete resource ora.racdb2.vip -f


5.在任一保留的節點上刪除節點(如果叢集沒有停掉,先要停掉,如果是刪除死掉的節點就叢集肯定是停掉的)
        [[email protected] ~]# crsctl delete node -n racdb2
        [
[email protected]
~]# olsnodes -t -s
6.保留節點使用grid使用者更新叢集列表
        在所有保留的節點上執行:  
$ORACLE_HOME/oui/bin/runInstaller -updateNodeList ORACLE_HOME=$ORACLE_HOME “CLUSTER_NODES={racdb1}” CRS=true


7.驗證racdb2節點被刪除
在任一保留的節點上:
$ cluvfy stage -post nodedel -n racdb2
$ crsctl status resource -t
8.驗證racdb2節點被刪除
檢視活動的例項:
$ sqlplus / as sysdba
SQL> select thread#,status,instance from v$thread;



如果RAC2沒有異常直接加入進來,可以直接執行如下:
1.保留節點使用grid使用者更新叢集列表
        在所有保留的節點上執行:  
$ORACLE_HOME/oui/bin/runInstaller -updateNodeList ORACLE_HOME=$ORACLE_HOME “CLUSTER_NODES={racdb1}” CRS=true
2.更新叢集列表
su – oracle
$ORACLE_HOME/oui/bin/runInstaller -updateNodeList ORACLE_HOME=$ORACLE_HOME “CLUSTER_NODES={racdb1}”
3.啟動RAC2的叢集服務
4.啟動rac2 nodeapps服務
srvctl start nodeapps -n racdb2 
5.增加RAC2的 VIP服務
srvctl add vip -n racdb2 -A racdb2-vip/255.255.0.0 -k 1 
6.新增例項
srvctl add instance -d hwdb -i racdb2 -n racdb2
在原來的節點上為新節點指定instance_number 
alter system set instance_number=2 sid='racdb2' scope=spfile; 
使能例項
#srvctl start instance -d racdb -i racdb3
可能需要增加日誌檔案,才能啟動:
ALTER DATABASE  ADD LOGFILE THREAD 2 GROUP 4  ('+DATA') SIZE 256M;
alter database enable intance 'hwdb2';
檢視活動的例項:
$ sqlplus / as sysdba
SQL> select thread#,status,instance from v$thread;

參考連結:http://blog.csdn.net/notbaron/article/details/51835438