ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 用Oracle 10g 闪回误删除的表中数据

用Oracle 10g 闪回误删除的表中数据

原创 Linux操作系统 作者:rockyan712 时间:2008-11-07 13:04:41 0 删除 编辑

今天同事不小心误删除了某个表中的所有数据,需要恢复回来,下面利用oracle flashback闪回完成

注意:flashback table 需要下面几个条件

1.       需要有flashback any table的系统权限或者是flashback这个表的对象权限;
2.       需要有对这个表的基本的dml,alter操作权限;
3.       必须保证该表row movement(这主要是让flashback记住表的rowid)
具体的操作为:
SQL> flashback table pr_project to timestamp to_timestamp('2008-11-07 11:20:00','yyyy-mm-dd hh24:mi:ss');
 
ORA-08189: cannot flashback the table because row movement is not enabled
但是抛出了8189错误,原因就是因为表没有row movement,改变下表的属性:
SQL> alter table pr_project enable row movement;
 
Table altered
然后再执行上面的闪回操作
SQL> flashback table pr_project to timestamp to_timestamp('2008-11-07 11:20:00','yyyy-mm-dd hh24:mi:ss');
 
Done
查询原来的表误删除的数据闪回回来了.
注我们的数据库版本为: 10.2.0.3
 
看来闪回还是很有用的 呵呵!

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/444614/viewspace-487507/,如需转载,请注明出处,否则将追究法律责任。

下一篇: ORACLE SCN详解
请登录后发表评论 登录
全部评论

注册时间:2008-04-05

  • 博文量
    27
  • 访问量
    161275