备库失败,需要应用主库的变更,想着在主库做一个基于scn的increment backup,然后恢复过去,查了下备库当前数据文件的scn:
SQL> select min(fhscn),max(fhscn) from x$kcvfh;
MIN(FHSCN) MAX(FHSCN)
---------------- ----------------
16485717414 172167149419
发现差异挺大,16485717414是几个readonly数据文件的scn,172167149419是其他的read write数据文件的scn,我认为read only的数据文件应该在恢复的时候会直接跳过,
所以只要在主库做一个排除了readonly数据文件的最小scn增量备份,再增量恢复就可以了,但发现并不行,以下是我的操作步骤:
备份:
run {
allocate channel ch0 device type disk format '/prodbak/%U';
allocate channel ch1 device type disk format '/prodbak/%U';
allocate channel ch2 device type disk format '/prodbak/%U';
allocate channel ch3 device type disk format '/prodbak/%U';
backup INCREMENTAL FROM SCN 172167149419 database;
release channel ch0;
release channel ch1;
release channel ch2;
release channel ch3;
}
恢复时很快就说完成了:
RMAN> RECOVER DATABASE NOREDO;
Starting recover at 14-JUL-16
using channel ORA_DISK_1
datafile 6 not processed because file is read-only
datafile 9 not processed because file is read-only
datafile 10 not processed because file is read-only
datafile 11 not processed because file is read-only
datafile 16 not processed because file is read-only
datafile 20 not processed because file is read-only
datafile 28 not processed because file is read-only
Finished recover at 14-JUL-16
不指定noredo时会报错:
RMAN>
unable to find archived log
archived log thread=1 sequence=604969
RMAN-00571: ==================================================
SQL> select min(fhscn),max(fhscn) from x$kcvfh;
MIN(FHSCN) MAX(FHSCN)
---------------- ----------------
16485717414 172167149419
发现差异挺大,16485717414是几个readonly数据文件的scn,172167149419是其他的read write数据文件的scn,我认为read only的数据文件应该在恢复的时候会直接跳过,
所以只要在主库做一个排除了readonly数据文件的最小scn增量备份,再增量恢复就可以了,但发现并不行,以下是我的操作步骤:
备份:
run {
allocate channel ch0 device type disk format '/prodbak/%U';
allocate channel ch1 device type disk format '/prodbak/%U';
allocate channel ch2 device type disk format '/prodbak/%U';
allocate channel ch3 device type disk format '/prodbak/%U';
backup INCREMENTAL FROM SCN 172167149419 database;
release channel ch0;
release channel ch1;
release channel ch2;
release channel ch3;
}
恢复时很快就说完成了:
RMAN> RECOVER DATABASE NOREDO;
Starting recover at 14-JUL-16
using channel ORA_DISK_1
datafile 6 not processed because file is read-only
datafile 9 not processed because file is read-only
datafile 10 not processed because file is read-only
datafile 11 not processed because file is read-only
datafile 16 not processed because file is read-only
datafile 20 not processed because file is read-only
datafile 28 not processed because file is read-only
Finished recover at 14-JUL-16
不指定noredo时会报错:
RMAN>
unable to find archived log
archived log thread=1 sequence=604969
RMAN-00571: ==================================================