1818IP-服务器技术教程,云服务器评测推荐,服务器系统排错处理,环境搭建,攻击防护等

当前位置:首页 - 数据库 - 正文

君子好学,自强不息!

之前我们介绍了: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点。

在执行了不完全恢复之后,推荐删除早期所有备份,重新备份数据库。

本文来源:1818IP

本文地址:https://www.1818ip.com/post/10685.html

免责声明:本文由用户上传,如有侵权请联系删除!

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。