Flashback version query and Flashback transaction query
来源:互联网 发布:手机魔术充电软件 编辑:程序博客网 时间:2024/05/16 05:11
一、Flashback version query
versions_operation: DML活动类型,I,U,D。
versions_xid: 事务编号
versions_starttime: 开始时间
versions_endtime: 结束时间,如果有值,证明这记录已非当前记录
versions_startscn: 开始SCN号
versions_endscn: 结束SCN号 如果有值,证明这记录已非当前记录
语法:
SELECT <column1>,… FROM <table>
VERSION BETWEEN [ SCN | TIMESTAMP ] [ <expr> | MAXVALUE] AND <expr> | MINVALUE]
| AS OF [SCN |TIMESTAMP ] <expr>;
SQL>select * from dept; DEPTNO DNAME LOC---------- -------------- ------------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTONSQL>update dept set loc='BEIJING' where loc='BOSTON';1 row updated.SQL>COMMIT;Commit complete. SQL>update dept set loc='SHANGHAI' where loc='CHICAGO';1 row updated.SQL>commit;Commit complete.SQL>select * from dept versions between scn minvalue and maxvalue where DEPTNO=40; DEPTNO DNAME LOC---------- -------------- ------------- 40 OPERATIONS BEIJING 40 OPERATIONS BOSTONSQL>update dept set LOC='BEIJING' where DNAME='OPERATIONS';1 row updated.SQL>commit;Commit complete.SQL>select * from dept versions between scn minvalue and maxvalue where DEPTNO=40; DEPTNO DNAME LOC---------- -------------- ------------- 40 OPERATIONS BEIJING 40 OPERATIONS BEIJING 40 OPERATIONS BOSTONSQL>select versions_xid xid,versions_startscn,versions_endscn,versions_operation,DEPTNO,DNAME,LOC from dept versions between scn minvalue and maxvalue where DEPTNO=40;XID VERSIONS_STARTSCN VERSIONS_ENDSCN V DEPTNO DNAME LOC---------------- ----------------- --------------- - ---------- -------------- -------------020017005A710100 105407305 U 40 OPERATIONS BEIJING 105407305 40 OPERATIONS BEIJING
可以看出,对应数据的版本是以影响到该行数据更改,并最终提交。每次commit生成一个对应的版本。在between scn minvalue and maxvalue后面加上as of scn 指定该scn到当前scn的所有版本。
使用timestamp:versions between timestampto_timestamp('2013/06/2319:17:00','yyyy/mm/dd hh24:mi:ss') and to_timestamp('2013/06/2319:20:00','yyyy/mm/dd hh24:mi:ss')
二、Flashback transaction query
闪回事务查询是一种诊断工具,用于帮助识别数据库发生的事务级变化,可以用于事务审计的数据分析。通过闪回事务分析,可以识别在一个特定的时间段内所发生的所有变化,也可以对数据库表进行事务级恢复。
闪回事务查询的基础仍然是依赖于撤销数据(Undodata),它也是利用初始化的数据库参数UNDO_RETENTION来确定已经提交的撤销数据在数据库的保存时间。
Flashback Version Query和Flashback Transaction Query需要配合使用。我们在前面介绍的Flashback Version Query可以实现审计一段时间内表的所有改变,但是这仅仅是发现在某个时间段内所进行过的操作,对于错误的事务还不能进行撤销处理。而Flashback Transaction Query可实现撤销处理,因为可以从FLASHBACK_TRANSACTION_QUERY中获得事务的历史操作并撤销语句(undo_sql)。也就是说,我们可以审计一个事务到底做了什么,也可以撤销一个已经提交的事务。
Flashback Version Query的xid与Flashback Transaction Query的xid的转换需要用到的一个函数HEXTORAW,Flashback Transaction Query的xid等于HEXTORAW(Flashback Version Query的xid)。
闪回事务查询依赖于flashback_transaction_query。注意,这个表中也记录了没有提交的事务,如果COMMIT_SCN为空,证明该事务还没有提交。SQL> desc flashback_transaction_queryName Type Nullable Default Comments ---------------- -------------- -------- ------- -----------------------------------------XID RAW(8) Y Transaction identifier START_SCN NUMBER Y Transaction start SCN START_TIMESTAMP DATE Y Transaction start timestamp COMMIT_SCN NUMBER Y Transaction commit SCN COMMIT_TIMESTAMP DATE Y Transaction commit timestamp LOGON_USER VARCHAR2(30) Y Logon user for transaction UNDO_CHANGE# NUMBER Y 1-based undo change number OPERATION VARCHAR2(32) Y forward operation for this undo TABLE_NAME VARCHAR2(256) Y table name to which this undo applies TABLE_OWNER VARCHAR2(32) Y owner of table to which this undo appliesROW_ID VARCHAR2(19) Y rowid to which this undo applies UNDO_SQL VARCHAR2(4000) Y SQL corresponding to this undo
Flashback version query & flashback transaction query)的局限性:
依赖于回滚数据,所以对于较早的误操作无能为力,那时得借助logminer挖掘日志了。
- Flashback version query and Flashback transaction query
- Flashback Version Query和Flashback Transaction Query!
- Flashback Version Query && Flashback Transaction Query
- Flashback Query Flashback Version Query Flashback Table Flashback Transaction
- Flashback Query, Flashback Version Query
- 第7天-2 flashback table 】【flashback version query 】【flashback transaction query 】【flashback database】
- flashback transaction query
- Flashback Transaction Query
- Oracle Flashback Transaction Query
- flashback transaction query
- Oracle Flashback Version Query
- Oracle10g的Flashback之Flashback Transaction Query
- Oracle Flashback之Flashback Transaction Query
- 闪回版本查询与闪回事务查询(Flashback Version Query、Flashback Transaction Query)
- flashback六大技术之flashback version query
- flashback六大技术之flashback transaction query 和flashback table
- 关于flashback versions query 和flashback transaction query 特性
- 关于flashback versions query 和flashback transaction query 特性
- 单调队列—— HDU 4193 Non-negative Partial Sums
- Hadoop Hive与Hbase整合
- for_each()详解
- CCProgressTimer在Android机器上崩溃问题
- 服务器名称或凭据无效,或者权限不足
- Flashback version query and Flashback transaction query
- 将表数据生成SQL脚本的存储过程
- iOS extern使用教程
- 笔试大杂烩 C++ (一)
- Android 两个Activity切换时回调函数调用顺序
- Hibernate使用Tomcat连接池连接数据库
- gcc -I -L -l与路径
- JavaScript Number 对象参考手册
- C++ protected成员访问权限