flashback query

FLASHBACK
技术包括多个方面:flashback database,flashback drop,flashback
query,flashback table

其中flashbackdatabase利用的是闪回日志,flashback
drop利用的回收站,flashback query
和 flashbacktable
利用的是undo信息。Flashbackquery可以帮助我们确定在过去某个时间点或者时间段内表的数据是如何存储的,而flashback
table则是帮助我们切切实实的将表闪回到过去的某个时间点。

Flashback query
是在oracle 9i时引入的的,为的是帮助我们查询在过去某个时间点某表的数据状态。语法格式为

Select * from table_name as of scnscn;

Select * from table_name as oftimestamp timestamp;

由于flashbackquery只可以查询过去某个时间点的信息,无法针对某一个时间段进行查询,因此在10g中,oracle引入了flashbackversion
query
,语法格式如下:

Select  versions_xid,versions_startscn,versions_endscn,versions_starttime,versions_endtime,….From table_name versions between scn startscn and endscn;

Select  versions_xid,versions_startscn,versions_endscn,versions_starttime,versions_endtime,….From table_name versions between scn minvalue and maxvalue;

Select  versions_xid,versions_startscn,versions_endscn,versions_starttime,versions_endtime,….From table_name versions between timstamp starttime and endtime;

需要注意的是,flashback version query不可以跨越ddl执行

除了flashbackversion query
外,oracle还为我们提供了flashback  transaction query,通过
flashback  transaction query 我们可以针对某一事务语句进行查询,获悉该事务所影响的表数据。语法格式如下:

Select * from flashback_transaction_query where xid = ??;

Flashback table
可以将表闪回的之前的某个状态,语法格式如下:

Flashbacktable table_name to scn scn;

Flashbacktable table_name to timestamp timestamp;

需要注意的是flashback table
同样不可以跨越ddl,但是如果我们仅仅是对表执行了添加列的ddl操作,那么我们是可以闪回到ddl之前的某个状态的,只是新添加的列取值全部为空。

Flashback table操作是通过临时表对需要闪回的表进行了删除和插入操作(删除所有数据并重新插入所有数据),因此可能发生行的位置改变。

时间: 2024-12-16 10:49:37

flashback query的相关文章

Flashback Query(函数示例)

Flashback Query 函数,存储过程,包,触发器等对象Flashback Drop 可以闪回与表相关联的对象, 如果是其他的对象,比如function,procedure,trigger等. 这时候,就需要使用到ALL_SOURCE 表来进行Flashback Query.ALL_SOURCE describes the text source of the stored objects accessible to the current user.Related ViewsDBA_S

Flashback version/Transaction Query,FlashbackTable

Flashback version Query相对于Flashback Query 只能看到某一点的对象状态, Oracle 10g引入的Flashback Version Query可以看到过去某个时间段内,记录是如何发生变化的. 根据这个历史,DBA就可以快速的判断数据是在什么时点发生了错误,进而恢复到之前的状态.先看一个伪列 ORA_ROWSCN. 所谓的伪列,就是假的,不存在的数据列,用户创建表时虽然没有指定,但是Oracle为了维护而添加的一些内部字段,这些字段可以像普通文件那样的使用

Oracle Flashback Drop: Undo a DROP TABLE Operation

7.4 Oracle Flashback Drop: Undoa DROP TABLE Operation Oracle Flashback Drop reverses theeffects of a DROP TABLE operation. It can be used to recover afterthe accidental drop of a table. Flashback Drop is substantially faster thanother recovery mechan

闪回flashback

1.flashback query(使用UNDO)查询某个scn时该表的内容 SQL> select * from t1; ID----------         1         2 SQL> select current_scn from v$database; CURRENT_SCN-----------   10517036 SQL> update t1 set id=11 where id=1; 已更新 1 行. SQL> commit; 提交完成. SQL>

Flashback家族一

首先说一下flashback和flashback recovery的区别:    1. recovery的恢复是基于数据文件的,先要restore备份好的数据文件,flashback是基于flashback log文件的,所以基点不一样,recovery是基于备份的时间上的,可以恢复到备份至完整归档的任何一个时刻,而flashback是基于flashback log的,而log的存储时效是受限于db_flashback_retention_target这个参数的(以分钟为单位,默认1440分钟,

Flashback家族二

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

Overview of Flashback Technology

Oracle Flashback Query : SELECT AS OFOracle Flashback Version Query :DBMS_FLASHBACK PackageOracle Flashback Table:Oracle Flashback Drop:Oracle Flashback Database:http://docs.oracle.com/cd/B28359_01/backup.111/b28270/rcmflash.htm#i1018669 Oracle Flash

Oracle Study学习之--Flashback Archive

CREATE FLASHBACK ARCHIVE Purpose Use the CREATE FLASHBACK ARCHIVE statement tocreate a flashback data archive, which provides the ability to automaticallytrack and archive transactional data changes to specified database objects. Aflashback data arch

Oracle Study之案例--数据恢复神器Flashback(1)

Oracle Study之案例--数据恢复神器Flashback(1) Flashback: Flashback 技术是以Undo segment中的内容为基础的, 因此受限于UNDO_RETENTON参数.要使用flashback 的特性,必须启用自动撤销管理表空间. 在Oracle 11g里又出了一个新特性:Oracle Flashback Data Archive. FDA通过将变化数据另外存储到创建的闪回归档区(Flashback Archive)中,以和undo区别开来,这样就可以为闪