如何使用 RMAN 增量备份恢复 data guard log gap(日志断档)

主库查询最小scn 信息:

SQL> col current_scn for 999999999999999

SQL>  SELECT CURRENT_SCN FROM V$DATABASE;

select min(fhscn) from x$kcvfh;

select min(f.fhscn) from x$kcvfh f, v$datafile d

where f.hxfil =d.file#

and d.enabled != ‘READ ONLY‘     ;

CURRENT_SCN

----------------

12614205226673

MIN(FHSCN)

----------------

12614205076072

MIN(F.FHSCN)

----------------

12614205076072

+++++++++++++++++++++++++++++++++++++++++++++++=

1.----备库取消归档应用

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

2.----备库确定 lowest scn

col current_scn for 99999999999999

SELECT CURRENT_SCN FROM V$DATABASE;

select min(fhscn) from x$kcvfh;

select min(f.fhscn) from x$kcvfh f, v$datafile d

where f.hxfil =d.file#

and d.enabled != ‘READ ONLY‘     ;

取上述查询中的最小值

SQL> col current_scn for 999999999999999999

SQL> SELECT CURRENT_SCN FROM V$DATABASE;

CURRENT_SCN

-------------------

12611050666604

SQL> select min(fhscn) from x$kcvfh;

MIN(FHSCN)

----------------

12611050666605

SQL>  select min(f.fhscn) from x$kcvfh f, v$datafile d

where f.hxfil =d.file#

and d.enabled != ‘READ ONLY‘     ;  2    3

MIN(F.FHSCN)

----------------

12611050666605

3.-----on primary db 端根据第2步中获取的最小scn 来进行增量备份

BACKUP INCREMENTAL FROM SCN 12611050666604 DATABASE FORMAT ‘/lixora/ForStandby_%U‘ tag ‘FORSTANDBY‘;

4.-----拷贝备份到 备库

$scp ForStandby_07pqprm4_1_1 192.168.0.10:/tmp

5.----on standby db 在备库端注册备份片,注意用户属主,权限

RMAN> CATALOG START WITH ‘/lixora/ForStandby‘;

6.----执行恢复

RMAN> RECOVER DATABASE NOREDO;

7.-----on primary db 生成新的standby 控制文件

RMAN> BACKUP CURRENT CONTROLFILE FOR STANDBY FORMAT ‘/lixora/ForStandbyCTRL.bck‘;

8.----把主库端生成的standby 控制文件拷贝到备库,注意用户属主,权限

RMAN> BACKUP CURRENT CONTROLFILE FOR STANDBY FORMAT ‘/lixora/ForStandbyCTRL.bck‘;

scp /lixora/ForStandbyCTRL.bck 192.168.0.10:/tmp

9.------备份备库数据文件信息,用于在恢复新的standby 控制文件后比对

spool datafile_names_step8.txt

set lines 200

col name format a60

select file#, name from v$datafile order by file# ;

spool off

10.------on standby Db 恢复新的standby  控制文件

RMAN> SHUTDOWN IMMEDIATE ;

RMAN> STARTUP NOMOUNT;

RMAN> RESTORE STANDBY CONTROLFILE FROM ‘/tmp/ForStandbyCTRL.bck‘;

11.-----更新控制文件中的数据文件信息

使新的standby 控制文件生效

RMAN> SHUTDOWN;

RMAN> STARTUP MOUNT;

CATALOG START WITH ‘+DATA/zhglptdg/datafile/‘;

12.------on primary db。确保在备库发生日志gap 后,主库没有添加过新的数据文件。

SELECT FILE#, NAME FROM V$DATAFILE WHERE CREATION_CHANGE# > 12611050666604;

如果有记录,则不能进行witch 操作,可以参考一下文档来恢复:

Note 1531031.1 Steps to perform for Rolling forward a standby database using RMAN incremental backup when datafile is added to primary

13.-----重命名数据文件

RMAN> SWITCH DATABASE TO COPY;

14.-----再次确认在恢复增量备份片后主库和备库scn 差距没有太大

SQL> col current_scn for 99999999999999

SELECT CURRENT_SCN FROM V$DATABASE;

select min(fhscn) from x$kcvfh;

select min(f.fhscn) from x$kcvfh f, v$datafile d

where f.hxfil =d.file#

and d.enabled != ‘READ ONLY‘     ;

CURRENT_SCN

---------------

12614205662375

MIN(FHSCN)

----------------

12614205076072

MIN(F.FHSCN)

----------------

12614205076072

15.------ On standby database, 清理standby 日志组

select * from v$standby_log;

