发表于: 2010.07.10 23:59
分类: ORACLE
出处: http://yangtingkun.itpub.net/post/468/501910
---------------------------------------------------------------
简单描述一下如何修改RAC环境中节点的IP地址。
这是一个3节点RAC环境:
SQL> SELECT INSTANCE_NUMBER, INSTANCE_NAME, HOST_NAME, VERSION, STATUS
2 FROM GV$INSTANCE;
INSTANCE_NUMBER INSTANCE_NAME HOST_NAME VERSION STATUS
--------------- ---------------- ---------- ----------------- ------------
1 testrac1 racnode1 10.2.0.4.0 OPEN
3 testrac3 racnode3 10.2.0.4.0 OPEN
2 testrac2 racnode2 10.2.0.4.0 OPEN
检查三个节点的地址配置:
bash-2.03$ more /etc/hosts
#
# Internet host table
#
127.0.0.1 localhost
172.25.198.222 racnode1 loghost
172.25.198.224 racnode1-vip
10.0.0.1 racnode1-priv
172.25.198.223 racnode2
172.25.198.225 racnode2-vip
10.0.0.2 racnode2-priv
172.25.198.226 racnode3
172.25.198.227 racnode3-vip
10.0.0.3 racnode3-priv
下面准备修改节点3对应的PUBLIC IP、PRIVATE IP和VITUAL IP。
首先关闭实例3上的数据库和CLUSTERWARE:
# /etc/init.d/init.crs stop
Shutting down Oracle Cluster Ready Services (CRS):
Jun 13 11:07:50.361 | INF | daemon shutting down
Stopping resources. This could take several minutes.
Successfully stopped CRS resources.
Stopping CSSD.
Shutting down CSS daemon.
Shutdown request successfully issued.
Shutdown has begun. The daemons should exit soon.
修改三个主机上的/etc/hosts文件,将里面的节点3的配置改为目标IP地址:
172.25.198.228 racnode3 loghost
172.25.198.229 racnode3-vip
10.0.0.4 racnode3-priv
确保3个节点上的/etc/host文件都被修改:
# more /etc/hosts
#
# Internet host table
#
::1 localhost
127.0.0.1 localhost
172.25.198.228 racnode3 loghost
172.25.198.229 racnode3-vip
10.0.0.4 racnode3-priv
172.25.198.222 racnode1
172.25.198.224 racnode1-vip
10.0.0.1 racnode1-priv
172.25.198.223 racnode2
172.25.198.225 racnode2-vip
10.0.0.2 racnode2-priv
在节点三上手工修改IP:
# ifconfig ce1 10.0.0.4 netmask 255.255.0.0 broadcast 10.0.255.255
# ifconfig ce0 172.25.198.228 netmask 255.255.0.0 broadcast 172.25.255.255
修改PUBLIC IP后,需要以新的IP地址重新连接节点3:
# ifconfig -a
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
inet 127.0.0.1 netmask ff000000
ce0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
inet 172.25.198.228 netmask ffff0000 broadcast 172.25.255.255
ether 0:3:ba:2c:d8:da
ce1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 3
inet 10.0.0.4 netmask ffff0000 broadcast 10.0.255.255
ether 0:3:ba:2c:d8:da
确认PUBLIC IP和PRIVATE IP已经正常。
检查各个节点上的tnsnames.ora以及数据库中的remote_listener参数,如果这些配置是通过主机名进行的配置则无需修改。如果是通过IP直接配置的,那么根据节点3的新地址进行相应的修改。
修改结束后,在节点1或节点2上以图形方式用root启动VIPCA,进行节点3VIP的配置:
# xhost +
access control disabled, clients can connect from any host
# /data/oracle/product/10.2/crs/bin/vipca
如果前面对/etc/hosts下的修改正确的话,这里不需要进行任何的修改,Oracle自动可以找到对应的新地址。点击确认后,Oracle在重新配置VIP过程中会报错,因为节点3上的CLUSTERWARE并未启动,忽略这个错误。
在节点3上启动CLUSTERWARE和数据库:
# /etc/init.d/init.crs start
Startup will be queued to init within 30 seconds.
切换到Oracle,检查
$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.4.0 - Production on 星期日 6月 13 11:36:40 2010
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options
SQL> SET PAGES 100 LINES 120
SQL> COL HOST_NAME FORMAT A10
SQL> SELECT INSTANCE_NUMBER, INSTANCE_NAME, HOST_NAME, VERSION, STATUS
2 FROM GV$INSTANCE;
INSTANCE_NUMBER INSTANCE_NAME HOST_NAME VERSION STATUS
--------------- ---------------- ---------- ----------------- ------------
3 testrac3 racnode3 10.2.0.4.0 OPEN
2 testrac2 racnode2 10.2.0.4.0 OPEN
1 testrac1 racnode1 10.2.0.4.0 OPEN
SQL> SELECT INSTANCE_NAME FROM V$INSTANCE;
INSTANCE_NAME
----------------
testrac3
节点地址修改完成。











