利用RMAN恢复,还需要备份控制文件,而且由于是非归档模式,还需要检查当前能够恢复到的最大SCN,然后在SQLPLUS中recover database until change scn,然后再alter database open resetlogs,整个操作比EXP/IMP繁琐,对于现场业务人员来说可能较为困难,所以使用RMAN还是使用导出导入作数据转移,还是见仁见智吧。
以下为测试中RMAN和导出导入使用的命令,基本上没有作任何优化。
RMAN的备份脚本: @@connect.rcv # Backup up database at full level # shutdown immediate; startup mount; run{ allocate channel d1 type disk; set limit channel d1 kbytes 2097150; backup full database format 'E:/rman_bak/dbfull_%d_%s_%p_%t' tag='dbfull'; release channel d1; } alter database open; exit;
RMAN的恢复脚本: @@connect.rcv shutdown immediate; startup mount; run { sql "alter session set nls_date_language=AMERICAN"; sql "alter session set nls_date_format=''yyyy-mm-dd hh24:mi:ss''"; set until time '2004-9-7 15:30:00'; allocate channel ch1 type disk; restore database; release channel ch1; } exit;