ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 闪回版本查询操作

闪回版本查询操作

原创 Linux操作系统 作者:kl911 时间:2008-01-03 10:51:05 0 删除 编辑
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/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 第一桶金
请登录后发表评论 登录
全部评论

注册时间:2008-01-03

  • 博文量
    20
  • 访问量
    316831