ITPub博客

首页 > 数据库 > Oracle > Oracle 11G 闪回技术 使用Oracle闪回事务查询

Oracle 11G 闪回技术 使用Oracle闪回事务查询

原创 Oracle 作者:LuiseDalian 时间:2014-05-27 07:21:21 0 删除 编辑

使用闪回事务查询来获取在给定的时间范围内指定事务或所有事务的元数据和历史数据。

闪回事务查询会查询FLASHBACK_TRANSACTION_QUERY视图。

其中的UNDO_SQL列显示与事务中执行的DML语句在逻辑上相反的SQL语句。可以使用这些SQL代码来回退在事务中执行的逻辑步骤。也有一些情况下UNDO_SQL的代码不是原始事务的准确的反转的代码。例如UNDO_SQL的INSERT操作不可能使用与被删除的行相同的ROWID,在表中重新插入被删除的行。

--查询指定事务ID的事务的信息

SELECT xid, operation, start_scn, commit_scn, logon_user, undo_sql

FROM flashback_transaction_query

WHERE xid = HEXTORAW('000200030000002D');

 

--同时使用闪回事务查询和闪回版本查询,来确定每次改变行的用户

SELECT xid, logon_user

FROM flashback_transaction_query

WHERE xid IN (

  SELECT versions_xid FROM employees VERSIONS BETWEEN TIMESTAMP

  TO_TIMESTAMP('2003-07-18 14:00:00', 'YYYY-MM-DD HH24:MI:SS') AND

  TO_TIMESTAMP('2003-07-18 17:00:00', 'YYYY-MM-DD HH24:MI:SS')

);

注意:如果查询FLASHBACK_TRANSACTION_QUERY,没有指定XID,则查询会扫描许多无关的行,降低性能。

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

上一篇: OCP 1Z0 051 149
下一篇: OCP 1Z0 051 160
请登录后发表评论 登录
全部评论

注册时间:2012-02-06

  • 博文量
    1986
  • 访问量
    6040844