ORACLE闪回和恢复DROP掉的表

--闪回

SELECT * FROM tableName AS OF TIMESTAMP(sysdate-1/12)  --查看2个小时以前的数据

1/2就是12小时
1/24就是1小时
1/24/60就是1分钟

alter table tableName enable row movement;
   这个命令的作用是,允许修改ORACLE分配给行的ROWID,在oracle中,插入一行数据
就会给它分配一个rowid,这行永远拥有这个ROWID,闪回表处理会对EMP完成DELETE操作
并添加新行,这样就会对新行分配一个新的ROWID; 否则会报 ora-08189错误。
flashback table tableName to scn timestamp_to_scn(sysdate-1/12);--
利用时间转换成SCN号,进行数据恢复.
SCN:
   SCN(System ChangeNumber):系统改变号,一个由系统内部维护的序列号。当系统需要更新的时候自动
增加,他是系统中维持数据的一致性和顺序恢复的重要标志。

 
--恢复删除的表
DROP TABLE drop_table;
1.用如下语句查询到这个表还在Oracle回收站中:
SELECT * FROM user_recyclebin WHERE original_name='drop_table';
2.用以下语句进行恢复:
FLASHBACK TABLE drop_table TO BEFORE DROP;
  ORACLE10G增加了回收站(recycle bin)的功能,从原理来说就是一个数据字典,保存被DROP对象的信息
,实际上被DROP的对象,并没有被数据库删除,任然占有空间。除非用户手工purge和数据空间不够被清除掉.
3.清除回收站的数据
purge table tableName
purge recyclebin;--全部清除

 

你可能感兴趣的:(ORACLE)