本文主要是介绍dg归档gap,主备库归档已清理,增量备份恢复,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
dg库和主库归档都已经不存在,除了重新拉dg,还可以通过增量备份恢复方式快速恢复dg。
先在dg库查看scn,x$kcvfh和V$DATABASE种的scn都要查,选择小的scn去主库备份。
SYS@zjyyhis2> select min(fhscn) from x$kcvfh;
MIN(FHSCN)
--------------------------------
123567355330
SYS@zjyyhis2> SELECT to_char(CURRENT_SCN) FROM V$DATABASE;
TO_CHAR(CURRENT_SCN)
--------------------------------------------------------------------------------
123567355329
主库备份:
rman target / > /rman/dg/bak.log << EOF
run{
allocate channel t1 type disk;
allocate channel t2 type disk;
allocate channel t3 type disk;
allocate channel t4 type disk;
allocate channel t5 type disk;
allocate channel t6 type disk;
allocate channel t7 type disk;
allocate channel t8 type disk;
BACKUP INCREMENTAL FROM SCN 123567355329 DATABASE FORMAT '/rman/dg/inc_%M%D_%U.bak';
release channel t1;
release channel t2;
release channel t3;
release channel t4;
release channel t5;
release channel t6;
release channel t7;
release channel t8;
}
EOF
备份数据在dg库上通过“catalog start with '差异备份数据路径';”加到控制文件中。
通过查询视图转换数据存放路径:
select 'set newname for datafile '||file#|| ' to '||''''||'/oracle/oradata/easdb/'||substr(name,instr(name,'/',-1)+1)||''''||';' from v$datafile;
select 'ALTER DATABASE RENAME FILE '||''''||name||''''|| ' to '||''''||'/oracle/oradata/easdb/'||substr(name,instr(name,'/',-1)+1)||''''||';' from v$datafile;
个别数据文件转换:
run{
set newname for datafile 237 to '+DATA/zjyyhisstb/datafile/o1_mf_sde_lob237.dbf';
restore datafile 237;
set newname for datafile 238 to '+DATA/zjyyhisstb/datafile/o1_mf_sde_lob238.dbf';
restore datafile 238;
switch datafile 237;
switch datafile 238;
}
数据文件比较多的转换方式:
run{
set newname for datafile 1 to '+DATA/zjyyhisstb/datafile/system.35126.1110977203';
……………………
set newname for datafile 235 to '+DATA/zjyyhisstb/datafile/sde_lob_data.99225.1139312005';
switch datafile all;
}
转换完成后进行recover database操作恢复的较新的数据,然后重启dg归档应用
这篇关于dg归档gap,主备库归档已清理,增量备份恢复的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!