Flashback Query Flashback Version Query Flashback Table Flashback Transaction

Flashback Query 1)基本的Flashback Query任何一条SELECT语句都可以针对一个表的先前版本。ocp10g> select * from regions as of timestamp to_timestamp('27-12... 阅读详情
1)基本的Flashback Query
任何一条SELECT语句都可以针对一个表的先前版本。
ocp10g> select * from regions as of timestamp to_timestamp('27-12-04 16:54:06','dd-mm-yy hh24:mi:ss');

通过使用DBMS_FLASHBACK程序包,我们可以将整个会话返回至早先的时间点:
ocp10g> execute dbms_flashback.enable_at_time(to_timestamp('27-12-04 16:54:06','dd-mm-yy hh24:mi:ss'));
此时,所有查询都将看到位于指定时间的数据库。其他所有会话将看到实时数据,而该会话在取消闪回之前将看到数据库的一个冻结版本:
ocp10g> execute dbms_flashback.disable;

启用Flashback Query的语法可以接受一个时间标记或者一个SCN。如果使用SCN,那么闪回的时间点就是精确的。如果指定一个时间点,那么这个时间点将会映射为一个精度为3秒钟的SCN。

2)Flashback Table Query
首先,为所有需要闪回的表启用默认为表闪回先决条件的记录转移。
ocp10g> alter table <table_name> enable row movement;

然后,执行表闪回。
ocp10g> flashback table <table_name> to timestamp to_timestamp('27-12-04 18:30:11','dd-mm-yy hh24:mi:ss');

注:可以同时闪回多个Table,这样多个表在一个事务中闪回,并且只在事务结束时检查约束。
ocp10g> flashback table <table_name1>,<table_name2> to timestamp to_timestamp('27-12-04 18:30:11','dd-mm-yy hh24:mi:ss');

可以闪回至某个系统改变号,同时在执行闪回操作期间引发DML触发器:
SQL> flashback table <table_name1>,<table_name2> to scn 6539425 enable triggers;

3)Flashback Version Query
显示Table中相应记录的所有版本的SQL
ocp10g> select empno,ename,sal,versions_xid,versions_startscn,versions_endscn,versions_operation from emp versions between scn minvalue and maxvalue where empno=8000;

显示Table中两个时间标记指定的时间范围内的所有版本的SQL
ocp10g> select empno,ename,sal,versions_xid,versions_starttime,versions_endtime,versions_operation from emp versions between timestamp to_timestamp(systimestamp-1/24) and systimestamp where empno=8000;

4)Flashback Transaction Query
例子:
下面的示例将薪金值乘以11(实际上应当只增加10%)
SQL> update emp set sal=sal*11 where empno=7902;
SQL> commit;

随后我们察觉到出现了错误。此时可以查询记录的所有版本(如下所示):
SQL> select ename,sal,versions_xid from emp versions between scn minvalue and maxvalue where empno=7902;
ENAME                               SAL   VERSIONS_XID
-------------------   ------------------   -----------------------------------
FORD                             33000   06002600B0010000
FORD                               3000

这个查询简要地说明了所发生的情况,并且给出了倒退变化的足够信息。但是,如果指定的事务影响了其他表中的其他记录,那么将会发生什么情况?为了确定所发生的情况,就需要查询FLASHBACK_TRANSACTION_QUERY视图,针对受到指定事务影响的每条记录,该视图中都存在一条相关的记录。XID列的类型为RAW、VERSIONS_XID伪劣采用十六进制的情况稍微复杂一些,因此必须使用类型强制转换函数完成二者的连接:
SQL> select operation,undo_sql from flashback_transaction_query where xid=hextoraw('06002600B0010000');
OPERATION    UNDO_SQL
----------------    -------------------------------------------------------------------------
UPDATE          update "SCOTT"."EMP" set "SAL"='3000' where ROWID='AAAM+yAAEAAAAAeAAM';

上面这个查询只返回一条记录(从而确定只有一条记录真正受到指定事务的影响),并且提供了一条倒退变化影响的SQL语句。读者须要注意ROWID在UNDO_SQL语句中的用法。假如没有对表进行过重新组织,那么所提供的SQL语句能够修改正被修改的记录。
数据回滚:基于时间的查询(AS OF TIMESTAMP) 1.应用Flashback Query查询过去的数据     Flashback Query这一特性,最常被应用的就是修复误操作的数据了。注意,这并不是说Flashback Query能够恢复数据。Flashback Query本身不会恢复任何操作或修改,也不能告诉你做过什么操作 阅读详情

相关推荐

第7天-2 flashback table 】【flashback version query 】【flashback transaction query 】【flashback database】

flashback --============ 1.flashback query (undo) 2.flashback drop (recyclebin)(system tablespace不支持) 3.flashback table(undo)(sys user 不支持) 4.flashback version query select versions_xid,versions_op

hugh 's Oracle 10g blog 1096

Oracle Flashback 技术总结

tianlesoftware同学的这篇文章不错,全面,简洁明了,通读了一遍,自己加了点注释,学习学习! =============================================================================== Oracle Flashback 技术总结 Flashback 技术是以Undo segment中的内容为基础的,

