Oracle 数据恢复

一、恢复Drop删除的表
flashback table TB_E_WEAR to before drop

二、恢复delete删除的数据

1.Flashback Query

    基于回滚段的闪回查询(Flashback Query)功能

    --闪回到某个时间点
    select * from T_CO_AREA as of timestamp to_timestamp (''2015-01-08 16:18:57'', ''YYYY-MM-DD HH24:MI:SS'') where ...

2.Flashback Table

Flashback Table不等于Flashback Query,FlashbackQuery仅仅是查询以前的一个快照点而已,并不改变当前表的状态,而Flashback Table将改变当前表及附属对象一起回到以前的时间点

注意:如果需要闪回一个表,需要以下条件:
  ·需要有flashback any table的系统权限或者是该表的flashback对象权限;
  ·需要有该表的select,insert,delete,alter权限;

  必须保证该表row movement。

比如:恢复线别信息表中2015-01-06 17:00:00前删除的数据

  1. alter table t_co_area  enable row movement;  
  2. Flashback table t_co_area to timestamp to_timestamp('2015-01-06 17:00:00','yyyy-mm-dd hh24:mi:ss');//恢复到特定时间
  3. Flashback table t_co_area to timestamp systimestamp - interval '30' minute;//恢复到30分钟前

3.Flashback Drop

Oracle Flashback Drop特性提供一个类似回收站的功能,用来恢复不小心被删除的表。当删除表时,Oracle 10g并不立刻释放被删除的表所占用的空间,而是将这个被删除的表进行自动重命名(为了避免同类对象名称的重复)并放进回收站中。所谓的回收站类似于Windows系统中的回收站,是一个虚拟的容器,用于存放所有被删除的对象,在回收站中被删除的对象将占用创建时的同样的空间。如果这个被删除的表需要进行恢复,就可利用Flashback Drop功能。

例:进行一个删除表后恢复的简单测试。

(1)显示回收站信息

SQL>show recyclebin;

  可以看到,回收站中是没有任何结果的,表示没有任何表在回收站中。

(2)创建一个表,并删除,再次显示回收站信息

SQL>create table test_drop(name varchar2(10));

SQL>drop table test_drop;

SQL>drop table test_drop purge;--删除一个表且不放到回收站中不能进行恢复,在drop语句中可以利用purge选项。

SQL>show recyclebin;

(3)对被删除的表进行恢复
SQL>flashback table test_drop to before drop;

4.Flashback Version Query

例如:在test表中,时间1插入一条记录,时间2删除了这条记录,对于时间3执行select * from test当然查询不到这条记录,只能看到该表最后的提交记录。这时如果利用Flash Table或者是Flash Query,只能看到过去的某一时间点的一个快照,而利Flashback Version Query,能够把时间1、时间2的操作给记录下来,并详细的查询出对表进行的任何操作。

select versions_starttime,
       versions_endtime,
       versions_xid,
       versions_operation
  from t_co_area versions between timestamp minvalue and maxvalue
       在上述查询中,列 versions_starttime、versions_endtime、versions_xid、versions_operation是伪列,还有一些伪列,如versions_startscn和versions_endscn显示了该时刻的系统更改号。列versions_xid显示了更改该行的事务标识符

5.Flashback Transaction Query

Oracle Flashback Transaction Query特性确保检查数据库的任何改变在一个事务级别,可以利用此功能进行诊断问题、性能分析和审计事务。它其实是Flashback Version Query查询的一个扩充,Flashback Version Query说明了可以审计一段时间内表的所有改变,但是也仅仅是能发现问题,对于错误的事务,没有好的处理办法。而Flashback Transaction Query提供了从FLASHBACK_TRANSACTION_QUERY视图中获得事务的历史以及Undo_sql(回滚事务对应的sql语句),也就是说审计一个事务到底做了什么,甚至可以回滚一个已经提交的事务。

SQL>select * from FLASHBACK_TRANSACTION_QUERY
--查询 CREATE TABLE 表名 AS SELECT语句--把查询的结果根据结果集中的表结构和数据形成一张新表。

如果只复制表结构,只需使查询的条件不成立(比如where 1=2),就不会查询从出任何数据,从而复制一个表结构。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值