自前些天写了一个脚本之后,今天特意测试了一下,没想到一下子发现了一个大问题。有一套一主两备的10gR2环境,一个异机备库一直在READ ONLY状态,也就意味着数据库在打开之后一直忘了恢复应用归档,然后在某一天发现时,已经延迟了好几个月。无论怎样,还得庆幸发现了这个问题。
目前来看一种行之有效的方法就是重搭备库,但是这种修复方式需要大量的磁盘空间,而且需要恢复的时间较长,怎么改进呢,可以考虑通过基于SCN的增量备份来跳归档恢复。目前的环境是一主两备,再怎么改进呢,我们可以基于备库1来完成基于SCN的增量备份,在备库2完成恢复,对于主库几乎是完全透明,无影响的。
整个示意图如下,通过在Standby1上面基于SCN导出增量备份,拷贝到备库2上去恢复,最后再和主库汇合即可。

所以在这个问题上,还是对10g的DG Broker颇有微词,因为11g中是ADG不会存在这类问题,在10g中备库为READ ONLY,哪怕丢失了大量的归档,备库也是检查通过的。
直到在切换到恢复模式的时候,后台日志还不清楚到底发生了什么。

其实这个时候问题已经很严峻了。
我们首先在备库1上查看SCN的情况。
idle> col CURRENT_SCN format 99999999999999999999999999999
idle>SELECT CURRENT_SCN FROM V$DATABASE;
                   CURRENT_SCN
------------------------------
                  188670376120

备库2上的SCN情况如下:
SQL> col CURRENT_SCN format 99999999999999999999999999999
SQL> SELECT CURRENT_SCN FROM V$DATABASE;
                   CURRENT_SCN
------------------------------
                  188611153769
可以看到延迟已经很大了。可能通过这个数字对比还不够明显。从后台日志可以看到,上一次启动到READ ONLY的时候是在3月份了,也就意味着这个问题已经过去了快半年了。这种情况下增量恢复还有希望吗,在主库端查看了下最近的归档情况,发现这个数据库的数据变更频率很低,基本是每天一次,所以近半年的时间大概是150~180个左右的归档,好像还能勉强接受。

在备库1增量导出的情况如下,我们基于SCN 188611153769,也就是备库2上一个较旧的SCN
[@TEST.test.com backup_stage]$ rman target /
Recovery Manager: Release 10.2.0.4.0 - Production on Mon Aug 15 11:32:56 2016
Copyright (c) 1982, 2007, Oracle.  All rights reserved.
connected to target database: TEST (DBID=1731005384, not open)
RMAN> BACKUP INCREMENTAL FROM SCN 188611153769 DATABASE FORMAT '/home/oracle/backup_stage/stest2_%U' tag 'FORSTANDBY';
在真实环境尝试,和实验还是有很大的差别,短暂的等待后竟然抛出了一个错误。

不过虚惊一场,这个是备份的路径问题,导致空间不足,切换了一个路径再次尝试,很快就完成了,大概用了7分钟的时间。

这个时候拷贝到备库2上会恢复,当然还是需要先恢复控制文件,可以从主库生成一个镜像过去,或者从备库2拷贝也可以。
否则在恢复的时候会抛出类似下面的错误。

备库2先注册这个增量备份,/U01/backup_stage/increment_backup是增量备份存放的路径
[@stest4.test.com ~]$ rman target /
RMAN> catalog start with '/U01/backup_stage/increment_backup';
Starting implicit crosscheck backup at 15-AUG-16
using target database control file instead of recovery catalog
采用下面的方式恢复:
RMAN>  recover database noredo ;
恢复的时间更短,大概是1分多钟。

后台的日志会输出类似下面的内容:

恢复后查看SCN的情况如下,已经有了更新。
SQL> col CURRENT_SCN format 9999999999999999999999
SQL> SELECT CURRENT_SCN FROM V$DATABASE;
            CURRENT_SCN
-----------------------
           188670376925
后面所做的就是开启恢复模式。
SQL> recover managed standby database disconnect from session;
Media recovery complete.
这个时候查看数据库日志就会发现备库2很快就追评了归档GAP,一切又恢复了正常。
通过这个案例可以看到Data Guard的恢复在有些时候还是有一些捷径可走,明白了原理,加上点运气,问题就可以引刃而解。

