Oracle DG备库出现GAP解决

一.环境准备

准备Oracle dg环境

主库ip		192.168.1.217		oracle
备库ip		192.168.1.218		dg

二.模拟备库出现GAP

2.1 归档日志存在

备库先关闭日志应用
alter database recover managed standby database cancel;
主库进行几次日志切换
alter system switch logfile;

将主库归档日志移动到其他路径下 备库的归档日志删除
在这里插入图片描述
在这里插入图片描述

此时备库开启日志应用
alter database recover managed standby database using current logfile disconnect from session;

观察备库的警告日志 发现出现gap
在这里插入图片描述

2.2 归档日志丢失

备库先关闭日志应用
alter database recover managed standby database cancel;
主库进行几次日志切换
alter system switch logfile;

随后在主库和备库删除对应的归档日志
在这里插入图片描述
在这里插入图片描述
启动备库日志应用 查看备库警告日志 发现产生GAP
在这里插入图片描述

三.归档日志存在 解决GAP

查看备库缺失的归档日志编号,如果主库上面存在或有对应的备份,则可以直接拉到备库上然后进行手动注册,或其他备库中有此归档日志也可以直接拉到出现GAP的备库上进行恢复

主库拷贝备库缺失的归档日志到备库
[oracle@oracle ~]$ scp o1_mf_1_76_kxmz0d5k_.arc o1_mf_1_77_kxmz0h9f_.arc 192.168.1.218:/oradata/archivelog
如果归档日志较少  可以备库登陆到sqlplus 手动进行归档日志注册
alter database register physical logfile '/oradata/archivelog/o1_mf_1_76_kxmz0d5k_.arc';
alter database register physical logfile '/oradata/archivelog/o1_mf_1_77_kxmz0h9f_.arc';
如果需要注册的归档日志较多,一个一个注册比较麻烦 则可以登陆到rman进行手动批量注册,批量注册的归档要在同一目录下
rman target /
catalog start with '/oradata/archivelog/';

注册后查看警告日志 发现日志正常接收并应用
在这里插入图片描述

四.归档日志丢失 解决GAP

如果归档日志丢失又无任何归档日志备份的情况下,通过增量scn备份来对备库进行恢复

查看备库当前scn号
SYS@orcl>col current_scn for 9999999999999
SYS@orcl>select current_scn from v$database;

在这里插入图片描述

主库通过此scn号进行rman增量备份  #注意 此备份方式无法手工分配通道
rman target /
backup device type disk incremental from scn 1300145 database format '/oradata/db_backup/%d_SCN_%T_%s_%p.bak' tag 'for standby';
backup current controlfile for standby format '/oradata/db_backup/standby_ctrl.bck';
备份好后将备份文件传到备库
[oracle@oracle db_backup]$ scp * 192.168.1.218:/oradata/db_backup
备库关闭日志应用  关闭数据库并启动到nomount状态
alter database recover managed standby database cancel;
shutdown immediate;
startup nomount;
备库登陆rman进行控制文件恢复
rman target /
restore standby controlfile from '/oradata/db_backup/standby_ctrl.bck';
alter database mount;
清除控制文件中的无效备份  并注册主库传过来的备份集
crosscheck backup;
crosscheck archivelog all;
delete noprompt expired backup;           
delete noprompt expired archivelog all; 
catalog start with '/oradata/db_backup/';
备库进行进行增量恢复
recover database noredo;
恢复后打开数据库并开启日志应用
alter database open;
alter database recover managed standby database using current logfile disconnect from session;

五.检查数据同步情况

两种方式解决GAP后检查主备同步情况

主库进行几次日志切换
alter system switch logfile;
查看ADG主备同步时效
set line 400
col NAME for a23
col VALUE for a20
col TIME_COMPUTED for a20
col DATUM_TIME for a20
select name,value,TIME_COMPUTED,DATUM_TIME from v$dataguard_stats;

在这里插入图片描述
主从延迟为0 无问题
检查警告日志 发现归档日志正常传输并应用
在这里插入图片描述

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值