20230422-Oracle RAC 修改VIP地址

在这里插入图片描述

说明:

版本:Oracle 11.2.0.4.0 RAC
将Oracle RAC节点VIP2地址从100.1.0.106改成100.1.0.108(相同网段)。

注意:

1.一般来说,只有在10.2.0.3版本之前的版本中才需要完全停机。
2.从10.2.0.3开始,ASM/数据库实例对VIP资源的依赖关系将被删除,因此可以不关闭ASM/数据库实例的情况下修改VIP,当VIP关闭时,只有到数据库的客户端连接将受到影响。
3.如果修改是特定于节点的,那么在更改期间,只有与该节点的连接才会受到影响。

1.查看集群状态和IP

crsctl stat res -t

查看IP

ip a

3: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:50:56:b1:03:db brd ff:ff:ff:ff:ff:ff
    inet 100.1.0.45/24 brd 100.1.0.255 scope global ens192
       valid_lft forever preferred_lft forever
    inet 100.1.0.107/24 brd 100.1.0.255 scope global secondary ens192:1
       valid_lft forever preferred_lft forever
    inet 100.1.0.106/24 brd 100.1.0.255 scope global secondary ens192:2
       valid_lft forever preferred_lft forever
    inet6 fe80::250:56ff:feb1:3db/64 scope link 
       valid_lft forever preferred_lft forever

2.备份OCR

su - root
cd /oracle/grid/product/11.2/bin
./ocrconfig -manualbackup

日志如下:

cjc-db-06     2023/04/21 17:13:11     /oracle/grid/product/11.2/cdata/test-clu/backup_20230421_171311.ocr

3.备份profile(双节点、grid用户备份)

su - grid
cd $ORACLE_HOME/gpnp/profiles/peer
cp profile.xml profile.xml_20230421bak 
cp profile_orig.xml profile_orig.xml_20230421bak

4.修改VIP

查看

srvctl config nodeapps

日志如下:

Network exists: 1/100.1.0.0/255.255.255.0/ens192, type static
VIP exists: /cjc-db-05-vip/100.1.0.105/100.1.0.0/255.255.255.0/ens192, hosting node cjc-db-05
VIP exists: /cjc-db-06-vip/100.1.0.106/100.1.0.0/255.255.255.0/ens192, hosting node cjc-db-06
GSD exists
ONS exists: Local port 6100, remote port 6200, EM port 2016

修改

su - root
cd /oracle/grid/product/11.2/bin
./srvctl modify nodeapps -n cjc-db-06 -A 100.1.0.108/255.255.255.0/ens192
./srvctl config nodeapps

日志

Network exists: 1/100.1.0.0/255.255.255.0/ens192, type static
VIP exists: /cjc-db-05-vip/100.1.0.105/100.1.0.0/255.255.255.0/ens192, hosting node cjc-db-05
VIP exists: /100.1.0.108/100.1.0.108/100.1.0.0/255.255.255.0/ens192, hosting node cjc-db-06
GSD exists
ONS exists: Local port 6100, remote port 6200, EM port 2016

5.查询并修改local_listener、remote_listener参数

show parameter local_listener;
local_listener                       string (ADDRESS=(PROTOCOL=TCP)(HOST=100.1.0.106)(PORT=1521))

修改

alter system set local_listener="(ADDRESS=(PROTOCOL=TCP)(HOST=100.1.0.108)(PORT=1521))";
show parameter remote_listener;

如果涉及VIP地址,需要修改对应的参数

6.检查并修改listener.ora和tnsnames.ora文件

cd $ORACLE_HOME/network/admin
cat listener.ora
cat tnsnames.ora

如果文件中涉及VIP地址,需要修改对应的信息。

7.停用crs

su - root
cd /oracle/grid/product/11.2/bin
./crsctl stop crs

8.修改 /etc/hosts 文件

vi /etc/hosts
......
# Virtual
100.1.0.105   cjc-db-05-vip
#100.1.0.106   cjc-db-06-vip
100.1.0.108   cjc-db-06-vip
......

9.启动集群

cd /oracle/grid/product/11.2/bin
./crsctl start crs

10.检查

oifcfg getif -global

root@cjc-db-06:/oracle/grid/product/11.2/bin#su - grid
Last login: Fri Apr 21 17:19:30 CST 2023 on pts/0
grid@cjc-db-06:/home/grid$oifcfg getif -global
ens192  100.1.0.0  global  public
ens161  100.1.7.0  global  cluster_interconnect

