ADG主库上归档丢失恢复备库测试
来源:互联网 发布:淘宝代运营收费标准 编辑:程序博客网 时间:2024/06/16 23:07
模拟了下在主库上丢失归档导致备库出现gap,无需重建恢复备库的情况
1制造gap
主库
ALTER system SET log_archive_dest_state_2 = ‘defer’;
一些dml操作
alter system switch logfile;
备库此时的mrp是等待log状态
SQL> select process,client_process,sequence#,status from v$managed_standby;
PROCESS CLIENT_PROCESS SEQUENCE# STATUS
ARCH ARCH 0 CONNECTED
ARCH ARCH 0 CONNECTED
ARCH ARCH 0 CONNECTED
ARCH ARCH 22 CLOSING
RFS UNKNOWN 0 IDLE
RFS ARCH 0 IDLE
MRP0 N/A 23 WAIT_FOR_LOG
SQL> select * from v$archive_gap;
no rows selected
现在的这种情况oracle不认为是gap,所以没记录
主库上查看当前sequence
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /data/arch
Oldest online log sequence 25
Next log sequence to archive 27
Current log sequence 27
从库查看应用的归档
SQL> select sequence#, applied from v$archived_log where applied=’YES’ order by sequence#;
SEQUENCE# APPLIED
10 YES11 YES12 YES13 YES14 YES14 YES15 YES15 YES16 YES16 YES17 YES
SEQUENCE# APPLIED
18 YES19 YES20 YES21 YES22 YES
主库上删除24,25,26三个sequence归档
select sequence#,name from v$archived_log;
主库
ALTER system SET log_archive_dest_state_2 = ‘enable’;
在备库上查看
select * from v$archive_gap;
THREAD# LOW_SEQUENCE# HIGH_SEQUENCE#
1 24 26
发现已经丢失了24,25,26三个归档文件
SQL> select sequence#,applied from v$archived_log;
SEQUENCE# APPLIED
10 YES11 YES12 YES13 YES14 YES15 YES15 YES14 YES16 YES16 YES17 YES
SEQUENCE# APPLIED
17 NO18 YES18 NO19 YES20 YES21 YES22 YES23 YES27 NO
停止从库的同步
SELECT (SELECT MIN(d.CHECKPOINT_CHANGE#) FROM vdatafile d) datafile_scn,
(SELECT MIN(d.CHECKPOINT_CHANGE#)
FROM vdatafile_header d
WHERE rownum = 1) datafile_header_scn,
(SELECT current_scn FROM vdatabase) current_scn,
(SELECT b.NEXT_CHANGE#
FROM varchived_log b
WHERE b.SEQUENCE# = 23
AND resetlogs_change# =
(SELECT d.RESETLOGS_CHANGE# FROM v$database d)
AND rownum = 1) NEXT_CHANGE#
FROM dual;
查找最小的scn
DATAFILE_SCN DATAFILE_HEADER_SCN CURRENT_SCN NEXT_CHANGE#
1017228 1017228 1017227 1017228
在主库备份增量
RMAN> backup as compressed backupset incremental from SCN 1017227 database format ‘/home/oracle/standby_%d_%T_%U.bak’ include current controlfile for standby filesperset=5 tag ‘FOR STANDBY’;
传递到备库,注册应用
重启备库到nomount
show paramete control
rman恢复控制文件
RMAN> restore standby controlfile to ‘/data/oracle/app/oradata/dbadb/control01.ctl’ from ‘/home/oracle/standby_DBADB_20170422_0js2b2hl_1_1.bak’
RMAN> restore standby controlfile to ‘/data/oracle/app/fast_recovery_area/dbadb/control02.ctl’ from ‘/home/oracle/standby_DBADB_20170422_0js2b2hl_1_1.bak’;
RMAN> alter database mount;
RMAN> catalog start with ‘/home/oracle/archivelog’;
searching for all files that match the pattern /home/oracle/archivelog
List of Files Unknown to the Database
File Name: /home/oracle/archivelog/standby_DBADB_20170422_0is2b2hk_1_1.bak
Do you really want to catalog the above files (enter YES or NO)? yes
cataloging files…
cataloging done
List of Cataloged Files
File Name: /home/oracle/archivelog/standby_DBADB_20170422_0is2b2hk_1_1.bak
RMAN> recover database noredo;
alter database recover managed standby database using current logfile disconnect from session;
SQL> SELECT * FROM V$ARCHIVE_GAP;
no rows selected
select sequence#,applied from v$archived_log;
SEQUENCE# APPLIED
28 YES
此时的备库是mount状态的,需要到open状态
alter database recover managed standby database cancel;
alter database open;
alter database recover managed standby database using current logfile disconnect from session;
验证是否正常
参考:
http://www.cnblogs.com/lhrbest/p/4754289.html
- ADG主库上归档丢失恢复备库测试
- dataguard 归档丢失(主库中无此丢失归档处理),备库基于SCN恢复
- 跳过丢失归档进行恢复
- 用归档日志恢复丢失的数据文件
- rman 恢复---归档丢失and数据文件损坏
- (归档模式)丢失非关键文件恢复
- oracle跳过丢失的归档恢复datafile
- 【DATAGUARD】物理dg在主库丢失归档文件的情况下的恢复(七)
- 恢复系列2--归档模式下丢失单个文件
- 丢失归档日志文件的数据库恢复方法
- 拥有归档日志 如何恢复一个丢失的数据文件
- Oracle丢失归档日志文件的数据库恢复方法
- DG丢失归档,使用增量备份恢复一例
- 在归档模式下有备份,丢失数据文件的恢复
- 使用脚本,自动跳过丢失归档的恢复--------MODIFY SEQ
- Oracle归档模式有备份,丢失数据文件的恢复
- Oracle归档模式无备份,丢失数据文件的恢复
- 利用增量备份恢复gap归档丢失DG
- Java设计模式《八》外观模式
- 解决Android浏览器使用七牛上传文件时取不到后缀名
- 6.网络层(4)---IP多播,NAT
- WebView与JS的那些事: 注入JS提取url链接
- 字节转化为结构体BytesToStruct
- ADG主库上归档丢失恢复备库测试
- 关于数据库
- 机器学习之神经网络算法
- DAY3视频学习笔记
- [C++基础] 函数技巧
- 一台电脑同时运行多个tomcat配置方法
- 网易云课堂-零基础学Java test2-1
- gem install mysql2时候报错
- shell脚本传递参数的方法