news 2026/6/7 12:57:34

Oracle ADG环境VIP高可用部署实操

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Oracle ADG环境VIP高可用部署实操

在Oracle ADG高可用架构中,配置虚拟IP(VIP)是核心优化手段之一,其核心目的是实现ADG主备切换后,业务应用无需修改数据源IP,大幅降低业务中断时长,这一设计思路同样适用于其他数据库的HA架构。本次实操围绕Oracle ADG主备节点完成VIP自动切换脚本部署,同时解决了脚本运行中su操作日志持续写入/var/log/messages导致日志无限膨胀的问题,相同网卡配置的主备两台服务器,脚本部署与运行配置完全一致,以下为详细实操步骤。

一、环境检查:确认公网业务网卡

本次实操中业务公网网卡为ens33,通过ip a命令检查网卡信息,确认网卡状态及原有IP配置,为后续VIP绑定做准备。

/* by 01022.hk - online tools website : 01022.hk/zh/generateicpwallets.html */ [root@euler01 etc]# ip a # 关键输出:ens33网卡UP状态,绑定物理IP 192.168.X.X/24

二、VIP自动切换脚本部署

本次部署包含两个核心脚本:vip_check.sh为心跳检测脚本,实现定时调用核心脚本;vip_dg.sh为核心逻辑脚本,根据数据库OPEN_MODE状态自动绑定/卸载VIP,同时配置脚本随系统自启动,确保服务器重启后VIP高可用功能正常。

2.1 配置系统自启动

修改/etc/rc.local添加脚本启动命令,同时赋予rc.local可执行权限,保证系统启动时自动运行VIP检测脚本。

/* by 01022.hk - online tools website : 01022.hk/zh/generateicpwallets.html */ # 编辑自启动文件,添加脚本后台运行命令 [root@euler01 etc]# cat /etc/rc.local 添加:/etc/vip_check.sh > /dev/null 2>&1 & # 赋予可执行权限 [root@euler01 etc]# chmod +x /etc/rc.d/rc.local [root@euler01 etc]# ll /etc/rc.d/rc.local -rwxr-xr-x. 1 root root 510 Dec 2 09:48 /etc/rc.d/rc.local

2.2 编写心跳检测脚本:vip_check.sh

该脚本为死循环定时脚本,每3秒调用一次核心脚本vip_dg.sh,实现VIP状态的实时检测,脚本存放路径/etc/vip_check.sh

[root@euler01 etc]# cat /etc/vip_check.sh #!/bin/bash step=3 while true; do /etc/vip_dg.sh > /dev/null 2>&1 sleep $step done

2.3 编写核心逻辑脚本:vip_dg.sh

该脚本为VIP切换核心逻辑,通过查询Oracle数据库v$database视图的open_mode判断主备状态(主库为WRITE模式),同时检查VIP(192.168.207.39)是否绑定,实现主库自动绑定VIP、备库自动卸载VIP,并通过arping广播更新网络arp表,确保VIP网络可达,脚本存放路径/etc/vip_dg.sh

[root@euler01 etc]# cat /etc/vip_dg.sh #!/bin/bash # 查询数据库是否为WRITE模式(主库),返回1则为主库,0则为备库 dbstats=`su - oracle -c "echo -e 'set pagesize 0\nselect open_mode from v\\$database;' | sqlplus -S / as sysdba"|grep WRITE|wc -l` # 检查VIP 192.168.X.X是否已绑定在ens33:1 ip=`/usr/sbin/ip a|grep ens33:1|wc -l` if [[ "${dbstats}" -eq 1 ]] ; then # 主库:未绑定VIP则执行绑定,并发送arp广播 if [[ "${ip}" -eq 0 ]]; then /usr/sbin/ifconfig ens33:1 192.168.X.X netmask 255.255.255.0 up /usr/sbin/arping -I ens33 -b -s 192.168.X.X 192.168.X.X -c 3 fi else # 备库:已绑定VIP则执行卸载 if [[ "${ip}" -gt 0 ]]; then /usr/sbin/ifconfig ens33:1 down fi fi

三、脚本运行基础测试

完成脚本部署后,重启服务器验证脚本自启动、VIP绑定状态,确认基础功能正常。

3.1 验证脚本进程运行

服务器重启后,通过ps -ef命令检查VIP脚本进程,确认进程正常后台运行。

[root@euler01 etc]# ps -ef|grep vip

3.2 验证主库VIP绑定状态

主库节点下,通过ip a命令检查,确认浮动VIP 192.168.X.X成功绑定在ens33:1子网卡上,VIP状态正常。

[root@euler01 etc]# ip a # 关键输出:ens33:1子网卡绑定VIP 192.168.X.X/24

四、问题解决:屏蔽su操作日志输出

