【生产篇】_Oracle ADG同步技术 ——DBA必备的一种“后悔药”

Oracle ADG的基本概念 备库与主库相比,可能暂时落后,但当它再次变为可用时,备用数据库将自动同步,而不会丢失数据。由于同步重做传输,这种模式可潜在地影响响应时间和吞吐量。可以通过配置一个低延迟网络,并为它分配足够应用高峰事务负载的带宽来将这种影响减到最小。最大可用模式适用于想要在生产站点上出现严重中断时确保获得零数据丢失保护,但不想让生产数据库受网络/备用服务器故障影响的企业。为防止备库发生网络故障,最好设置reopen参数,即使出现网络故障,也不会引发主库挂起,这时主库将从最大可用模式切换到最大性能模式。 阅读详情
													note-taker:Ethan_Yang
												recording time: 2019/09/23
														number of docs:11

【引言】

所有高可用性方案的本质就是“冗余”,当然预算开支也会随着高可用性要求的提升而变得异常昂贵。
大家在构建数据库架构的时候,在不考虑预算限制的前提下,往往都内含满足这么几个要求:高可用性、支持高并发、支持负载均衡、具有可扩展性,SLA会要求满足99.99%、99.999%或者更高逼格的99.9999%。在这几个要求中,个人认为高可用性是首要满足的,该要求可保障数据库架构中某台服务器异常不能正常提供数据服务时,数据库层面仍可提供稳定的数据服务。
Oracle层面的高可用性架构为RAC,熟悉此架构的朋友都知道,RAC能满足高可用性、高并发访问的要求,但这只体现在计算资源的冗余,数据源还是一个,当数据源出现损坏或异常时,便不能提供数据服务。此情况的一个解决方案是:使用RAC+ADG架构,通过构建ADG standby 库来保障数据层面的冗余。
在这里插入图片描述

根据自己的使用经验,接下来本文大致介绍ADG常用的2种用法:

1. 主库异常下的高可用性切换
2. 人为误操作下的数据恢复方法

ADG用途1:主库异常下的高可用性切换
1.此架构可满足当RAC主环境出现异常不能提供数据服务时,切换至ADG同步库以保障最短时间内恢复业务使用。常规切换时间大致在分钟级别,但这个时候需要更改应用程序的数据库连接;大部分应用程序为java开发,使用jdbc连接数据库的示例如下:

oracle URL:
jdbc:oracle:thin:@db-service-ip:1521:SID
jdbc:oracle:thin:@//db-service-ip:1521:SERVICENAME
MySQL URL:
jdbc:mysql://localhost:3306/数据库名称

如上,连接数据库实例需要三个信息:库服务器ip、库端口号、实例名/service。

当RAC环境异常需要切换至ADG库后,如RAC和ADG的实例名称配置不变的前提下,
应用程序链接数据库的信息由原来的RAC的service-ip/scan-ip更改为ADG的ip地址即可。此情况下,java程序中如有多处连接库的语句,可把db-service-ip设置为应用程序全局变量,此时只改db-service-ip的参数即可。但修改应用程序连接库配置后往往需要重启应用程序,从而导致业务中断时间包含:库的切换时间+应用程序修改库连接配置和重启时间,业务中断时间较长。

一个问题:这种情况下,如何缩短业务中断时间?
答案是:可以在ADG服务器上启动一个vip,此vip是RAC的service-ip/scan-ip,这样可省去应用程序修改库连接配置和重启的时间,大大缩减业务中断时长。具体在ADG服务器启动vip的命令如下:

[root@-rac]# ifconfig enp25s0f0:0 vip/24 up
其中,enp4s0f1为网卡信息,可在ADG服务器上通过命令ip a 或者/etc/sysconfig/network-scripts/路径下网卡信息来查看;vip设置为和RAC的service-ip/scan-ip一致。

    [root@-rac2 network-scripts]# cd /etc/sysconfig/network-scripts/
    [root@approd-rac2 network-scripts]# ls
    ifcfg-enp25s0f0  ifdown       ifdown-ppp       ifup-bnep   ifup-post  
   ...    

