Oracle10203RAC環境刪除節點(一)

yangtingkun發表於2009-12-28

前面幾篇文章介紹了在Oracle 10203 for Solaris sparcRAC雙節點環境中,新增一個節點的過程。這裡描述刪除節點的操作。

這一篇介紹Oracle資料庫例項的刪除。

 

 

這篇介紹手工刪除節點的方面。刪除節點雖然和新增節點相比要簡單很多,但是還是有一些地方需要注意。

比如這個刪除節點的操作是臨時的還是永久的。如果是臨時的操作,那麼不需要修改任何的初始化引數,只需要關閉資料庫例項就可以了,以後隨時可以將刪除的節點新增回來,而且由於初始化引數不需要修改,新增過程都不會導致資料庫的重啟。對於CLUSTER的設定,也可以考慮保留。唯一需要修改的是節點1和節點2TNSNAMES.ORA中,對於整個RAC環境的設定,要去掉已刪除的節點。另外,如果使用srvctl來管理RAC環境,還應該從srvctl的配置中去掉被刪除節點的資訊。

而如果要徹底刪除節點,就要徹底清除所有節點3的資訊,對這個例子而言,就意味著要將RAC環境恢復到初始兩個節點執行的狀態。這裡需要執行的操作包括了臨時去掉節點的所有修改,因此這裡介紹永久刪除節點的方法。

bash-3.00$ srvctl status db -d testrac
例項 testrac1 正在節點 racnode1 上執行
例項 testrac2 正在節點 racnode2 上執行
例項 testrac3 正在節點 racnode3 上執行
bash-3.00$ srvctl stop inst -d testrac -i testrac3
bash-3.00$ srvctl status db -d testrac
例項 testrac1 正在節點 racnode1 上執行
例項 testrac2 正在節點 racnode2 上執行
例項 testrac3 沒有在 racnode3 節點上執行

首先需要修改的是資料庫的例項,對於節點3而言,只需要簡單的關閉例項即可。

下面關閉ASM例項:

bash-3.00$ srvctl status asm -n racnode3
ASM
例項 +ASM3 正在節點 racnode3 上執行。
bash-3.00$ srvctl stop asm -n racnode3
bash-3.00$ srvctl status asm -n racnode3
ASM
例項 +ASM3 不在節點 racnode3 上執行。

由於資料庫使用的是共同的SPFILE

SQL> show parameter spfile

NAME                 TYPE        VALUE
-------------------- ----------- -------------------------------
spfile               string      +DISK/testrac/spfiletestrac.ora

因此只需要將SPFILE中例項3的初始化引數去掉就可以了:

SQL> select name, value 
  2  from v$spparameter
  3  where sid = 'testrac3';

NAME                           VALUE
------------------------------ ------------------------------------------------------------
thread                         3
instance_number                3
undo_tablespace                UNDOTBS3
service_names                  TESTRAC, testrac
local_listener                 (ADDRESS = (PROTOCOL = TCP)(HOST = 172.25.198.227)(PORT = 1521))

SQL> alter system reset thread scope = spfile sid = 'testrac3';

系統已更改。

SQL> alter system reset instance_number scope = spfile sid = 'testrac3';

系統已更改。

SQL> alter system reset undo_tablespace scope = spfile sid = 'testrac3';

系統已更改。

SQL> alter system reset service_names scope = spfile sid = 'testrac3';

系統已更改。

SQL> alter system reset local_listener scope = spfile sid = 'testrac3';

系統已更改。

下面設定其他兩個節點的CLUSTER_DATABASE_INSTANCES初始化引數,將其修改為2

SQL> select sid, name, value
  2  from v$spparameter
  3  where name = 'cluster_database_instances';

SID        NAME                           VALUE
---------- ------------------------------ --------------------------------------------
*          cluster_database_instances     3

SQL> alter system set cluster_database_instances = 2 scope = spfile;

系統已更改。

至此,資料庫級的修改已經完成,等到其他兩個例項重啟的時候,就會自動去掉當前載入的例項3相關的初始化引數。

 

最後關閉監聽:

bash-3.00$ srvctl stop listener -n racnode3

 

 

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

相關文章