OCP课程经典案例:利用日志挖掘实现基于SCN的不完全恢复

基于SCN恢复是指当出现用户错误(例如误删除表、误截断表)时,恢复到指定SCN点的恢复。

模拟误删除表t_user。

执行rman,启动数据库到mount状态。

使用setuntil scn命令指定要恢复到的scn点。

转储、恢复数据库,并使用resetlogs选项打开数据库。

--模拟误删除表t_user。

SQL> select count(*) from t_user;????

COUNT(*)????

----------????

2

SQL> insert into t_user select 'springmvc_' from dual;????

1 row created.????

SQL> commit;????

Commit complete.????

SQL> alter system switch logfile;????

System altered.????

SQL> alter system checkpoint;????

System altered.????

SQL> select current_scn fromv$database;????

CURRENT_SCN????

-----------????

1214281

SQL> drop table t_user;????

Table dropped.

恢复

[oracle@localhost ~]$ rman targetsys/oracle@oralife nocatalog????

RMAN> run {????

2> startup force mount;????

3>set until scn=1214281;????

4> restore database;????

5> recover database;????

6> sql 'alter database openresetlogs';????

7> }

已恢复

SQL>?select count(*) from t_user;

COUNT(*)????

----------????

3

在实际环境下,应该使用LogMiner确定误操作SCN点。在执行了不完全恢复之后,推荐删除早期所有备份,重新备份数据库。

想要更掌握的更透彻,可以观看我们的免费视频,地址:

http://www.chuanke.com/6764109-174690.html

https://ke.qq.com/course/134307#term_id=100150389

或者直接到**课堂/传课搜索海文IT教育,观看更多免费视频。

更多精彩课程尽在上海海文信息技术有限公司,http://www.oracleoaec.net/。