SQL> ALTER DATABASE CLEAR LOGFILE GROUP 1;

SQL> ALTER DATABASE CLEAR LOGFILE GROUP 2;

SQL> ALTER DATABASE CLEAR LOGFILE GROUP 3;

16.------启动redo data apply

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;

如果遇到一些由于设置 nologgling 而导致部分数据丢失,可以安装下述方法来进行恢复

To resolve NOLOGGING operations only, see Note 958181.1.

In addition to this information, see the online documentation:

10.2:  http://download.oracle.com/docs/cd/B19306_01/server.102/b14239/scenarios.htm#CIHIAADC

11.1:  http://download.oracle.com/docs/cd/B28359_01/server.111/b28294/rman.htm#SBYDB00759

11.2: http://download.oracle.com/docs/cd/E11882_01/server.112/e17022/rman.htm#CIHIAADC

后记

如果要启用实时应用,需要在备库添加standby redo log,大小应和主库一样,且比主库多一组;

ALTER DATABASE add standby LOGFILE GROUP 6 size 500M;

ALTER DATABASE add standby LOGFILE GROUP 7 size 500M;

ALTER DATABASE add standby LOGFILE GROUP 8 size 500M;

ALTER DATABASE add standby LOGFILE GROUP 9 size 500M;

启用命令:

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE;

具体内容参见:

oracle 10g standby database 实时应用 redo 数据

如何确保dg 已经正常,后台日志类似如下:

Mon Dec 22 10:03:04 CST 2014

RFS[1]: Archived Log: ‘+DATA/lixora/archivelog/1_23094_790186477.dbf‘

Mon Dec 22 10:03:25 CST 2014

Media Recovery Log +DATA/lixora/archivelog/1_23094_790186477.dbf

Media Recovery Waiting for thread 1 sequence 23095 (in transit)

Mon Dec 22 10:05:53 CST 2014

RFS[2]: Archived Log: ‘+DATA/lixora/archivelog/1_23095_790186477.dbf‘

Primary database is in MAXIMUM PERFORMANCE mode

RFS[2]: No standby redo logfiles of size 1024000 blocks exist

Mon Dec 22 10:05:55 CST 2014

Media Recovery Log +DATA/zhglptdg/archivelog/1_23095_790186477.dbf

Media Recovery Waiting for thread 1 sequence 23096 (in transit)

Mon Dec 22 10:05:57 CST 2014

RFS[2]: Archived Log: ‘+DATA/lixora/archivelog/1_23096_790186477.dbf‘

Primary database is in MAXIMUM PERFORMANCE mode

RFS[2]: No standby redo logfiles of size 1024000 blocks exist

Mon Dec 22 10:06:00 CST 2014

Media Recovery Log +DATA/lixora/archivelog/1_23096_790186477.dbf

Media Recovery Waiting for thread 1 sequence 23097 (in transit)

类似一下日志,表明日志只是传过来,但是没有应用:

Tue Dec 16 17:28:48 CST 2014

Primary database is in MAXIMUM PERFORMANCE mode

RFS[3]: Successfully opened standby log 7: ‘+DATA/lixora/onlinelog/group_7.360.857131345‘

Tue Dec 16 18:57:12 CST 2014

Primary database is in MAXIMUM PERFORMANCE mode

RFS[3]: Successfully opened standby log 8: ‘+DATA/lixora/onlinelog/group_8.361.857131375‘

Tue Dec 16 20:12:13 CST 2014

Primary database is in MAXIMUM PERFORMANCE mode

RFS[3]: Successfully opened standby log 7: ‘+DATA/lixora/onlinelog/group_7.360.857131345‘

Tue Dec 16 21:40:39 CST 2014

Primary database is in MAXIMUM PERFORMANCE mode

RFS[3]: Successfully opened standby log 8: ‘+DATA/lixora/onlinelog/group_8.361.857131375‘

如何可以确保dg 正常:

1)v$archive_log.applied  是否为yes

2)主库切换日志:ALTER system swtich logfile;

看备库v$database.CURRENT_SCN 是否有增长?

时间: 2024-11-10 01:05:35

如何使用 RMAN 增量备份恢复 data guard log gap(日志断档)的相关文章

MongoDB迁移方案-冷备份+增量备份恢复

QQ群:465614686 1.  环境构建步骤 (1)线上环境 都是副本集模式 3个业务访问节点+1个隐藏节点 (隐藏节点做hadoop.spark数据同步使用以及数据报表查询等) (2)主机以及配置说明 10.21.18.21  primary节点    优先级为100 10.21.18.22  secondary节点  优先级为90 10.21.18.23  secondary节点  优先级为80 10.21.18.24  隐藏节点       优先级为0 系统配置:128G内存,64Co

