闪回版本查询操作

SQL> create table t4 as select object_id, object_type,created, status from dba_o
bjects where rownum<3000;


SQL> select count(*) from t4;

  COUNT(*)
----------
      2999

SQL> select versions_xid, versions_starttime, versions_endtime, versions_operation, object_id from t4 versions between timestamp minvalue and maxvalue;

SQL> select undo_sql from flashback_transaction_query where xid=&versions_xid;
(问什么有时undo_sql里面没有内容?是因为row_movement是disable吗?)
做个试验:
SQL> alter table t4 ENABLE row movement;
再查还是一样,只有在update时才可以看到undo_sql语句。而delete后,栏位OPERATION的值为UNKOWN。 可见如果要是delete只有用flashback table的方法来做了。
例如
SQL> flashback table t4 to timestamp to_timestamp('2008-1-3 19:32:56','YYYY-MM-DD HH24:MI:SS');

一些注意:
1. undo_retention是个no gurantee 的限制,如果空间充足,在这个时间内undo信息会保留,但如果空间不足时,即使没到undo_retention时间,数据一样会被取代;
2. undo_retention可以为0,此时表示没有时间限制,只要空间够用,data可以一直存放。
3. row_movement, 是当行发生变化时,rowid会自动变化以适应其变化。dba_tables.row_movement ,看看是enable还是disable. 而只要flashback table,就必须将row movement设为ENABLE.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/661919/viewspace-86422/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/661919/viewspace-86422/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值