news 2026/4/23 12:41:50

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/4/23 8:21:45

Python Flask项目模块化架构实战指南:从核心功能到快速部署

Python Flask项目模块化架构实战指南:从核心功能到快速部署 【免费下载链接】SoulChat 项目地址: https://gitcode.com/gh_mirrors/so/SoulChat 作为一名开发者,我深知构建一个结构清晰、易于扩展的Web应用有多么重要。SoulChat项目作为轻量级We…

作者头像 李华
网站建设 2026/4/23 8:21:18

Spring Boot 升级到2.7的踩坑总结

这篇文章分享一下Spring Boot 升级到2.7的踩坑总结,还是挺全面的,希望对大家有所帮助~说明2.7.2为2.x的最后一个稳定版本。3开始最低要求 Java 17,所以暂时不到3.x。以下的处理方法主要针对我们的项目,可能并不通用。1、hibernate…

作者头像 李华
网站建设 2026/4/23 8:22:18

生成引擎优化(GEO)在内容创作与用户体验提升中的创新应用分析

生成引擎优化(GEO)正日益成为内容创作的重要工具。它不仅通过智能化技术为创作者提供高效的文本生成手段,还帮助优化内容的相关性和趣味性。借助GEO,创作者能够更加精准地满足用户的需求,从而提升整体用户体验。在这一…

作者头像 李华
网站建设 2026/4/23 8:21:44

城市多模型式交通网络仿真分析软件界面设计

01项目背景随着城市化进程加速,城市交通系统日益复杂,亟需高效、精准的管理工具。该项目旨在通过构建多模式、多尺度的交通仿真模型,精准模拟城市交通运行状况,为规划者、管理者提供科学依据。面对交通拥堵、排放污染等挑战&#…

作者头像 李华
网站建设 2026/4/23 8:21:24

2026年降AIGC保留原文实测:8000字论文改完意思一字不差

2026年降AIGC保留原文实测:8000字论文改完意思一字不差 先说一件让我血压飙升的事。今年1月份,一个研三的朋友找我帮忙看他的论文,他用某个降AI工具处理了一篇8000字的文献综述。打开一看,好家伙,AI率确实从91%降到了…

作者头像 李华
网站建设 2026/4/23 9:58:06

教师人事系统:让教职工管理更轻松高效

✅作者简介:合肥自友科技 📌核心产品:智慧校园平台(包括教工管理、学工管理、教务管理、考务管理、后勤管理、德育管理、资产管理、公寓管理、实习管理、就业管理、离校管理、科研平台、档案管理、学生平台等26个子平台) 。公司所有人员均有多…

作者头像 李华