之前我们介绍了:Oracle数据库RMAN不完全恢复之基于时间恢复,本文我们介绍一下Oracle数据库RMAN不完全恢复的基于SCN恢复的相关知识,希望能够对您有所帮助。
基于SCN恢复是指当出现用户错误(例如误删除表、误截断表)时,恢复到指定SCN点的恢复。
模拟误删除表t_user。
执行rman,启动数据库到mount状态。
使用set until scn命令指定要恢复到的scn点。
转储、恢复数据库,并使用resetlogs选项打开数据库。
–模拟误删除表t_user。
SQL>selectcount(*)fromt_user; COUNT(*) ---------- 2 SQL>insertintot_userselect'springmvc_'fromdual; 1rowcreated. SQL>commit; Commitcomplete. SQL>altersystemswitchlogfile; Systemaltered. SQL>altersystemcheckpoint; Systemaltered. SQL>selectcurrent_scnfromv$database; CURRENT_SCN ----------- 1214281 SQL>droptablet_user; Tabledropped.
–恢复
[oracle@localhost~]$rmantargetsys/oracle@oralifenocatalog RMAN>run{ 2>startupforcemount; 3>setuntilscn=1214281; 4>restoredatabase; 5>recoverdatabase; 6>sql'alterdatabaseopenresetlogs'; 7>}
–已恢复
SQL>selectcount(*)fromt_user; COUNT(*) ---------- 3
在实际环境下,应该使用LogMiner确定误操作SCN点。
在执行了不完全恢复之后,推荐删除早期所有备份,重新备份数据库。
相关文章
标签:Oracle