Posted on 2007-05-22 16:30
bluoy 阅读(4098)
评论(2) 编辑 收藏
问题:同事不小心把项目DB中的一个表的数据delete all了。DB版本oracle 10g。
网上简单搜了一下,搞定。以下是过程:
Oracle 10g开始,当我执行Drop Table时,Oracle也会把被删除的表放到数据库回收站(Database Recyclebin)里。这样我们就可以用flashback table命令恢复被删除的表,语法:
Flashback table 表名 to before drop;
开始恢复,执行以下命令:
flashback table tmm2076 TO TIMESTAMP to_timestamp('2007-05-22
12:00:00','yyyy-mm-dd hh24:mi:ss')
弹出ORA-08189错误,需要执行以下命令先:
alter table tmm2076 enable row movement
这个命令的作用是,允许oracle修改分配给行的rowid。
然后再flashback,数据被恢复完毕。