Oracle Flashback技术之Flashback Query
来源:互联网 发布:卖家怎么玩好淘宝客 编辑:程序博客网 时间:2024/05/21 20:24
Oracle Flashback家族有四个成员,分别是以下:
Flashback Database ——闪回数据库
Flashback Drop ——闪回删除Flashback Table ——闪回表
Flashback Query(分Flashback Query,Flashback Version Query,Flashback Transaction Query) ——闪回查询
今天主要讲下Flashback Query技术:
Flashback Query(利用UNDO保留信息恢复)
1、Flash Version Query(利用UNDO保留信息恢复)
Oracle Flashback Version Query特性,利用保存的回滚信息,可以看到特定的表在时间段内的任何修改,如电影的回放一样,可以了解表在该期间的任何变化。Flashback version query一样依赖于AUM,提供了一个查看行改变的功能,能找到所有已经提交了的行的记录,分析出过去时间都执行了什么操作。Flashback version query采用VERSIONS BETWEEN语句来进行查询,常用的方法:
(1)使用as of timestamp来进行闪回查询:
SQL> select * from tb1 as of timestamp to_timestamp('2010-10-25 17:26:08','yyyy-mm-dd hh24:mi:ss')
minus select * from tb1;(所得结果就是误操作的数据)
(2)使用as of scn来进行闪回查询:
SQL> select * from tb1 as of scn ***;
SQL>select versions_starttime,versions_endtime, versions_xid,versions_operation,id
from test versions
between timestamp minvalue and maxvalue
order by versions_starttime;(查询事务的xid信息)
注意:由以上可知,通过闪回查询获得所需的记录信息,然后来构造新的DML语句并实施其操作来保证数据的完整性。
2、Flash Transaction Query(利用UNDO保留信息恢复)
Oracle Flashback Transaction Query特性确保检查数据库的任何改变在一个事务级别,可以利用此功能进行诊断问题、性能分析和审计事务。它其实是Flashback Version Query查询的一个扩充,Flashback Version Query说明了可以审计一段时间内表的所有改变,但是也仅仅是能发现问题,对于错误的事务,没有好的处理办法。而Flashback Transaction Query提供了从FLASHBACK_TRANSACTION_QUERY视图中获得事务的历史以及Undo_sql(回滚事务对应的sql语句),也就是说审计一个事务到底做了什么,甚至可以回滚一个已经提交的事务。
想要获得已提交事务的XID,就必须通过上面的Flashback Version Query。
SQL>select * from FLASHBACK_TRANSACTION_QUERY where xid=’04001F0035000000’;
UNDO_SQL
--------------------
insert into "FLASHTEST"."TEST"("ID") values (’2’);
alter database add supplemental log data;(有时候可能查询到undo_sql为空,是因为supplement logging被禁用了,需要开启)
注意:这个删除语句对应的是1个Insert语句,如果想回滚这个事务,执行这个Insert语句即可。
可以看到,Flashback Transaction Query主要用于审计一个事务,并可以回滚一个已经提交的事务。如果确定出错的事务是最后一个事务,我们利用Flashback Table或者Flashback Query就可以解决问题。但是,如果执行了一个错误的事务之后,又执行了一系列正确的事务,那么上面的方法就无能为力,利用Flashback Transaction Query可以查看或回滚这个错误的事务。
- Oracle Flashback技术之Flashback Query
- Oracle Flashback之Flashback Query
- Oracle Flashback之Flashback Query
- Oracle flashback之flashback query
- flashback六大技术之flashback query
- flashback六大技术之flashback version query
- Oracle Flashback之Flashback versions Query
- Oracle Flashback之Flashback Transaction Query
- flashback之flashback query
- flashback六大技术之flashback transaction query 和flashback table
- Oracle Flashback技术之Flashback Database
- Oracle Flashback技术之Flashback Table
- Oracle Flashback技术之Flashback Drop
- Oracle Flashback技术总结(三)—— Flashback Query
- oracle flashback query
- Oracle Flashback Transaction Query
- Oracle Flashback Version Query
- Oracle Flashback之Flashback database
- 黑马程序员——C语言中的数组
- 黑马程序员——OC中的类
- 黑马程序员——C语言中的预处理指令
- 黑马程序员——OC中的内存管理
- 成功解决2011款mac pro显卡门导致的MAC 花屏或 蓝屏 或 白屏
- Oracle Flashback技术之Flashback Query
- 黑马程序员——OC中的分类
- 黑马程序员——OC中的Foundation
- Windows Server部署PHP+MYSQL运行环境
- [LeetCode 253] Meeting Rooms II
- Android下Notification的构造和使用
- 产品学习:基于云计算的智能城市
- 支持向量机SVM(一)
- Android :Android Studio中如何找到自己的API