RMAN增量备份-备份保留策略-设置备份集属性

RMAN增量备份:增量备份级别:0,1,2,3,4BACKUP DATABASE也是创建数据库的完整备份,但是这种备份不同于增量备份的0级备份.这种备份不包含增量备份的0级备份,并不支持在此基础上再创建增量备份.1.建立增量级0级的全库备份 C:\Users\Administrator>RMAN 恢复管理器: Release 11.2.0.1.0 - Production on 星期三 12月 17 21:44:29 2014 Copyright (c) 1982, 2009, Oracle a

中小型数据库 RMAN CATALOG 备份恢复方案(二)

中小型数据库呈现的是数据库并发少,数据库容量小,版本功能受限以及N多单实例等特点.尽管如此,数据库的损失程度也会存在零丢失的情形.企业不愿意花太多的钱又要保证数据库的可靠稳定,可是苦煞了我这些搞DB的.接上一篇文章,中小型数据库 RMAN CATALOG 备份恢复方案(一),我们继续来给出基于中小型数据库的恢复的脚本与其部署. 1.RMAN还原shell脚本 [python] view plain copy print? --下面的shell脚本用于实现数据库的自动还原,还原成功后,数据库被关闭

【转】mysql增量备份恢复实战企业案例

来源地址:http://seanlook.com/2014/12/05/mysql_incremental_backup_example/ 小量的数据库可以每天进行完整备份,因为这也用不了多少时间,但当数据库很大时,就不太可能每天进行一次完整备份了,这时候就可以使用增量备份.增量备份的原理就是使用了mysql的binlog日志. 本次操作的MySQL版本为5.5.40 for Linux (x86_64). 增量备份要确保打开了二进制日志,参考mysql的日志系统: 1 mysql> show

利用增量备份恢复因归档丢失造成的DG gap

故障现象:data guard归档出现gap,悲剧的是丢失的归档在主库上被rman备份时删除了,丢失的归档大约有20几个,数据库大小约2T,如果重建DG将非常耗时间,因此决定利用增量备份的方式恢复DG,主要步骤如下:1.备份备库spfile文件SQL> create pfile='/home/ora/pfileRdg.ora' from spfile; 2.查看当前备库scnSQL> select to_char(current_scn) from v$database; TO_CHAR(CU

ORACLE 11g 用Duplicate恢复Data Guard 备库详细过程

1.先查找备库控制文件路径 先在备库上找出控制文件的路径,通过和主库一样,不过为了以防万一,还是check为好. SQL>  select name from v$controlfile; NAME -------------------------------------------------------------------------------- /Oracle/app/oracle/oradata/powerdes/control01.ctl /oracle/app/oracle/

xtrabackup增量备份恢复

一.安装percona-xtrabackup 1.下载软件 percona-xtrabackup-2.2.10.tar.gz 下载网址 http://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.2.10/source/ 2.修改profile export LD_LIBRARY_PATH=/opt/mysql/lib 3.编译安装 tar zxvf percona-xtrabackup-2.2.10.tar.gz cd pe

中小型数据库 RMAN CATALOG 备份恢复方案(一)

对于数据库的稳定性,高可用,跨平台以及海量数据库的处理,Oracle 数据库通常是大型数据库和大企业的首选.尽管如此,仍然不乏很多中小企业想要品尝一下Oracle腥味,因此在Oracle环境中也有不少中小型数据库.出于成本的考虑,通常有可能就搞个标准版了,跑在Linux上.谁叫Oracle太贵呢?对于中小企业而言,选择合理的才是最好的.对我们这些个搞DB的,贵的一定有贵的道理,我们也可以都进多几斗米.哈哈......典型的打工者的心态哟.言归正传,中小企业的成本限制了我们搞高可用,RAC和DG也

【转】在rman增量备份中,有差异增量和累积增量的概念

本文转自hougoo的博客 1.概念 差异增量:是备份上级及同级备份以来所有变化的数据块,差异增量是默认增量备份方式 累积增量:是备份上级备份以来所有变化的块 因为累积增量是备份上级备份以来所有变化的数据块,所以累积增量需要更多的备份时间,同时需要较小的恢复时间:而差异增量正好相反,它可以备份同级备份以来变化的数据块.所以会减少备份时间,但需要更多的恢复时间.在oracle 9中增量备份需要通过扫描整个数据库的数据块才能知道哪些数据块发生了变化,这是一个代价很大,时间很长的过程,而且由于增量备份