增量备份解决DataGuard库日志GAP

有时候备库滞后于主库很长时间了,而主库的归档日志已经不存在了,此时的日志间隔如何消除那,很多人选择重建备库,这个是很麻烦的,尤其当主库数据量很大的时候,此时我们还有另外一种选择,那就是使用增量数据库备份来前滚备库,消除日志间隔。

具体作法如下:

1.备库查看丢失的归档时的scn号

idle> select current_scn from v$database;

CURRENT_SCN

-----------

96458277

2.主库创建基于丢失归档scn号为起始的增量备份(要确定主库和备库的目标目录有足够的空间,这里使用/tmp文件夹)

RMAN>

run{

BACKUP DEVICE TYPE DISK INCREMENTAL FROM SCN 96458277 DATABASE FORMAT '/tmp/stb_bk/%U_for_stb.bk' include current controlfile for standby;

}

3.备份好之后,从主库传到备份库的目录中,可以与上文的目录不同。

RMAN> CATALOG START WITH '/tmp/stb_bk/';

4.查看一下controlfile的位置,因为接下来要使用备份的控制文件。

idle> show parameter control

再查看一下standby_log文件的位置,因为接下来可能需要重建。

idle> select *from v$logfile ;

5.使用如下命令在rman中恢复

RMAN>

run{

restore standby controlfile to '/tmp/stb_controlfile01.ctl';

recover database noredo;

}

如果报如下错误,可能是recover managed standby命令正在执行:

ORA-19870: errorwhile restoring backup piece /tmp/stb_bk/05n5a31s_1_1_for_stb.bk

ORA-19573: cannotobtain exclusive enqueue for datafile 1

执行如下命令,或者重启数据库到mount状态:

idle>alter database recover managed standby database cancel ;

然后在rman中再次执行:

RMAN>

run{

restore standby controlfile to '/tmp/stb_controlfile01.ctl' ;

recover database noredo;

}

6.关闭数据库,将恢复出来的备份控制文件覆盖掉原有的控制文件。

CentOS 6.4下安装Oracle 11gR2(x64)

Oracle 11gR2 在VMWare虚拟机中安装步骤

Debian 下 安装 Oracle 11g XE R2

Oracle Data Guard 重要配置参数

基于同一主机配置 Oracle 11g Data Guard

探索Oracle之11g DataGuard

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

Oracle Data Guard 的角色转换

Oracle Data Guard的日志FAL gap问题

Oracle 11g Data Guard Error 16143 Heartbeat failed to connect to standby 处理方法

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/de7ea5fe94e09e3232ef582eb2727c81.html