ADG用途2:人为误操作下的数据恢复方法
数据库在上述客观因素下,还有一个常犯的主观因素导致库异常:人为操作失误。

这种情况下有常规的3种常用方法:

  1. 在另一个环境中做库恢复,恢复到事故点前一刻,找到正确的数据后,把数据导入到生产环境中;在数据库较小,业务中断时间较短的情况下,可以采用此方案;
  2. 使用Oracle Flashback进行恢复,Oracle Flashback是一组Oracle数据库特性,闪回允许你查看过去一个时间数据库对象的状态,或者不借助数据库恢复,就可以恢复数据库对象到之前的一个时间状态;
  3. 使用logminner,LogMiner 是Oracle公司从产品8i以后提供的一个实际非常有用的分析工具,使用该工具可以轻松获得Oracle 在线/归档日志文件中的具体内容,特别是该工具可以分析出所有对于数据库操作的DML和DDL语句。该工具特别适用于调试、审计或者回退某个特定的事务。

上述三种情况要么恢复时间长;要么额外占用存储空间;要么人为分析复杂;比如Flashback/Logmnr(如果是DML类,可以使用闪回查询或者logmnr挖掘;如果是drop,可以使用flashback table,但若是字段的更改或者truncate等操作,上述就无法起到作用了)。

这里抛出一个问题:

在库到了T级别,业务不允许过长或不允许中断的情况,如何办?

一个方案:这种场景下就可以借助ADG端恢复。有同学问ADG不是实时同步吗,怎么能恢复到人为误操作前的数据,ADG有个参数为delay,利用延迟应用日志时间差,来迅速将standby recover到故障时间点之前,然后利用逻辑exp&imp来实现表级恢复。

操作步骤如下:

  1. 使用如下命令延迟同步库日志应用
    在备库指定delay属性,备库延迟60分钟应用主库日志
    sql> alter database recover managed standby database delay 60 disconnect from session;
    此参数单位为分钟,这里示例同步库与主库有60分钟的数据更新间隔,即有60分钟的“后悔药”;当然,也可以设置为任何时间段,恢复时间/日志应用时间和standby端口服务器性能、日志量有关。举例,我处管理的一个T级别的数据库,全备恢复为16个小时,我处设置的delay间隔一天为60*24=1140。

2. 需要恢复数据库时,使用如下步骤:
2.1 在standby端,执行时间点不完全恢复

SQL> alter database recover managed standby database cancel;
SQL>ALTER DATABASE RECOVER AUTOMATIC STANDBY DATABASE until time ’2019-07-03 17:00:0’;

2.2 逻辑导出导入;然后用逻辑备份的方式exp/expdp异常点前的数据,imp/impdp方式导入主库中,即可达到恢复数据的目的。

3. 然后主库恢复原有时间间隔
SQL> alter database recover managed standby database cancel;
SQL>alter database recover managed standby database delay 60 disconnect from session;

【总结】

  1. 本文重点引出了Oracle的一种高可用性架构RAC+ADG,点出RAC的局限性,描述了ADG的2种用途,简单一句话就是借助ADG构建的一份“数据冗余”,在RAC环境异常的情况下,提供一种短时间内恢复业务使用的方法;
  2. 同时,ADG也是一种“后悔药”,在人为误操作又不对主库操作的情况下,以最小代价恢复错误操作;
  3. 后续本公众号将给出具体的一个操作案例。

To be continued.

如果大家觉得此文有帮助,欢迎扫描关注如下微信公众号在这里插入图片描述

Oracle几种ADG搭建方式汇总 阅读详情

相关推荐

Oracle:ADG基础知识学习一20230515

以下为20230515所学习的adg基础知识一,温故而知新。

MaHoneChen1994的博客 662

Oracle ADG相关介绍

ADG原理、相关参数、增量修复

DBA成长之路 7857

Oracle【实战指南】19c ADG容灾配置与同步模式深度解析

