本文只介紹同網段公網IP、虛擬IP以及scan的變更,稍後會介紹跨網段的IP變更。
實驗環境:
1、停止RAC集羣服務
在兩個節點分別停止集羣服務:
[root@odb09 ~]# /u01/app/11.2.0/grid/bin/crsctl stop cluster -all
[root@odb09 ~]# /u01/app/11.2.0/grid/bin/crsctl stop crs
[root@odb10 ~]# /u01/app/11.2.0/grid/bin/crsctl stop crs
2、更改hosts文件或者dns記錄
這裏使用了hosts文件,直接編輯即可。如果使用了dns,需要修改dns的解析記錄。若解析不成功會導致變更失敗。
3、重啓各個RAC節點
由於變更了公網IP,需要重啓才能生效。重啓完成後,對應的公網IP和虛擬IP都會改變。而oracle集羣服務也會自動啓動,並把新的公網IP和虛擬IP信息寫入ocr中。到此,公網IP和虛擬IP變更完成。
4、變更scan名稱以及IP
- 檢查當前scan信息
[root@odb09 ~]# /u01/app/11.2.0/grid/bin/srvctl config scan SCAN name: scan01, Network: 1/192.168.120.0/255.255.255.0/eth0 SCAN VIP name: scan1, IP: /scan01/192.168.120.37
- 停止SCAN以及scan listener服務
[root@odb09 ~]# /u01/app/11.2.0/grid/bin/srvctl stop scan_listener [root@odb09 ~]# /u01/app/11.2.0/grid/bin/srvctl stop scan [root@odb09 ~]# /u01/app/11.2.0/grid/bin/srvctl status scan SCAN VIP scan1 is enabled SCAN VIP scan1 is not running [root@odb09 ~]# /u01/app/11.2.0/grid/bin/srvctl status scan_listener SCAN Listener LISTENER_SCAN1 is enabled SCAN listener LISTENER_SCAN1 is not running
- 變更scan信息
這裏將scan01變更爲scan02,ip由192.168.120.37變更爲192.168.120.42。在更改前,確保新的scan可以通過dns解析或者以加入hosts文件,否則會出現如下報錯: [root@odb09 ~]# /u01/app/11.2.0/grid/bin/srvctl modify scan -n scan02 PRCS-1016 : Failed to resolve Single Client Access Name scan02 變更後驗證: [root@odb09 ~]# /u01/app/11.2.0/grid/bin/srvctl config scan SCAN name: scan02, Network: 1/192.168.120.0/255.255.255.0/eth0 SCAN VIP name: scan1, IP: /scan02/192.168.120.42
- 啓動scan服務
[root@odb09 ~]# /u01/app/11.2.0/grid/bin/srvctl start scan [root@odb09 ~]# /u01/app/11.2.0/grid/bin/srvctl start scan_listener [root@odb09 ~]# /u01/app/11.2.0/grid/bin/srvctl status scan SCAN VIP scan1 is enabled SCAN VIP scan1 is running on node odb10 [root@odb09 ~]# /u01/app/11.2.0/grid/bin/srvctl status scan_listener SCAN Listener LISTENER_SCAN1 is enabled SCAN listener LISTENER_SCAN1 is running on node odb10
由於變更scan名稱,所以還需要修改數據庫參數remote_listener,如下:
SQL> show parameter remote_listener
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
remote_listener string scan01:1521
變更後如下:
SQL> alter system set remote_listener='scan02:1521' scope=spfile;
SQL> show parameter remote_listener
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
remote_listener string scan02:1521