朝着梦想 渐行前进 1945

【Oracle】 Flashback(闪回)技术实操指南

闪回类型依赖对象适用场景核心限制闪回日志整库回退到过去时点无法解决介质故障,依赖控制文件回收站恢复误删表 / 索引不支持 SYS 对象、函数 / 存储过程UNDO 表空间查询 / 恢复单表历史数据受 UNDO_RETENTION 限制,最多保留 5 天UNDO 表空间 + 行移动单表 / 多表精准回退DDL 操作会导致 UNDO 失效闪回归档区长期保留 / 审计数据11g 以上支持,需额外。

dishugj的博客 1074

oracle flashback query(闪回查询)

在Oracle 10g中,Flash back家族分为以下成员: Flashback Database Flashback Drop Flashback Table Flashback Query(分Flashback Query,Flashback Version QueryFlashback Transaction Query) 下面介绍一下Flashback Drop 和Flashback

duncan 706

Flashback Query 还原数据

1)基本的Flashback Query 任何一条SELECT语句都可以针对一个表的先前版本。 ocp10g> select * from 表名 as of timestamp to_timestamp('27-12-04 16:54:06','dd-mm-yy hh24:mi:ss'); create table sq_sqxx_all_temp_hjw as select * from

£渚∮薰£ 740

flashback总结

转自:http://www.cnblogs.com/coohoo/archive/2011/01/16/1936888.htmlFlashback技术是以Undosegment中的内容为基础的,因此受限于UNDO_RETE...

cuanyao0624的博客 137

Oracle 10g Flashback 技术小结

Oracle 10g Flashback 技术小结 (1)上一篇 / 下一篇  2008-04-30 13:17:57 / 个人分类:Backup and Recovery 查看( 503 ) / 评论( 1 ) / 评分( 5 / 0 ) 概述:Flashback 技术在Oracle 10g中提供了更强大的功能。它包括了table level的Flashback Query, F

我爱海 684

个人闪回技术小结

概述:Flashback 技术在Oracle 10g中提供了更强大的功能。它包括了table level的Flashback Query, Flashback Version Query, Flashback Transaction Quey, Flashback Table and Flashback Drop 和database level的Flashback database。其中,Fl

我爱海 1827

转载-Oracle Flashback技术总结

文章出处:http://www.cnblogs.com/coohoo/archive/2011/01/16/1936888.html Flashback 技术是以Undo segment中的内容为基础的, 因此受限于UNDO_RETENTON参数。要使用flashback 的特性,必须启用自动撤销管理表空间。  在Oracle 10g中, Flash back家族分为以下成员: Fla

605

flashback技术总结

Flashback 技术是以Undo segment中的内容为基础的, 因此受限于UNDO_RETENTION参数。要使用flashback 的特性,必须启用自动撤销管理表空间。 在Oracle 10g中, Flash back家族分为以下成员: Flashback Database, Flashback Drop,Flashback Query(分...

weixin_34307464的博客 115

Oracle 10g Flashback 技术小结 (1)

概述:Flashback 技术在Oracle 10g中提供了更强大的功能。它包括了table level的Flashback Query, Flashback Version Query, Flashback Transacti...

congkutu8778的博客 202

Oracle Flashback技术总结

Flashback技术是以Undosegment中的内容为基础的,因此受限于UNDO_RETENTON参数。要使用flashback的特性,必须启用自动撤销管理表空间。 在Oracle10g中,Flashback家族分为以下成员:FlashbackDatabase,FlashbackDrop,FlashbackQuery(分FlashbackQuery,Flash...

weixin_30794851的博客 71

数据恢复[Oracle] Flashback闪回机制

最近研究数据恢复,稍微总结一下,以后继续补充:     数据库     级别:Flashback Database     表级别:Flashback Drop和Flashback TableFlashback Data Archive     记录级别:Flashback Version QueryFlashback Transaction Query       F...

weixin_33858249的博客 165

Flashback家族二

三、Flashback Query正如前言中所提,Flashback Query 是利用多版本读一致性的特性从UNDO 表空间读取操作前的记录数据!什么是多版本读一致性Oracle 采用了一种非常优秀的设计,通过undo 数据来确保写不堵塞读,简单的讲,不同的事务在写数据时,会将数据的前映像写入undo 表空间,这样如果同时有其它事务查询该表数据,则可以通过undo 表...

weixin_33790053的博客 97

Oracle 10g Flashback 技术小结(zt)

概述:Flashback 技术在Oracle 10g中提供了更强大的功能。它包括了table level的Flashback Query, Flashback Version Query, Flashback Transacti...

cuixie2370的博客 156

Oracle Flashback 技术 总结

Flashback 技术是以Undo segment中的内容为基础的, 因此受限于UNDO_RETENTON参数。要使用flashback 的特性,必须启用自动撤销管理表空间。在Oracle 10g中, Flash back家族...

cuipo8998的博客 125
上一篇: 聚集索引和非聚集索引
下一篇: linux ORA-12560: TNS:protocol adapter error
rudy_gao
博客等级 码龄15年 71粉丝 188原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值