本文详细解析了Oracle 19c Active Data Guard(ADG)容灾方案的实战配置与核心同步模式。内容涵盖从环境规划、主备库搭建到三种同步模式(最大性能、最大可用性、最大保护)的深度对比与选择策略,旨在帮助DBA构建高可用、高可靠的数据库容灾体系,确保业务连续性。

weixin_29309475的博客 134

数据库学习整理

数据库学习整理 Oracle数据库 oracle常用语句整理 资料:https://www.cnblogs.com/chinafine/articles/1755405.html 一、sql语句的三种类型 DML(操纵) insert update delete select DDL(定义) create alter drop DCL(控制) grant revoke commit rollback savepoint lock 查看表结构 --命令窗口查看表结构 describe employ

qq_45372365的博客 2503

高效解除Oracle DataGuard同步的实战指南

本文提供了高效解除Oracle DataGuard同步的实战指南。针对备用库故障、资源调配等场景,详细阐述了解除前的备份检查、核心四步操作(切换模式、清理参数、删除备用日志、重启验证)以及备用库的善后处理。重点强调了操作的安全性与彻底性,帮助DBA在确保主库稳定的前提下,干净利落地完成DataGuard架构的拆分。

weixin_29284657的博客 47

Oracle数据库存储双活配置实战:从概念到落地

存储作为数据库架构中的基石,一旦发生故障往往意味着业务中断甚至数据丢失,传统的备份恢复难以满足核心业务对RTO的严苛要求。存储双活技术通过让两台存储阵列同时承载读写、实时互为镜像,实现了RPO=0的Active-Active高可用模式,配合Oracle RAC与多路径软件,可将故障切换时间压缩至分钟级甚至秒级。本文从存储高可用的基础概念出发,剖析双活存储的工作原理与仲裁机制,并结合Data Guard、RMAN等容灾手段厘清其适用边界。针对Oracle生产环境,梳理了存储一致性组、主机多路径配置、ASM联动

weixin_32306957的博客 300

oracle同步数据adg_Oracle ADG同步技术,DBA必备的一种“后悔药”

【此为本人的第8篇文章】【引言】所有高可用性方案的本质就是“冗余”,当然预算开支也会随着高可用性要求的提升而变得异常昂贵。大家在构建数据库架构的时候,在不考虑预算限制的前提下,往往都内含满足这么几个要求:高可用性、支持高并发、支持负载均衡、具有可扩展性,SLA会要求满足99.99%、99.999%或者更高逼格的99.9999%。在这几个要求中,个人认为高可用性是首要满足的,该要求可保障数...

weixin_29322553的博客 2847

Oracle跨平台迁移:RMAN+XTTCONVERT 2.0实战指南

Oracle跨平台迁移是企业数据库升级中的关键挑战,其核心在于解决字节序差异(如AIX big-endian→Linux little-endian)、物理块兼容性与元数据一致性问题。RMAN作为Oracle原生备份恢复引擎,通过backup for transport、convert datafile和incremental level 1等机制,为跨平台表空间迁移提供底层支撑;XTT(Cross Platform Transportable Tablespaces)则定义了元数据缝合与平台适配的标准化流

weixin_33851604的博客 369

【生产篇】_ADG实操:如何吃下这颗“后悔药”

Note-taker:Ethan_Yang Recording time: 2019/09/23 Location:BJ T3 number of docs:11 【引言】 之前的一篇公众推文介绍了ADG的两种用途,详见...

db_murphy的博客 979

PID温控实验平台搭建(二)——PID进阶知识介绍及源码分享

最近,我突发奇想去翻阅了一些我本科期间所做的一些小项目,发现都挺有意思的!希望通过我的讲解文章可以帮助你们少走一些弯路!今天,我要分享的是一个PID温控实验平台的搭建,这是一个系列文章,手把手地教你学习和认识PID算法,了解这种算法在温度控制中的应用。由于我知识有限,如果出现一些错误,希望大家可以帮助我指出来,我们一起学习进步!!!

