问题描述:做scn恢复备库的测试,吭哧了几天,今天终于可以记录一下,遇到了很多坑,作为初学者可以更好地理解DG,主要先关闭备库,在主库做归档丢失备库无法同步,备库产生GAP,然后增量备份恢复备库,版本:SQL*Plus: Release 11.2.0.4.0 Production on Thu Nov 28 09:33:14 2019

1.备库操作:关闭备库,关闭之前首先要检查一下主备是否同步,否则会产生一些不必要的麻烦

SQL> select process,client_process,sequence#,status,block#,blocks from v$managed_standby;    检查一下备库进程,mrp进程正在等待应用进程,然后就需要重新应用一下保持DG同步

SQL> recover managed standby database cancel;                  关闭一下实时应用

SQL> select process,client_process,sequence#,status,BLOCK#,BLOCKS from v$managed_standby;        这个时候实时应用关闭,mrp进程是被关掉的,日志中都可以看到

SQL> alter database recover managed standby database using current logfile disconnect from session;    开启实时同步,这个时候mrp进程是起来的

SQL> select process,client_process,status,sequence#,block#,blocks from v$managed_standby;   查询一下wait状态变成了applying应用状态

2.关闭备库,前边都是废话,检查一下备库是否同步,下边取消实时应用,也就是关掉

SQL> recover managed standby database cancel;

SQL> shutdown immediate

3.主库上操作:模拟归档丢失,这时备库的已经关掉

SQL> alter system switch logfile;