srvctl config nodeapps

grid@cjc-db-06:/home/grid$srvctl config nodeapps
Network exists: 1/100.1.0.0/255.255.255.0/ens192, type static
VIP exists: /cjc-db-05-vip/100.1.0.105/100.1.0.0/255.255.255.0/ens192, hosting node cjc-db-05
VIP exists: /100.1.0.108/100.1.0.108/100.1.0.0/255.255.255.0/ens192, hosting node cjc-db-06
GSD exists
ONS exists: Local port 6100, remote port 6200, EM port 2016

如果非同一网段,重启集群之前还需要修改其他配置

–查看当前配置:

oifcfg getif -global

日志如下:

ens192  100.1.0.0  global  public
ens161  100.1.7.0  global  cluster_interconnect

–删除当前配置

./oifcfg delif -global eth0

–添加当前配置

./oifcfg setif -global eth0/100.16.0.0:public
./oifcfg setif -global eth1/192.168.0.0:cluster_interconnect

–查看当前配置:

oifcfg getif -global
eth0  100.16.0.0  global  public
eth1  192.168.0.0  global  cluster_interconnect

###chenjuchao 20230422###
欢迎关注我的公众号《IT小Chen

Oracle RAC(Real Application Clusters)环境中,VIP(Virtual IP)地址的漂移机制是为了实现高可用性和故障转移而设计的关键特性。VIP地址漂移指的是在某个节点发生故障时,该节点的VIP地址会自动转移到另一个正常运行的节点上,以确保客户端连接的连续性。 ### VIP地址漂移机制 在Oracle RAC中,每个节点都有一个与PUBLIC IP处于同一子网的VIP地址。当某个节点发生故障(如网络中断、主机宕机等)时,Clusterware(集群件)会检测到该故障,并将该节点的VIP地址转移到集群中的另一个健康节点上。这种转移对客户端是透明的,并且通过FAN(Fast Application Notification)机制通知客户端重新连接到其他可用的VIP地址[^1]。 具体来说,当VIP发生漂移后,新的节点会接管该VIP地址,并且Clusterware会更新相关的监听器配置,以确保客户端请求能够被正确地路由到新的节点上。一旦故障节点恢复正常,VIP地址会再次漂移回原节点,继续提供服务[^1]。 ### VIP地址的配置步骤 在Oracle RAC环境中配置VIP地址涉及多个步骤,包括网络配置、使用`srvctl`工具进行管理等。以下是基本的配置流程: 1. **网络配置**:确保每个节点的VIP地址与其PUBLIC IP处于同一子网,并且DNS或GNS(Grid Naming Service)能够正确解析这些VIP地址。如果使用DNS,则需要为每个VIP配置A记录;如果使用GNS,则可以通过DHCP和DNS动态分配和解析VIP地址[^1]。 2. **使用`srvctl`配置VIP**:可以通过`srvctl`命令来添加、修改或删除VIP地址。例如,添加一个VIP地址可以使用以下命令: ```bash srvctl add vip -n <node_name> -i <vip_interface> -k <network_number> -A <vip_address>/<subnet_mask> ``` 其中,`<node_name>`是节点名称,`<vip_interface>`是VIP使用的网络接口,`<network_number>`是网络编号,`<vip_address>`是VIP地址,`<subnet_mask>`是子网掩码。 3. **启动和管理VIP**:配置完成后,可以使用`srvctl`命令启动VIP服务,并检查其状态。例如: ```bash srvctl start vip -n <node_name> srvctl status vip -n <node_name> ``` 4. **验证VIP漂移**:为了验证VIP是否能够在节点故障时正确漂移,可以模拟节点故障(如关闭CRS服务),然后观察VIP是否成功转移到其他节点。可以通过`ifconfig`或`ip addr`命令查看VIP地址的变化。 5. **手动进行VIP漂移**:在某些情况下,可能需要手动进行VIP漂移,尤其是在进行维护操作时。此时可以按照以下步骤操作: - 停止实例: ```bash srvctl stop instance -d <dbname> -i <instancename> ``` - 停止ASM(如果适用): ```bash srvctl stop asm -n <nodename> ``` - 停止监听器: ```bash srvctl stop listener -n <nodename> ``` - 停止CRS服务(以root用户身份执行): ```bash /u01/app/19.0.0/grid/bin/crsctl stop crs ``` 完成上述命令后,等待1-2分钟,观察VIP是否漂移到其他节点上[^2]。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值