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 无问题
检查警告日志 发现归档日志正常传输并应用
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?