flashback的使用

flashback 原理
flashback的原理是执行之前的语句产生的undo
flashback:                          flashback->10           flackback->20
scn:                  10                 20                      30
1------- 1->2  -------2->3  ------------------3->2-----------------------2->3------------------------
redo:    2->1          3->2                         2->3                            3->2 


恢复数据库 :
 Flashback database to scn 123456


恢复drop,truncate的表:
flashback table a to before drop;

恢复dml的操作 
方法1:
1.1 :
Select versions_xid,versions_startscn,versions_endscn, DECODE(versions_operation,'I','Insert','U','Update','D','Delete', 'Original') "Operation", id from A versions between scn minvalue and maxvalue;
(这里的id字段是用来指定A中具体哪条记录)
找到修改的记录的versions_startscn
1.2  :
alter table c enable row movement;
1.3  :
 flashback table c to scn  versions_startscn-1;

方法2:
2.1
SQL> alter database add supplemental log data;
只有在执行了这个句子之后的sql才会被记录undo_sql
2.2
Select xid,operation,commit_scn,undo_sql from flashback_transaction_query where xid in (
Select versions_xid from u1.t versions between scn minvalue and maxvalue);
找到相同的xid号对应的undo_sql,然后执行undo_sql
方法3:
Select versions_xid,versions_startscn,versions_endscn,DECODE(versions_
operation,'I','Insert','U','Update','D','Delete', 'Original') "Operation", id from A versions between scn minvalue and maxvalue;
VERSIONS_XID     VERSIONS_STARTSCN VERSIONS_ENDSCN Operatio    ID
---------------- ----------------- --------------- -------- ----------
05001A0054020000           1099482                 Update            3         // 
1099482是commit  scn

找到相应的数据,之后就可以随意导入导出了
select * from A as of scn 1095782;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值