**说明: **
VCS(Veritas Cluster Server)是Symantec(赛门铁克)公司的一款集群管理软件,Oracle+VCS可以实现故障发现、故障切换等功能,本文主要介绍Oracle VCS的一些简单操作,仅供参考。
一:通过VCS客户端进行切换
1.登录VCS 管理软件
2.选择待切换的服务器
3.解冻资源
检查资源状态,如果是冻结状态,需要先解冻
备注:
取消冻结资源组后,即可对该资源组执行联机或脱机操作。
通过 Cluster Explorer 取消冻结资源组
1、在配置树的 Service Groups 选项卡中,右键单击资源组。或单击配置树中的集群,再单击 Service Groups 选项卡,然后右键单击视图面板中的资源组图标。
2、单击 Unfreeze。
4.切换
选择 switch to --remote switch
观察资源状态
观察另一台资源状态,直到所有资源都启动完毕。
5.验证数据库状态
登录切换后的数据库服务器
su - oracle
Sqlplus / as sysdba
Select name,open\_mode from v$database;
Select username,count(\*) from v$session where username is not null group by username;
6.执行冻结操作
资源没有问题的情况下,两台服务器都执行冻结操作,点击freeze-》Persistent
备注:
冻结资源组可以防止它故障切换到另一个系统。该冻结过程将停止资源组上的所有联机和脱机过程。
通过 Cluster Explorer 冻结资源组
1、在配置树的 Service Groups 选项卡中,右键单击资源组。或单击配置树中的集群,再单击 Service Groups 选项卡,然后右键单击视图面板中的资源组图标。
2、单击 Freeze,然后在菜单中单击 Temporary 或 Persistent。如果选择了 persistent 选项后将其保存到配置中,则系统在重新引导后仍保持冻结状态。
二:通过VCS命令切换
主库:192.168.0.101
从库:192.168.0.102
VIP: 192.168.0.103
目的:
通过VCS,将Oracle实例,从192.168.0.101切换到192.168.0.102
操作如下:
1.检查VCS资源
查看资源组状态
root@CJC-DB-01:/opt/VRTS/bin#./hagrp -state
通过查询可知:
资源组名称为:XX_CJC_DBS
节点名称:
192.168.0.101 VCS节点名称是CJC-DB-01_vcs。
192.168.0.102 VCS节点名称是CJC-DB-02_vcs。
查看资源状态
root@CJC-DB-01:/opt/VRTS/bin#./hares -state
通过查询可知:
资源在节点1 CJC-DB-01_vcs上在线。
2.检查资源组是否冻结
root@CJC-DB-01:/opt/VRTSvcs/bin#./hagrp -display | grep Frozen
两节点都是未冻结状态。
如果冻结状态,会显示如下:
临时冻结
永久冻结
主要查看最后两行:
最后一行value值为0时,表示资源未冻结,为1时表示资源冻结。
倒数第二行vales值为0时,表示资源未冻结,为1时表示资源冻结。
TFrozen表示临时冻结,重启后恢复默认值。
Frozen表示永久冻结,重启后值不变。
如果是冻结状态下,无法执行VCS切换,需要先解冻
root@CJC-DB-01:/opt/VRTS/bin#./hagrp -switch XX_CJC_DBS -to CJC-DB-02_vcs
VCS WARNING V-16-1-10154 Group XX_CJC_DBS is frozen
执行VCS切换前,需要确保两个节点资源都是未冻结状态,切换完成后,需要将资源改成冻结状态,避免数据库自动切换。
资源冻结状态查看、修改冻结状态语句如下:
查看冻结状态
cd /opt/VRTSvcs/bin
./hagrp -display | grep Frozen
手动设置为资源冻结(两个节点分别执行)
./hagrp -freeze XX_CJC_DBS
手动设置为资源永久冻结(两个节点分别执行)
先将 VCS 配置的属性设置为可写。
# haconf -makerw
持久冻结每个服务组。
# hagrp -freeze XX_CJC_DBS -persistent
将配置的属性设置为只读。
# haconf -dump -makero
手动设置为资源未冻结(两个节点分别执行)
./hagrp -unfreeze XX_CJC_DBS
3.数据库切换
192.168.0.101 切换到 192.168.0.102
192.168.0.101上执行:
切换前检查
检查nfs挂载
df -h /ora*
检查VIP
ip a
正式切换
su - root
cd /opt/VRTSvcs/bin
./hagrp -switch XX_CJC_DBS -to CJC-DB-02_vcs
切换过程大致如下:
执行VCS切换命令后
(1).原主库192.168.0.101上Oracle数据库自动执行shutdown immediate关库操作。
(2).原主库192.168.0.101自动删除VIP 192.168.0.103。
(3).原主库192.168.0.101自动umount /oradata和/oraarch的NFS存储。
(4).新主库192.168.0.102自动mount /oradata和/oraarch的NFS存储。
(5).新主库192.168.0.101自动添加VIP 192.168.0.103。
(6).新主库192.168.0.101自动执行arping广播。
(7).新主库192.168.0.101自动启动实例。
4.验证
本地节点登录验证
sqlplus / as sysdba
验证实例状态、数据库连接、会话、等待事件、归档切换等
5.数据库回切
192.168.0.102主库节点操作
检查NFS挂载情况
root@CJC-DB-02:/opt/VRTS/bin#df -h /ora*
检查VIP
root@CJC-DB-02:/opt/VRTS/bin#ip a
开始回切
su - root
cd /opt/VRTSvcs/bin
./hagrp -switch XX_CJC_DBS -to CJC-DB-01_vcs
验证
sqlplus / as sysdba
验证实例状态、数据库连接、会话、等待事件、归档切换等
三:手动切换
适用场景:
当VCS切换失败,或VCS服务异常时,无法通过VCS进行Oracle实例切换,可以使用手动切换Oracle实例。
手动切换
目的:
通过手动方式,将Oracle实例,从192.168.0.101切换到192.168.0.102。
1.停监听
主库 192.168.0.101
oracle@CJC-DB-01:/home/oracle$lsnrctl stop
2.停实例
SQL> shutdown immediate
3.卸载VIP
ifconfig
ip a
ifconfig ensxxx:0 192.168.0.103 down
4.卸载NFS
df -h /ora*
mount |grep ora
开始umount
###umount /oradata
###umount /oraarch
5.新增VIP
从库192.168.0.102
ifconfig ensxxx:0 192.168.0.103/24 up
6.挂载NFS
mount -t nfs -o rw,bg,hard,nointr,nolock,rsize=65536,wsize=65536,tcp,vers=3,timeo=600 XXX.XXX.XXX.XXX:/cjc_db_oradata_nfsA2 /oradata
mount -t nfs -o rw,bg,hard,nointr,nolock,rsize=65536,wsize=65536,tcp,vers=3,timeo=600 XXX.XXX.XXX.XXX:/cjc_db_oraarch_nfsA2 /oraarch
检查
df -h /ora*
7.启动数据库
SQL> startup
8.启动监听
oracle@CJC-DB-02:/home/oracle$lsnrctl start
9.执行arping命令
需要在192.168.0.102主库上执行arping命令。
arping -c 5 -U -I ens192 192.168.0.103
ARPING 192.168.0.103 from 192.168.0.103 ensxxx
Sent 5 probes (5 broadcast(s))
Received 0 response(s)
注意:
如果不执行arping命令,远程连接数据库会出现超时连接失败问题,需要等arp缓存更新后才能连接。
例如:
ORA-12170: TNS: Connect timeout occurred
10.验证
远程连接测试
sqlplus / as sysdba
验证实例状态、数据库连接、会话、等待事件、归档切换等
经测试,在VCS资源解冻或冻结状态下,均可以正常手动进行切换Oracle。
###chenjuchao 20240627###
欢迎关注我的公众号《IT小Chen》