恢复到指定的lsn
1.备份源数据库
BACKUP DATABASE BACKUPSET 'D:\dmdbm\data\DAMENG5\bak\db_full_bak_for_time_lsn';
2.备份完后,正常修改源数据库数据
3.如要将目的数据库恢复到当前状态,需查询源数据库当前lsn
SELECT FILE_LSN FROM V$RLOG ;--9772799
4.还原数据库
进入dmrman执行还原
restore DATABASE 'D:\dmdbm\data\DAMENG3\dm.ini' FROM BACKUPSET 'D:\dmdbm\data\DAMENG5\bak\db_full_bak_for_time_lsn';
5.查询源数据库DB_MAGIC(利用归档文件还原数据库,要保证目的库和源库的DB_MAGIC一样)
dmmdf.exe D:\dmdbm\data\DAMENG5\SYSTEM.DBF 1 --db_magic=1586785983
6.恢复数据库到指定位置
RECOVER DATABASE 'D:\dmdbm\data\DAMENG3\dm.ini' WITH ARCHIVEDIR 'D:\dmdbm\data\DAMENG5\arch' USE DB_MAGIC 1586785983 UNTIL LSN 9772799;
注意:如果目的库恢复完启动后,需要恢复到新的lsn,需停止目的库,重新执行还原,再执行恢复到新的lsn,并且保证归档的完整
如果恢复到指定的时间,只需将第6步,改成下面语句
select sysdate; --2020-06-12 11:04:14.754000
RECOVER DATABASE 'D:\dmdbm\data\DAMENG3\dm.ini' WITH ARCHIVEDIR'D:\dmdbm\data\DAMENG5\arch' USE DB_MAGIC 1586785983 UNTIL TIME'2020-06-12 11:04:14.754000';