Oracle Data Guard GAP 问题解决

目的:记录以处理下一次。回馈网络。

案例:Oracle 11.0.3.0。公司人员交接,发现 DG 归档日志GAP过大,无法直接复制日志文件注册恢复,通过RMAN增量备份数据和控制文件来恢复。


1.Standby库取消恢复管理状态
SQL> alter database recover managed standby database cancel;

 

2.Standby库确定SCN最小值
SQL> select current_scn from v$database;
假设结果为:
current_scn
-------------
    1000

SQL> select min(f.fhscn) from x$kcvfh f, v$datafile d where f.hxfil=d.file# and d.enabled!='READ ONLY';
假设结果为:
min(f.fhscn)
-------------
    1001

则最小SCN为 1000,下一步使用到。


3. 在主库做数据库增量和控制文件备份
$ mkdir -p /home/oracle/archbak
$ rman target /
RMAN> backup as compressed backupset incremental from scn 1000 database format '/home/oracle/archbak/stb_arch_%U.bak';
RMAN> backup current controlfile for standby format '/home/oracle/archbak/std_ctl_%U.bak';


4.将主库备份的文件复制到备库
-- 备库:
$ mkdir -p /home/oracle/archbak
-- 主库:
$ scp /home/oracle/archbak/* oracle@orclb:/home/oracle/archbak

 

************************************************************************************************
* 以下步骤可以通过打开另一个shell窗口查看alert日志实时查看状态                          *
* (备库)首先,查看日志路径                                                                                    *
* SQL> show parameter dump;                                                                                    *
* 找到 background_dump_dest 的 VALUE 值进入对应目录,使用如下命令实时查看  *
* $ tail -100f $VALUE/alert_xxx.log                                                                               *
*************************************************************************************************


5.将备库重启到 nomount 模式
SQL> shutdown immediate;
SQL> startup nomount;
SQL> exit;


6.备库用 RMAN 恢复控制文件
$ rman target /
RMAN> restore standby controlfile from '/home/oracle/archbak/std_ctl_XXX.bak';
RMAN> exit;


7.将备库启动到 mount 阶段
SQL> alter database mount;
SQL> exit


8.向Standby库控制文件注册数据备份信息
$ rman target /
RMAN> catalog start with '/home/oracle/archbak';
输出:
...
List of Files Unkown to the Database
=====================================
...

Do you really want to catalog the above files (enter YES or NO)? YES -- 此处输入 YES 回车
...
...

(此步运行时第一次找不到备份数据,退出rman重新进又可以)


9.恢复standby库
接上一步
RMAN> recover database noredo;
...
...
Finished recover at XXXX-xx-xx xx:xx:xx


10.启动Standby库到DG恢复进程
SQL> alter database recover managed standby database disconnect from session;


11.验证同步状态
主库:
select name,sequence#,archived,applied from v$archived_log order by 2;

备库:
select name,sequence#,archived,applied from v$archived_log order by 2;
select process,status,client_process,sequence#,block# from v$managed_standby;


12.如果需要,重建broker.

 

参考文章:

https://blog.csdn.net/badly9/article/details/51363534

https://www.cnblogs.com/ilifeilong/p/7072026.html

https://blog.csdn.net/shiyu1157758655/article/details/79086148

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值