更改oracle RAC public ip,vip,scan ip和private ipnode
oifcfg - Oracle 接口配置工具數據庫
用法: oifcfg iflist [-p [-n]]
oifcfg setif {-node | -global} {/:}...
oifcfg getif [-node | -global] [ -if [/] [-type ] ]
oifcfg delif [-node | -global] [[/]]
oifcfg [-help]bash
- 爲通訊網絡所知的主機名
- 系統中配置的接口的名稱
- 接口的子網地址
- 接口類型 { cluster_interconnect | public | storage }網絡
用例:oracle
root@SHYQ-PS-MV-SV03-CDMPDB1:/#oifcfg getif -globalapp
en0 172.16.14.0 global public
en3 1.1.14.0 global cluster_interconnecttcp
bash-2.03$ oifcfg iflist
ce0 172.25.0.0
ce0 172.25.198.0
ce1 10.0.0.0
bash-2.03$ oifcfg iflist -p
ce0 172.25.0.0 PRIVATE
ce0 172.25.198.0 PRIVATE
ce1 10.0.0.0 PRIVATE
bash-2.03$ oifcfg iflist -p -n
ce0 172.25.0.0 PRIVATE 255.255.0.0
ce0 172.25.198.0 PRIVATE 255.255.255.0
ce1 10.0.0.0 PRIVATE 255.255.255.0工具
利用getif能夠獲取當前節點的配置:.net
bash-2.03$ oifcfg getif
ce0 172.25.0.0 global public
ce1 10.0.0.0 global cluster_interconnect
bash-2.03$ oifcfg getif -if ce0
ce0 172.25.0.0 global public
bash-2.03$ oifcfg getif -if ce1
ce1 10.0.0.0 global cluster_interconnectblog
利用oifcfg刪除添加網絡接口的時候,oracle用戶的權限不夠,須要切換爲root用戶執行:
bash-2.03# /data/oracle/product/10.2/crs/bin/oifcfg delif -global ce1
bash-2.03# /data/oracle/product/10.2/crs/bin/oifcfg setif -global ce1/10.0.0.0:cluster_interconnect
bash-2.03# /data/oracle/product/10.2/crs/bin/oifcfg getif -global
ce0 172.25.0.0 global public
ce1 10.0.0.0 global cluster_interconnect
完整例子:
11GR2 RAC modify vip,public ip,private ip,scan vip
實施步驟
1 修改目的
根據業務的需求,須要由原來的臨時IP改成生產ip,如下爲調整先後對應的IP表
調整前對應ip表
--------------------------------------------------------------
主機名 類型 IP 地址 網卡端口
P570a public ip 192.168.128.10 en0
p570a-vip vip 192.168.128.12 en0
p570a-priv private ip 172.168.128.10 en2
p570b public ip 192.168.128.11 en0
p570b-vip vip 192.168.128.13 en0
p570b-priv private ip 172.168.128.11 en2
scan-vip scan 192.168.128.100 en0
--------------------------------------------------------------
調整後對應ip表
主機名 類型 IP 地址 網卡端口
P570a public ip 10.76.31.112 en0
p570a-vip vip 10.76.31.113 en0
p570a-priv private ip 192.76.31.113 en8
p570b public ip 10.76.31.114 en0
p570b-vip vip 10.76.31.115 en0
p570b-priv private ip 192.76.31.115 en8
scan-vip scan 10.76.31.111 en0
--------------------------------------------------------------
網卡端口能夠用ifconfig -a 顯示出來
2 修改public ip,vip,scan vip
2.1 中止兩邊節點數據庫,監聽,而且中止crs
A、grid用戶執行以下操做
$ srvctl stop database -d gdcdc -o immediate
$ srvctl stop listener -n p570a
$ srvctl stop listener -n p570b
B、root用戶
cd /grid/app/11.2.0/grid/bin
./crsctl stop crs
能夠用ps –ef|grep grid看進程是否徹底關閉
2.2 修改兩邊節點的/etc/hosts文件
修改前先作個備份
cp /etc/hosts /etc/hosts.bak
修改後以下所示:
10.76.31.112 p570a
10.76.31.113 p570a-vip
172.168.128.10 p570a-priv
10.76.31.114 p570b
10.76.31.115 p570b-vip
172.168.128.11 p570b-priv
10.76.31.111 scan-vip
注意這裏私網ip地址暫時先不作修改,修改private ip時再修改
2.3 修改兩個節點上的public ip,vip,scan vip
2.3.1修改p570a節點 public ip
用smitty命令修改物理ip
smitty tcpip
選擇en0
修改ip爲 10.76.31.112,網關爲10.76.31.1
掩碼爲 255.255.255.0
2.3.2修改P570b節點 public ip
用smitty命令修改物理ip
smitty tcpip
選擇en0
第4頁共11頁
修改ip爲 10.76.31.114,網關爲10.76.31.1
掩碼爲255.255.255.0
2.3.3兩邊節點啓動crs,用oifcfg 命令修改public ip
A、root用戶中止crs,一邊節點作便可(注意)
cd /grid/app/11.2.0/grid/bin
./crsctl start crs
B、root用戶檢查修改
先用oifcfg getif查看當前設置
./oifcfg getif
en0 192.168.128.0 global public
en2 172.168.128.0 global cluster_interconnect
修改
./oifcfg delif -global en0
./oifcfg setif -global en0/10.76.31.0:public
兩邊節點確認
./oifcfg getif
en0 10.76.31.0 global public
en2 172.168.128.0 global cluster_interconnect
2.3.4修改VIP
A、關閉database,grid或者oracle用戶操做
root用戶下運行如下命令
cd /grid/app/11.2.0/grid/bin
./srvctl stop database -d gdcdc -o immediate
B、檢查VIP設置信息(grid用戶操做)
用srvctl config vip 檢查vip設置
$ srvctl config vip -n p570a
VIP exists.:p570a
VIP exists.: /p570a-vip/192.168.128.12/255.255.255.0/eth0
$ srvctl config vip -n p570b
VIP exists.:p570b
VIP exists.: /p570b-vip/192.168.128.13/255.255.255.0/eth0
C、中止vip 服務和修改vip(grid用戶操做)
./srvctl stop listener -n p570a
./srvctl stop listener -n p570b
./srvctl stop vip -n p570a
./srvctl stop vip -n p570b
./srvctl modify nodeapps -n p570a -A 10.76.31.113/255.255.255.0/en0
./srvctl modify nodeapps -n p570b -A 10.76.31.115/255.255.255.0/en0
D、確認是否修改爲功
./srvctl config vip -n p570a
VIP exists.:p570a
VIP exists.:/p570a-vip/10.76.31.113/255.255.255.0/en0
./srvctl config vip -n p570b
VIP exists.:p570b
VIP exists.:/p570b-vip/10.76.31.115/255.255.255.0/en0
E、啓動vip服務,監聽,數據庫
./srvctl start vip -n p570a
./srvctl start vip -n p570b
./srvctl start listener -n p570a
./srvctl start listener -n p570b
./srvctl start database –d gdcdc
2.3.5 兩邊節點修改local_listener參數
該部分應該是在修改完VIP以後,重啓數據庫由oraagent自動註冊進去。
Show parameter local_listener
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
local_listener string (DESCRIPTION=(ADDRESS_LIST=(AD
DRESS=(PROTOCOL=TCP)(HOST=192.
168.128.12)(PORT=1521))))
alter system set local_listener='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.76.31.113)(PORT=1521))))' scope=both sid='gdcdc1';
alter system set local_listener='(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.76.31.115)(PORT=1521))))' scope=both sid='gdcdc2';
2.3.6修改SCAN VIP
1.srvctl config scan 查看當前vip設置
config scan SCAN name: 192.168.128.100, Network: 1/192.168.128.0/255.255.255.0/en0 SCAN VIP name: scan1, IP: /scan-vip/192.168.128.100
2.用root用戶中止scan_listener 和sacn vip
$GRID_HOME/bin/srvctl stop scan_listener
$GRID_HOME/bin/srvctl stop scan
$GRID_HOME/bin/srvctl status scan
SCAN VIP scan1 is enabled SCAN VIP scan1 is not running
$GRID_HOME/bin/srvctl status scan_listener SCAN Listener LISTENER_SCAN1 is enabled SCAN listener LISTENER_SCAN1 is not running
3.用root用戶修改scan vip
$GRID_HOME/bin/srvctl modify scan -n10.76.31.111
4.檢查是否修改爲功
config scan SCAN name: 10.76.31.111 , Network: 1/10.76.31.0/255.255.255.0/en0 SCAN VIP name: scan1, IP: /scan-vip/10.76.31.111
5.啓動scan和scan_listener
$GRID_HOME/bin/srvctl start scan
$GRID_HOME/bin/srvctl start scan_listener
3 修改 private ip 3.1 確保crs集羣是打開的 能夠用olsnodes –s 檢查集羣的狀態 ./olsnodes -s P570a Active P570b Active 3.2 用oifcfg getif 檢查和oifcfg setif修改當前private 設置 修改前設置 ./oifcfg getif en0 10.76.31.0 global public en2 172.168.128.0 global cluster_interconnect 修改private ip,新網絡端口號爲en8,若是沒有修改端口號,則設置的值仍是爲en2 ./oifcfg setif -global en8/192.76.31.0:cluster_interconnect ./oifcfg delif -global en2 修改後設置 ./oifcfg getif en0 10.76.31.0 global public en8 192.76.31.0 global cluster_interconnect 3.3 兩邊節點中止database和crs ./srvctl stop database -d gdcdc -o immedate ./crsctl stop crs 檢查是否關閉 ps -ef|grep grid ps -ef|grep oracle 3.4 修改兩邊節點/etc/hosts表 172.168.128.10 p570a-priv 172.168.128.11 p570b-priv 修改成 192.76.31.113 p570a-priv 192.76.31.115 p570b-priv 3.5 修改p570a節點 private ip 用smitty命令修改物理私網ip smitty tcpip 選擇en8 修改ip爲 192.76.31.113 掩碼爲 255.255.255.0 3.6 修改P570b節點 private ip 用smitty命令修改物理私網ip smitty tcpip 選擇en8 修改ip爲 192.76.31.115 掩碼爲 255.255.255.0 3.7 兩邊節點啓動crs crsctl start crs 檢查資源組狀態 crsctl status resource –t 若是都online,則沒問題。 4 實施總結 1. 在修改public ip時注意修改對應的正確網關,若是不修改,有可能致使vip服務起不來。 2. 注意檢查修改hosts文件,由於改ip後,hosts文件會增長記錄。 public ip對應的掩碼也要修改正確, 3. 主機名在安裝crs時要規劃好,一旦裝好後,就不能修改,不然要從新安裝crs。 4. 11GR2 srvctl 新增 config vip命令 5. 修改private ip的順序恰好和10gR2相反,10gR2是先關閉crs,而後修改hosts表和物理ip,再啓動crs,用oifcfg 設置新私網ip,這點要注意,不然按10gR2修改私網的方法,會致使CRS集羣起不來,因此作以前先作好備份。 6. 若是兩邊節點local_listener參數沒修改的話,會致使客戶端鏈接不到數據庫報ERROR:ORA-12516: TNS: 監聽程序找不到符合協議堆棧要求的可用處理程序,這是由於scan_listener 認到的仍是修改前的vip原文:https://blog.csdn.net/weixin_34389926/article/details/85139489