背景(报警不断的假期) 最近因灰度测试环境空间问题导致删除了部分未应用的归档,从而导致DG同步延迟。 假期结束后,发现归档差距有点大,于是考虑通过Oracle的增量备份恢复来修复DG的同步问题。 apply lag'); VALUE ---------------------------------------------------------------- +00 00:00:00 – 至此整个修复完成 总结 操作文档下载:DG-增量恢复同步操作 增量备份:是基于以全量备份(0级备份)为基础的数据块的变化进行备份。
环境:Oracle 11.2.0.4 DG 故障现象: 客户在备库告警日志中发现GAP sequence提示信息: Mon Nov 21 09:53:29 2016 Media Recovery Waiting information to resolve archivelog gaps. ------------------------------------------------------------ 修复过程 STANDBY CONTROLFILE FROM '/home/oracle/std_ctl.bak'; RMAN> alter database mount; 8.清空备库日志组(这里不用) 本次DG 9.备库重设flashback(根据实际情况选做,这里本身就没开启) 备库重设flashback(根据实际情况选做,这里DG环境备库本身就没开启,所以不用操作) SQL> ALTER DATABASE shoucall/trace/alert_shoucall.log Reference http://www.xifenfei.com/2011/07/data-guard出现gap-sequence修复
客户某天反馈说:”DG库自0221以来就已经不同步了,请核查。“ 于是我远程登录进行查看。 SEQUENCE#) ---------- -------------- 1 136973 2 132693 4 149599 3 133277 --DG
实例冗余——第一考虑的目的 处理能力和性能的提升 DG DataGuard,数据卫士,一种数据库级别的高可用性(HA)方案,用作数据容灾解决方案。 对于联机事务处理(OLTP,数据量不太大)非常合适,对于联机分析处理(OLAP,数据量太大),只能选择关键数据创建DG,常规数据,选择其他方式备份。 容灾级别的DG: ? 如何选择DG的保护模式 影响DG保护模式选择的最大因素就是网络质量,如果网络质量比较好,比如本地的局域网,则可以选择最高可用模式。如果网络质量一般,则选择最大性能模式。 DG中standby数据库的类型 物理standby数据库:physical standby databases 物理Standby与Primary数据库完全一模一样,在物理数据库磁盘上具有主库相同架构的块
最近从同事那儿接手了一套新环境,备库因为服务器问题已经下架,重新配了一台服务器,所以需要搭一套备库,主库已经配置好了,而且同事已经把在主库把dg broker配好了。 DGMGRL> show configuration; Configuration - dg_test Protection Mode: MaxPerformance Databases: duplicate同步之后,开始启用dg broker,因为主库的dg broker配置已经有了,所以直接添加备库。 dg broker的错误解释 $ oerr dgm 17016 17016, 00000, "failed to retrieve status for database \"%s\"" // *Cause 备库数据库启动了,但是dg broker的验证还是照样有问题,这个时候就仔细比对show database verbose中的信息 发现主库的信息有一点特别。
同事说dg不能同步,让我帮忙看看,我用自己写的2个视图查看了下,首先发现主库没有常见的LNSn进程,下意识的认为主库这个进程没有启动,需要切换日志唤醒LNSn进程,事实上也这样做了,(alter system 本文涉及到以下的内容: ① 检查物理DG是否正常的常用SQL ② 日志传输进程LNSn、NSS、NSA的区别 ③ 日志传输的2种方式:lgwr和arch,10g和11g有了变化 ④ dg的架构图 1.1 DG架构图 下图是小麦苗绘制的dg结构图,对于里边的redo buffer到底如何传递到LNSn,众说纷纭,10g和11g也有不同,但这个不是我们今天讨论的内容,详细点的资料可以参考:http:// 1.2 DG日志传输 DG架构可以按照功能分成3个部分: 1) 日志发送(Redo Send) 2) 日志接收(Redo Receive) 3) 日志应用(Redo Apply) 我们今天着重来讲讲这里的日志发送的部分 enable'; alter system switch logfile; ③ 重启备库、主库 1.3.2 LNS进程的后台表现形式 经过小麦苗的研究,日志传输若采用LGWR进程来传输,则在10g dg
目录 一、下载镜像 二、DG环境初始化 三、主库做闪回数据库操作 四、备库做闪回操作 五、查询主备库是否实时同步 六、总结 本文介绍一下,在DG环境中,若主库做了闪回数据库的操作后,备库如何通过flashback 操作,继续和主库保持同步,而不用重新搭建DG。 一、下载镜像 小麦苗DG环境的hub地址: https://hub.docker.com/r/lhrbest/dg_pri_11.2.0.4/tags https://hub.docker.com/r/ /lhrbest/dg_pri_11.2.0.4:1.0 lhrbest/dg_pri_11.2.0.4:1.0 [root@docker36 ~]# docker images | grep dg 2、在DG环境中,若主库做了闪回数据库的操作,那么备库必须做相关的闪回操作才能恢复DG的同步关系。 本文结束。
这些包括: 实时查询 - 负责将主库最新的数据刷新到物理备库 自动块修复 - 自动修复对坏的数据块进行修复 远程同步 - 任何情况下的主备同步,实现零数据丢失保护。 二、应用场景分析 DG可以用在容灾测试上,在金融、电力、能源行业,生产上常见的容灾架构为ADG,尤其是异地灾备。
DataGuard 物理备库,正常为 mount 状态,如果想要进行查询,需要转为 ADG,即 read only 状态!
♣ 题目部分 在Oracle中,将一个物理DG转换为逻辑DG有哪些步骤呢? ♣ 答案部分 1. 主库构建LogMiner字典 这里字典表空间尽量大一点,不然逻辑DG搭建可能不能同步,另外,如果表空间出现问题就不能删除表空间,那么应该先把表空间数据移除,再删除LOGMNRTBS的数据。 select inst_id,name,open_mode,database_role,protection_mode from gv$database; archive log list; ---逻辑DG
♣ 题目部分 在Oracle中,什么是DG?DG有哪些优缺点? ♣ 答案部分 首先,DG(Data Guard,数据卫士)不是一个备份恢复的工具,然而,DG却拥有备份的功能,在物理DG下它可以和主库一模一样,但是它存在的目的并不仅仅是为了备份恢复数据,应该说它的存在是为了确保企业数据的高可用性 每个技术都有其优缺点,下面来看看DG有哪些优缺点。 DG的优点主要有以下几点内容: ① 灾难恢复及高可用性。 ② 全面的数据保护。 ③ 有效利用系统资源。 DG的缺点主要有以下几点内容: ① 由于传输整个日志文件,所以,需要较高的网络传输带宽。 从Oracle 11g开始,ADG可以在数据库打开的情况下应用日志,这极大地提高了DG的应用范围。 ③ 逻辑备库不能支持某些特定的数据对象和数据类型。
在最近的一个大型项目中,用户提到由我们云提供商进行Oracle数据库的备份、迁移集成工作,是选择用DG、还是RMAN?我们今天来分析一下。 ? 例如如果我们执行了误删除,DG也会将备库执行删除操作。 RMAN(Recovery Manager)是物理备份工具,也是Oracle官方唯一的数据备份工具。 2、数据备份的场景: 如果是关键型的业务数据备份,一般是DG+RMAN同时上。 用DG实现秒级的数据同步,即使主用数据库的硬盘坏掉,备用数据库的数据也能完全一致。 用DG恢复数据很快,主、备用数据库实际是同时处于运行状态,通过切换数据库就可以将数据库进行快速切换,恢复业务。同时,DG不仅是用于备份场景,也用于读写分离高性能的场景。 为了避免同时对主库进行DG+RMAN操作而影响主库的性能,在实际生产场景中,一般建议:对主库进行DG操作,而在备库上进行RMAN定期备份。
本篇梳理DG的架构和一些概念知识,重新梳理的目的是加强理解,也方便复习,基于11gR2版本写的,不包含12c新特性。如果能帮助到新接触DG的朋友,那就再好不过。 原理是日志文件从主库传输到备库,然后在备库上应用这些日志,从而使备库与主库保持同步 DG由一个primary数据库及一个或多个standby数据库组成,备库最多9个 主库:即被大部分应用访问的生产数据库 ,该库即可以使单实例数据库,也可以使RAC 备库:备库也支持单机或RAC,备库正常为只读状态 二、DataGuard分类 DG分为物理DG、逻辑DG 物理DG(生产环境使用多): 物理DG应用的是主库的归档日志 ,物理DG无论从逻辑结构和物理结构都是和主库保持一致; 通过块拷贝方式同步,使用数据库recovery恢复功能来应用主库的更改; 通过接收并应用主库的 redo log 以介质恢复的方式(Redo Apply )实现同步 逻辑DG: 逻辑DG应用的是主库归档日志中提取的SQL语句,逻辑DG则只需保证逻辑结构一致; 通过接收 primary数据库的 redo log并转换成 sql语句,然后在 standby
在上云后的Oracle数据灾备场景中,我们经常听到DBA迁移工程师讲到“在这个项目中用ADG进行数据实时备份,ADG比DG更好!”。究竟ADG作Oracle数据灾备的优势在什么地方? ? 一、ADG主要解决了DG时代读写不能并行的问题 DG时代的数据同步方式如采用Redo Log的物理方式,则数据库同步数据快、耗用资源低,但存在一个大问题。 Oracle DG提供了易于使用的方式来避免这种用户错误。DBA可以在主数据库、备用数据库中同时使用闪回数据库功能,以快速将数据库恢复到一个较早的时间点上,从而取消这个误操作。 三、Oracle的DG、RAC一般是联合使用 RAC主要解决系统应用的故障,它不提供数据故障的快速、自动恢复,它还提供数据库应用的伸缩能力,提供应用级的保护。 ? DG只提供数据的备份、恢复能力,提供数据级的保护。 ? 四、建议使用DG做数据实时同步,而不是第三方的磁盘copy工具 原因三点: 1、DG具有延时写入数据功能,可以避免误操作,而第三方工具没有。
DG环境中,主库使用rman做不完全恢复后,备库如何通过flashback操作,继续和主库保持同步,而不用重新搭建DG。 一、下载镜像 小麦苗DG环境的hub地址: https://hub.docker.com/r/lhrbest/dg_pri_11.2.0.4/tags https://hub.docker.com/r/ /lhrbest/dg_pri_11.2.0.4:1.0 lhrbest/dg_pri_11.2.0.4:1.0 [root@docker36 ~]# docker images | grep dg 下边进行修复操作。 2、在DG环境中,若主库做了不完全恢复,那么备库必须做相关的闪回操作才能恢复DG的同步关系。
Oracle DG测试failover和后续恢复报告 一、概述 二、验证过程: 2.1 A库异常关闭 2.2 B库进行failover切换为新主库 2.3 要求C库成为新主库的备库 2.4 要求A库成为新主库的备库 三、结论 一、概述 本文是针对在DG灾备环境进行failover操作以及后续恢复的报告。 二、验证过程: 2.1 A库异常关闭 A库: SQL> shutdown abort 2.2 B库进行failover切换为新主库 failover 标准步骤如下: #取消DG应用 ALTER DATABASE 接下来想要C库成为B库(新主库)的备库,就需要尝试在B库上配置DG参数,使得B库的归档可以传输到C库。 A库修复后,也可以通过failover之前的现有备份集来恢复到failover之前的状态,而不需要在新主库重新去备份。
模拟生产搭建Standby RAC实验环境(11.2.0.4 DG) 环境:RHEL 6.5 + Oracle 11.2.0.4 GI、DB 1.需求背景介绍 2.准备工作 3.主库配置 4.备库配置 目前出于容灾的考虑,计划在我的NAS环境中构造一套DG灾备环境,这里规划也是一个2节点的Standby RAC. Resources -------------------------------------------------------------------------------- ora.DATA1.dg 3.主库配置 之前在《Oracle 11g DG配置简明版》文章中,已经简明介绍过单实例11g DG的搭建过程。 关于这两种方式的差异可以参考《ARCH和LGWR进程同步DG日志的区别》。
将详细介绍另一个 DG 绕过,而不是禁用整个策略。 /AssemblyName mscorlib 我已经更新了我的 DG 绕过 Github存储库以包含此绕过。 与我在AddInProcess中披露的前一个相比,这种 DG 绕过的主要优点是它易于用于持久性。 只需使用适当的命令行在启动文件夹中添加运行InstallUtil或 LNK 文件的计划任务,登录时将运行代码 DG 绕过。 当然不是,即使不是完美的,DG 也是一种很好的方式,可以将系统限制为一组非常特定的签名可执行文件。
在ADG下主库或者备库的坏块可以利用未损坏的块来自动修复。 异构平台搭建DG得到进一步增强。 在ADG模式下,支持对临时表的DML操作 在ADG模式下,支持序列的使用 在RAC下切换DG,不再需要关闭其它实例,只保留一个实例用于DG切换,可以使用新命令,ALTER DATABASE
♣ 题目部分 在Oracle中,物理DG和快照DG相互转换的步骤有哪些? ♣ 答案部分 如何将一个物理DG转换为一个快照DG呢? 只在节点一执行: alter database convert to snapshot standby; 最后启动快照DG到OPEN状态: startup 如何将一个快照DG转换为一个物理DG呢? DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION; & 说明: 有关物理DG 、逻辑DG和快照DG的搭建过程可以参考我的BLOG:https://ke.qq.com/course/318038?