您的位置:首页 > 数据库 > Oracle

用Oracle flashback闪回误删除的表数据

2012-02-16 09:04 489 查看
用Oracle flashback闪回误删除的表数据

开发人员今天不小心误删除了某个表中的部分数据,需要恢复回来,下面利用oracle flashback闪回误删除的表数据

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

1.       需要有flashback any table的系统权限或者是flashback这个表的对象权限;

2.       需要有对这个表的基本的dml,alter操作权限;

3.       必须保证该表row movement(这主要是让flashback记住表的rowid)

具体的操作为:

SQL> flashback table ps_audit_groupactivity to timestamp to_timestamp('2007-04-30 10:00:00','yyyy-mm-dd hh24:mi:ss');

 

flashback table ps_audit_groupactivity to timestamp to_timestamp('2007-04-30 10:00: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 ps_audit_groupactivity enable row movement;

 

Table altered

然后再执行上面的闪回操作

SQL> flashback table ps_audit_groupactivity to timestamp to_timestamp('2007-04-30 10:00:00','yyyy-mm-dd hh24:mi:ss');

 

Done

查询原来的表误删除的数据闪回回来了.

注我们的数据库版本为: 10.2.0.1.0

连接:http://blog.chinaunix.net/space.php?uid=411974&do=blog&id=88353
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  oracle table sql 数据库