Oracle DG gap 手动同步

oralce 11g 单节点主备同步环境,备库提供read(open状态)。实时同步方式。
主库重启后,没有按照正常顺序启动和关闭备库及日志应用。早上发现后,已经出现很多gap。

1.在备库的日志里去查看,说是等待sequence 3362的日志,其实主库上的最小(最早的)的日志已经到3370了。。也就是主库已经没有3362的日志了。所以要恢复出来。

2.当然可以通过sequence或者scn恢复,这里通过scn恢复。比较稳妥。
先查出备库3362对应的first_change 号:

 select first_change# from v$archived_log where sequence#='3362';

  1216228833

3 . rman 基于scn恢复出来
这里有3个地方要恢复和注意的

1.数据文件恢复。
2.也要恢复当时的control 文件。
3.主库的密码文件也要重新传一份到备库。

backup incremental from scn 1216228833 database format '/data/ora11g/archivelog/gap_%U';
 backup current controlfile for standby format '/data/ora11g/archivelog/gap.ctl'

4 . 把备份集,控制文件及密码文件传输到备库

scp gap* oracle@dgtest:/data/ora11g/archivelog/
scp orapwjktoa oralce@dgtest:/data/ora11g/product/11.2.0.4/db_1/dbs

5 .在备库开始恢复,启动到nomount状态

restore standby controlfile from '/data/ora11g/archivelog/gap.ctl';

rman> catalog start with '/data/ora11g/archivelog/';
(按说这步控制文件里已经有,但是有时候还是会报错,干脆直接注册进去。)

rman> recover database noredo;

6 . 把备库切到open状态,这时候alert.log里面报警:

SRL log 26 needs clearing because log has not been created
SRL log 27 needs clearing because log has not been created
SRL log 28 needs clearing because log has not been created
SRL log 29 needs clearing because log has not been created

原因是刚才的standby redo 没有清空(有几组清几组,网上有的说的删除重建,我这是clear 一样,省点事情。)

alter database clear logfile group 26;

7.之后就正常了,开启同步,在主库切换几次log试试,验证同步。

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东方-phantom

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值