主数据库或者其他备库的归档日志还存在的恢复方式:归档直接恢复方式 1.1 copy 主库上的归档日志至备库,如果ASM磁盘先通过rman方式copy至文件系统 RMAN>copy archivelog '+data/orcl/ARCHIVELOG/2020_03_24/thread_1_seq_328729.4592.939510649' to'/home/oracle/archivelog/thread_1_seq_328729.4592.939510649'; 1.2 备机注册archivelog到数据库control file中 RMAN> catalog start with '/home/oracle/archivelog'; 1.3 启动备机执行recover,执行实时应用日志 ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION; 1.4 确认日志归档应用已启动,至此DG已恢复同步 select process,status,client_process,sequence#,block# from v$managed_standby;
主数据库或者其他备库的归档日志已丢失的恢复方式:增量备份恢复方式
1.备份备库spfile文件 SQL> create pfile='/home/ora/pfile_standby.ora' from spfile;
2、查看当前备库scn SQL> select to_char(current_scn) from v$database; TO_CHAR(CURRENT_SCN) ---------------------------------------- 145215070
3、查看缺失的archivelog SQL> select * from v$archive_gap; 4、在主库执增量备份
RMAN> run { allocate channel d1 type disk; allocate channel d2 type disk; backup as compressed backupset incremental from SCN 145215070 database format '/home/oracle/full_db_%d_%T_%s.bak' include current controlfile for standby filesperset=5 tag 'FOR STANDBY'; release channel d1; release channel d2; }
5、将备份传至备库 scp full_db_orcl_xxxx_*.bak 192.168.1.100:~/xxxx_recover/ 6、注册备份文件,恢复备库
RMAN> catalog start with '/home/ora/20150523_recover';
RMAN>
run { allocate channel d1 type disk; allocate channel d2 type disk; restore standby controlfile to '/home/oracle/control01.ctl'; recover database noredo; release channel d1; release channel d2;
}
7、关闭备库,将恢复出来的control01.ctl覆盖备库控制文件 $ cp control01.ctl /oradata/orcl/standby.ctl 8、启动备库至mount状态 SQL> startup mount
9、查看gap SQL> select * from v$archive_gap; 10、开启备库recover模式 SQL> alter database recover managed standby database disconnect from session; Media recovery complete.