Data Guard跳归档恢复的案例相关推荐

  1. Oracle BBED单个数据文件跳过所有归档恢复

    场景描述: 数据库利用备份进行恢复时,需要执行restore+recover,restore利用备份片恢复数据文件,recover是进行归档日志应用到最新状态,当我们所有归档日志丢失时,可以利用bbe ...

  2. Oracle Data Guard (RAC+DG) 归档删除策略及脚本

    1.Data Guard 主库归档文件删除策略: 当我们设置: RMAN>configure archivelog deletion policy to applied on standby; ...

  3. oracle11gr2 active data guard,Oracle11gR2 Aactive DataGuard(手动)装配部署及维护文档(三)之升级及rman...

    Oracle11gR2 Aactive DataGuard(手动)安装部署及维护文档(三)之升级及rman l          第六部分: dataguard其它管理问题 一.滚动升级DG 升级概要 ...

  4. 炎炎夏日-恩墨小王子带你玩转“数据卫士”Data Guard

    杨俊 云和恩墨西区技术专家 本文整理自上周四晚云和恩墨大讲堂分享的关于主题:炎炎夏日 - 恩墨小王子带你玩转"数据卫士"Data Guard. 在数据库的世界里有一个被称为数据卫士 ...

  5. Oracle Data Guard 角色转换(Role Transitions)

    查询视图V$DATABASE的DATABASE_ROLE列可以看到数据库当前的角色. 1.角色转换介绍 Oracle Data Guard让你可以使用SQL语句或者通过Oracle Data Guar ...

  6. Oracle Data Guard 理论知识

    RAC, Data Gurad, Stream 是Oracle 高可用性体系中的三种工具,每个工具即可以独立应用,也可以相互配合. 他们各自的侧重点不同,适用场景也不同. RAC 它的强项在于解决单点 ...

  7. [置顶] 如何搭建一个 Data Guard 环境

    在Blog里零零散散的讲了一些DB 维护的东西,比较杂,也比较散. 这里就Oracle Data Guard 这块做一个小结. 主要是流程上的东西. 做个参考,以后装DG,照这个流程走就ok了. 一. ...

  8. Data guard概念篇一(转载)

    本文转载至以下链接,感谢作者分享! http://tech.it168.com/db/2008-02-14/200802141545840_1.shtml 一.Data Guard配置(Data Gu ...

  9. Oracle9i数据库Data Guard实施及维护手册 1

    Oracle9i数据库Data Guard实施及维护手册 By Kamus 一.Data Guard介绍 备用数据库(standby database)是ORACLE 推出的一种高可用性(HIGH A ...

最新文章

  1. js学习笔记(执行上下文、闭包、this部分)
  2. eclipse打开jar包出现乱码问题解决方法
  3. springmvc+batis applicationContext-mybatis.xml 具体说明
  4. JZOJ 5393. 【NOIP2017提高A组模拟10.5】Snake vs Block
  5. DLL引用之SQLite在Win32、64下的兼容
  6. python卡尔曼滤波跟踪_使用卡尔曼滤波器以圆周运动跟踪机器人
  7. 计算机专业跨专业考文科,给07年想跨专业考湖大计算机专业的同学
  8. com词根词缀_词根词缀记忆字典(com.ghosun.dict) - 4.8.8 - 应用 - 酷安网
  9. vs c语言绘图函数,C语言图形编程(绘图函数部分)
  10. 这是你不曾见过的最全的ASO应用市场优化方式(上篇)
  11. 2022最详细最快微信聊天记录备份&导出方案
  12. 稞麦显示无法连接服务器,Modern Ops无法连接服务器是什么原因
  13. UWB定位的3种算法:TWR、TOA和TDOA算法
  14. 生产线平衡优化毕业论文【flexsim仿真】
  15. IPv6子网数量计算器
  16. win10便签常驻桌面_盘点Win 10最好用的10个功能,排名第一的竟然是……
  17. 机器视觉工程师的几种类型
  18. android launcher 4x5应用排列,修改华为刷机包桌面应用图标布局排序的方法
  19. 91免费视频Redis+Lua解决高并发场景在线秒杀问题
  20. 李开复给大学生的第3封信:成功、自信、快乐

热门文章

  1. 数据重现之11.5.2:RAID5同步与异步的判断
  2. 第一太阳能公司(First Solar)在罗斯资本公司的评级上调
  3. 3、InterruptedException
  4. HT for Web的HTML5树组件延迟加载技术实现
  5. Android应用开发系列课程------ViewPager与ViewFlipper较量
  6. 【转】面试题:将多个集合合并成没有交集的集合
  7. Android入门篇二:使用意图在Activity之间传递数据
  8. 上一季诺基亚销售下跌28%
  9. [收藏]上班族的真实写照
  10. 基于日志的交换机故障预测