qq_35953617的博客 8049

CFturbo 2024保姆级教程:从流量扬程到三维叶轮,手把手搞定离心泵水力设计

本文提供CFturbo 2024离心泵水力设计的全流程实战指南,从流量扬程参数输入到三维叶轮模型导出,详细解析设计步骤与优化技巧。涵盖叶轮尺寸确定、子午面型线设计、叶片角度调整等关键环节,帮助工程师高效完成CAE辅助的离心泵水力设计,提升设计质量与效率。

weixin_42569329的博客 935

【生产篇】:如何提速oracle增备_块跟踪备份

【引言】 一个实际生产案例,因数据库数据量的增大,全备需68个小时,增备也需11小时。此场景下,如发生需要库恢复的场景,所需时长基本不能忍受,鉴于如下之前的两篇文章,使用dataguard 的delay参数做了24小时的日志延迟应用,可确保24小时内的任意恢复,大大缩短了异常时恢复数据的时间。 《ADG实操:如何吃下这颗“后悔药”》 《Oracle ADG同步技术,DBA必备的一种“后悔药”》 但...

db_murphy的博客 444

对于基本的捕鱼游戏设计思路(五)——鱼

今天讲捕鱼游戏里鱼的部分,也是比较关键的一部分。 一步一步来,先分析游戏,首先鱼是从屏幕外生成,然后它有个移动的动作,而且分为不同的类型。 然后就可以进入代码部分,首先设置一个计时器,控制时间生成鱼,而鱼分种类,所以就用到随机函数,随机输出一个值,传入switch语句,从而生成不同的鱼。 void GameScene::xiaoyuupdate(float dt){ Size visibl

Cineze的博客 1万+

【精品篇】oracle库手动误操后,如何使用Logminer进行恢复

【引言】 《ADG实操:如何吃下这颗“后悔药”》 《Oracle ADG同步技术,DBA必备的一种“后悔药”》 之前的这两篇文章讲述了dataguard恢复人为误操作的方法;当时在文中也简单介绍了其用途“LogMiner 是Oracle公司从产品8i以后提供的一个实际非常有用的分析工具,使用该工具可以轻松获得Oracle 在线/归档日志文件中的具体内容,特别是该工具可以分析出所有对于数据库操作的D...

db_murphy的博客 481

Hyper-V创建Ubuntu虚拟机设置固定IP

本文记录使用hyper-v创建ubuntu虚拟机,为虚拟设置固定IP且通过物理机可访问。

2623

详解Nacos集群搭建

在我们日常的开发当中,用的都是单点Nacos,这种模式,我们自己开发测试玩一玩还可以,但是到了企业的生产环境之下,你还这么玩的话,那肯定是要出大问题了。因为在企业当中,我们更加强调的是高可用,所以在企业的生产环境下,Nacos一定要做成个集群。

博客 1万+

oracle 12c 卡住 配置选项_神技_如何快捷下载Oracle补丁的方法?!

【引言】如何下载到Oracle系列产品的最新补丁,本文将讲解一种简洁快捷的方法,可谓粗暴直接。大家都知道Oracle官方发布补丁的频度为每三个月,最近一次的补丁集已经在2020年的7月份进行发布,后续四个季度的PSU发布时间Oracle官网也已经进行了发布,见下图链接:https://www.oracle.com/security-alerts/如何最快下载到Oracle系列产品的最...

weixin_42363854的博客 180

YOLOv8改进-利用图像去雾网络UnfogNet提升检测精度的探索【附核心模块代码】

YOLOv8-UnfogNet联合模型的提出为目标检测和图像去雾领域提供了一个新的思路。通过将图像去雾网络和目标检测网络结合,不仅可以提升在恶劣天气下的目标检测精度,还能够为实际应用中的自动驾驶、监控安防等领域带来更强的鲁棒性和适应性。随着去雾技术和目标检测算法的不断发展,我们相信,这种联合方法将在多个领域中获得更加广泛的应用,并为进一步提升图像质量和检测精度做出重要贡献。

一键难忘的博客 3202

mysql如何植入到oracle_ORACLE 12C EM 端口5500如何关闭及修改

绿盟软件扫描数据库oracle服务器,报出5500端口如下告警:大家都知道,ORACLE 12C EM的默认启动端口是5500,为防止异常攻击,建议将此端口对应的服务进行关闭,规避受攻击风险。先查看Oracle服务器上所运行的服务,命令如下:[oracle@bkdb ~]$ netstat -nltp | grep 5500(Not all processes could be iden...

weixin_33100285的博客 399

点云结构面智能识别与裂隙网络分析系统

点云结构面智能识别系统摘要 本系统采用深度学习与传统几何算法融合的方法,实现岩石结构面的智能识别与分析。系统包含7个核心模块:点云预处理、结构面识别、分组分割、参数计算、粗糙度分析、裂隙网络生成和可视化。技术路线结合PointNet++深度学习架构与RANSAC、区域生长等传统算法,通过预处理→深度学习识别→几何精修→参数计算→网络构建的流程实现高精度分析。预处理模块实现点云降噪、下采样和法向量估计,深度学习模块基于改进的PointNet++架构进行特征提取和分类。系统支持多种点云格式输入,提供完整的结构面

huanghm88的专栏 345

使用阿里天池平台训练YOLO目标检测模型

YOLO算法是一种单阶段目标检测算法,由Joseph Redmon等人于2015年提出。与传统的两阶段检测算法相比,YOLO将目标检测问题转化为回归问题,直接预测边界框的位置和类别概率,大大提高了检测速度。YOLOv1: 首次提出YOLO的核心思想,将图像分割成网格,每个网格预测边界框和类别概率。YOLOv2: 引入了批量归一化、锚框等改进,提高了检测精度。YOLOv3: 采用多尺度预测,增强了对小目标的检测能力。

步子哥的博客 1090

mysql补丁如何安装_神技_如何快捷下载Oracle补丁的方法?!

【引言】如何下载到Oracle系列产品的最新补丁,本文将讲解一种简洁快捷的方法,可谓粗暴直接。大家都知道Oracle官方发布补丁的频度为每三个月,最近一次的补丁集已经在2020年的7月份进行发布,后续四个季度的PSU发布时间Oracle官网也已经进行了发布,见下图链接:https://www.oracle.com/security-alerts/如何最快下载到Oracle系列产品的最...

weixin_39964528的博客 2042

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

oracle 中文语言集_PLSQL Developer中控制结果集表格自动提交

PLSQL Developer可以说是个让人又爱又憎的工具,“爱”是他的确提供了操作Oracle数据库非常丰富、方便的功能,“憎”是他的一些隐藏配置很可能是个“坑”,就像《PLSQL Developer几个可能的隐患》介绍了几个场景。其他历史文章,《PLSQL Developer中文乱码问题》《PLSQL Developer免密登录》今天朋友碰巧问了个问题,PLSQL Developer...

weixin_39953236的博客 156

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

mysql 表字段信息从一张表迁移到另一张表_混淆的行迁移和行链接

开发提出需求,要向一张已经包含100多个字段的表再新增字段,技术上可行,但是这种操作,究竟有何副作用?这里就引出了行迁移和行链接这两个容易混淆的概念,整理一下,算是让自己重新认识下。《Concept》对这两个概念的解释:当第一次向表中插入行,由于行太长,不能存储在一个数据块中时,就会发生行链接,此时,数据会被拆成2个或者多个部分,存储在多个数据块中,这些数据块会构成链式结构,因此叫做行链...

weixin_40008946的博客 158

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Oracle adg主从同步

Oracle ADG 搭建

sx796的博客 3068
上一篇: 【排故篇】_啥是无效对象,出现时如何破?
下一篇: 【生产篇】_ADG实操:如何吃下这颗“后悔药”
db_murphy
博客等级 码龄11年 145粉丝 197原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值