SQL> select max(sequence#) from v$archived_log;   查询一下归档序号到了24号

SQL> archive log list                          这里写一下查找归档路径的方法,不用在意我这里的归档号,这是后来补上的图,当时没做这个操作,查到路径在USE_DB_RECOVERY_FILE_DEST,这是系统默认的闪回去内,这里也可以修改的。

SQL> show parameter log_archive_dest_1

SQL> desc v$archived_log

SQL> select name from v$archived_log;                 按照这个步骤来可以找到归档的路径

[root@orcl ~]# cd /home/oracle/flashdata/ORCL/archivelog/2019_11_27/                找到该路径,我切换了两次,所以序列号到24

4.这里对比一下备库的序列号,注意这里是备库截至到序列号是22,下边是我遇到的一个大坑

这里让主库模拟丢失的本来是23和24,但是备库一直出现不了GAP的状态,后来一看备库日志说的是23已经再被运输中(in transit),所以说这里如果备库重新启动23是直接被应用的,如果把23号归档mv掉,是产生不了GAP的,所以要模拟mv掉归档 就mv 24号归档,也就是切换的第二个归档,这里需要注意下

5.主库继续模拟丢失归档

[root@orcl 2019_11_27]# mv o1_mf_1_24_gxx0qq27_.arc /tmp    这里我随便挪到一个目录下

6.备库上:启动备库,查看GAP

SQL> startup mount

SQL> recover managed standby database using current logfile disconnect from session;

SQL> select process,client_process,sequence#,status,BLOCK#,BLOCKS from v$managed_standby;       已经可以看到mrp进程正在等待GAP24号

这个是日志截图都是gap24号

SQL>  select * from v$archive_gap;   这些都可以查到

7.主库上:查询到24号归档的scn号,然后做增量备份,这里要做的是在主库上查询到24号归档的scn号,也就是在对24号归档做操作之前的记录,然后在备库增量恢复

SQL> select FIRST_CHANGE#  from v$archived_log where SEQUENCE#  =24;    查询到24号归档之前的操作

SQL> select current_scn from v$database;   确认一下24号scn号的范围怎么样,这里是当前的归档号

8.主库上做基于1110582的备份

[oracle@orcl ~]$ rman target /

RMAN> backup as compressed backupset incremental from SCN 1110582 database format '/home/oracle/standby_%d_%T_%U.bak' include current controlfile for standby filesperset=5 tag 'FOR STANDBY';       这里要看一下哪个是控制文件,以及rman备份文件的权限问题

这里查看一下备份的文件

9.传输到备库  /home/oracle下

[oracle@orcl ~]$ scp *.bak 192.168.1.5:/home/oracle

10.在备库上进行恢复scn号,首先恢复控制文件

[root@orclstd oracle]# su - oracle
[oracle@orclstd ~]$ rman target /

RMAN> restore standby controlfile from '/home/oracle/standby_ORCL_20191127_0euhv1rm_1_1.bak';

RMAN> alter database mount;     到mount状态

RMAN> catalog start with'/home/oracle';     注册一下传输过来的备份,这里rman有一个文件头损坏的报错,这里不影响后边的报错,但是我没有理解

RMAN> recover database noredo; 增量恢复备份文件

11.验证,这里状态都变成了应用日志,这里也可以在主库多切换几次日志,看看备库有没有实时同步

SQL> recover managed standby database using current logfile disconnect from session;

Media recovery complete.
SQL> select process,status,sequence# from v$managed_standby;

基于SCN增量恢复DG同步的更多相关文章

  1. dataguard 归档丢失(主库中无此丢失归档处理),备库基于SCN恢复

    dataguard 归档丢失(主库中无此丢失归档处理),备库基于SCN恢复 环境: OS: CentOS 6.5 DB: Oracle 10.2.0.5 1.主备库环境 主库: SQL> sel ...

  2. Oracle 基于用户管理恢复的处理

    ================================ -- Oracle 基于用户管理恢复的处理 --================================ Oracle支持多种 ...

  3. Oracle DataGuard主库丢失归档日志后备库的RMAN增量恢复一例

    第一部分  问题描述和环境状态确认 ----1. 问题场景 Oracle DataGuard主库丢失archivelog,如何不重建备库完成同步? 在Oracle DataGuard主从同步过程中可能 ...

  4. 7.5 Point-in-Time (Incremental) Recovery Using the Binary Log 使用binay log 基于时间点恢复

    7.5 Point-in-Time (Incremental) Recovery Using the Binary Log 使用binay log 基于时间点恢复 7.5.1 Point-in-Tim ...

  5. SQL SERVER 基于数据库镜像的主从同步(数据库镜像实践汇总)

    SQL SERVER 基于数据库镜像的主从同步 Author:chaoqun.guo    createtime:2019-03-26 目录 SQL SERVER 基于数据库镜像的主从同步... 1 ...

  6. 5.7 并行复制配置 基于GTID 搭建中从 基于GTID的备份与恢复,同步中断处理

    5.7 并行复制配置 基于GTID 搭建中从 基于GTID的备份与恢复,同步中断处理 这个文章包含三个部分 1:gtid的多线程复制2:同步中断处理3:GTID的备份与恢复 下面文字相关的东西 大部分 ...

  7. 主库增加表空间导致DG同步失败

    由于主库表空间不足,同事给表空间增加数据文件,第二天收到反馈说备库未同步. 1.主.备查看归档序列号,发现主.备归档正常同步. SQL>archive log list 2.在主库端查询v$ar ...

  8. 十、linux-mysql下的mysql数据库增量恢复

    1.全量备份 全量数据就是数据库中所有的数据,全量备份就是把数据库中所有的数据进行备份. 备份所有库: mysqldump -uroot -ppoldboy -S /data/3306/mysql.s ...

  9. 9.11、mysql增量备份和增量恢复介绍

    1.增量备份: 增量数据是从上次全量备份之后,更新的新数据,对于mysql来说,binlog日志就是mysql的增量数据: (1)按天进行备份: 周一00点全量备份 周二00点全量备份 ...... ...

随机推荐

  1. apache+php+mysql搭建php环境

    1.首先准备解压包:zend-loader-php5.6-windows-x86_update1(nts版).php-5.6.37-nts-Win32-VC11-x86.mysql-5.5.19-wi ...

  2. javascript关于box2djs和matterjs之间的选择

    javascript关于box2djs和matterjs之间的选择box2djs资料少很多时候需要看c++版本资料 然后转化成js 还有转化成像素坐标不准确 matterjs文档丰富 上手容易 建议用 ...

  3. [.NET] 常用的reusable library

    1. NAudio NAudio is an open source .NET audio and MIDI library, containing dozens of useful audio re ...

  4. 二、netcore跨平台之 Linux部署nginx代理webapi

    上一章,我们讲了在linux上安装netcore环境,以及让netcore在linux上运行. 这一章我们开始讲在linux上配置nginx,以及让nginx反向代理我们的webapi. 什么ngin ...

  5. suseoj 1210: 会场安排问题 (贪心)

    1210: 会场安排问题 时间限制: 1 Sec  内存限制: 128 MB提交: 1  解决: 1[提交][状态][讨论版][命题人:liyuansong] 题目描述 假设要在足够多的会场里安排一批 ...

  6. Microsoft Dynamics CRM 批量上传web资源(非官方WebResourceUtility)并替换实体图标

    背景: 去年以前可以按照目录WebResourceUtility批量上传web资源,昨天发现用不了了,拿到WebResourceUtility源码改了一下都不是很方便,感觉官方写的太冗余,太长了,跟我 ...

  7. 概率的基本概念&离散型随机变量

    使用excel可以直接计算二项分布和超几何分布:

  8. ASP.NET Core gRPC 使用 Consul 服务注册发现

    一. 前言 gRPC 在当前最常见的应用就是在微服务场景中,所以不可避免的会有服务注册与发现问题,我们使用gRPC实现的服务可以使用 Consul 或者 etcd 作为服务注册与发现中心,本文主要介绍 ...

  9. Zxing QRCode

    1.拉伸 2.只能扫描一次 3.空指针异常

  10. WPF 修改屏幕DPI,会触发控件重新加载Unload/Load

    修改屏幕DPI,会触发控件的Unloaded/Loaded 现象/重现案例 对Unloaded/Loaded的印象: FrameworkElement, 第一次加载显示时,会触发Loaded.元素被释 ...