脚本运行中,vip_dg.sh每3秒执行一次su - oracle操作,系统会将该操作日志持续写入/var/log/messages,长期运行会导致日志文件无限增大,本次通过修改rsyslog配置,屏蔽su操作的auth类日志输出至messages。

4.1 检查rsyslog服务状态

确认rsyslog服务正常运行,该服务为系统日志核心服务,修改其配置可实现日志过滤。

[root@euler01 etc]# systemctl status rsyslog # 关键输出:Active: active (running),服务正常运行

4.2 修改rsyslog配置文件

编辑/etc/rsyslog.conf,在messages日志的配置行中添加auth.none,表示屏蔽auth类日志输出至该文件。

[root@euler01 etc]# vi /etc/rsyslog.conf # 修改前 *.info;mail.none;authpriv.none;cron.none /var/log/messages # 修改后 *.info;mail.none;authpriv.none;cron.none;auth.none /var/log/messages # 验证修改结果 [root@euler01 etc]# cat /etc/rsyslog.conf|grep auth.* *.info;mail.none;authpriv.none;cron.none;auth.none /var/log/messages

4.3 重启rsyslog服务并验证

重启rsyslog服务使配置生效,随后通过tail -f实时查看messages日志,确认无新的su操作日志输出,问题解决。

# 重启服务 [root@euler01 etc]# systemctl restart rsyslog # 验证日志,无su记录输出 [root@euler01 etc]# tail -f /var/log/messages # 仅显示rsyslog服务重启日志,无su[xxxx]: (to oracle) root on none相关记录

五、最终验证:通过VIP连接数据库

以Oracle用户身份,通过浮动VIP 192.168.X.X连接数据库,验证VIP网络可达、数据库正常访问,确认整个VIP高可用部署流程生效。

[root@euler01 etc]# su - oracle [oracle@euler01 ~]$ sqlplus zyjc/zyjc@192.168.X.X:1521/cm SQL*Plus: Release 11.2.0.4.0 Production on Tue Dec 2 13:10:18 2025 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options

六、实操总结

  1. 本次部署的VIP自动切换脚本基于数据库OPEN_MODE状态实现主备自动切换,主备节点网卡配置一致时,脚本可完全复用,降低部署成本;
  2. 心跳脚本每3秒检测一次,兼顾检测实时性与系统资源消耗,arping广播确保VIP切换后网络即时可达;
  3. 通过在rsyslog配置中添加auth.none,精准屏蔽su操作的auth类日志,避免messages日志膨胀,保障系统日志管理规范;
  4. 整个部署实现了Oracle ADG架构下VIP的无人工干预自动切换,业务应用通过VIP连接数据库,主备切换时无需修改数据源配置,大幅缩短业务中断时间。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/30 10:48:44

探索基于 PLC 的码垛机械手控制系统

基于plc的码垛机械手控制系统,基于S7-1200的三轴机械臂搬运系统,基于博途plc的物料传送搬运码垛系统,S7-1200物料搬运博途编程。 包括仿真,图纸,报告等在自动化生产领域,码垛机械手控制系统的应用越来越广泛…

作者头像 李华
网站建设 2026/5/30 22:02:58

SQL中,防止除0错误

NULLIF(x, y) 是一个标准 SQL 函数,含义是: 如果 x y,则返回 NULL 否则返回 x例如:100 / NULLIF(CAST(b.zgzs AS DOUBLE), 0)

作者头像 李华
网站建设 2026/5/29 8:40:04

小白程序员轻松转型AI产品经理,保姆级攻略大公开

本文详细介绍了非技术背景人员如何转型AI产品经理的方法,包括AI产品经理与传统产品经理的区别、所需能力素质、转型路径等。文章还探讨了技术背景人员转型AI产品经理的方法,强调应用场景的重要性。此外,文章还分享了成功AI产品经理的案例和经…

作者头像 李华
网站建设 2026/5/29 18:13:25

STM32_CubeMx安装

文章目录STM32CubeMx一、安装JRE   1、点击安装   2、修改路径 点下一步   3、等待安装完成,关闭界面二、安装STM32CubeMX   1、打开安装包   2、同意协议,下一步   3、勾选第一个即可,第二个选项是是否同意ST公司收集你的个人使…

作者头像 李华
网站建设 2026/6/5 17:43:08

2026年降AIGC保留原文的工具选择:便宜的和贵的差在哪

2026年降AIGC保留原文的工具选择:便宜的和贵的差在哪 去年12月,我同时帮两个朋友处理毕业论文的AI率问题。一个是学前教育专业的本科生,一个是计算机方向的硕士生。本科生说预算50块钱以内搞定,硕士生说只要效果好花多少无所谓。…

作者头像 李华