Oracle 11g恢复误删除的表
今天想删除表中数据,操作失误,点了drop,表没了。
去网上找了下方法。
使用 oracle Database 10g 中的闪回表特性,可以毫不费力地恢复被意外删除的表
以下是一个不该发生却经常发生的情况:用户删除了一个非常重要的表 ― 当然是意外地删除 ― 并需要尽快地恢复。(在某些时候,这个不幸的用户可能就是 DBA!)
Oracle9i Database 推出了闪回查询选项的概念,以便检索过去某个时间点的数据,但它不能闪回 DDL 操作,如删除表的操作。唯一的恢复方法是在另一个数据库中使用表空间的时间点恢复,然后使用导出/导入或其他方法,在当前数据库中重新创建表。这一过程需 要 DBA 进行大量工作并且耗费宝贵的时间,更不用说还要使用另一个数据库进行克隆。
请使用 oracle Database 10g 中的闪回表特性,它使得被删除表的恢复过程如同执行几条语句一样简单。
被删除的表 RECYCLETEST 并没有完全消失,而是重命名为一个由系统定义的名称。它存在于同一个表空间中,具有与原始表相同的结构。如果在该表上定义了索引或触发器,则它们也被重命 名,使用与表相同的命名规则。任何相关源(如过程)都失效;原始表的触发器和索引被改为放置在重命名的表上,保持被删除表的完整对象结构。
表及其相关对象被放置在一个称为"回收站"的逻辑容器中,它类似于您 PC 机中的回收站。但是,对象并没有从它们原先所在的表空间中删除;它们仍然占用那里的空间。回收站只是一个列出被删除对象目录的逻辑结构。
好了,开始操作。
查看回收站中的表
select object_name,original_name,partition_name,type,ts_name,createtime,droptime from recyclebin
看到了我刚删除的表,激动。
好了,开始恢复。
FLASHBACK TABLE 你的表名 TO BEFORE Drop
再刷新了看一下表,已经恢复了。