Flashback Version/Transaction Query
1、应用Flashback Version Query查询记修改版本
SQL> select dbms_flashback.get_system_change_number from dual; --查询当前SCN值 GET_SYSTEM_CHANGE_NUMBER
------------------------
1574142 SQL> update flash_tab set id=id+100 where id>15; 已更新5行。 SQL> commit; 提交完成。 SQL> delete flash_tab where id<15; 已删除14行。 SQL> rollback; 回退已完成。 SQL> select * from flash_tab; ID VL
---------- --
10 I
11 J
12 K
13 L
14 M
15 N
116 O
117 P
118 Q
119 R
120 S
1 /
2 A
3 B
4 C
5 D
6 E
7 F
8 G
9 H 已选择20行。 SQL> delete flash_tab where id<5; 已删除4行。 SQL> commit; 提交完成。 SQL> select * from flash_tab; ID VL
---------- --
10 I
11 J
12 K
13 L
14 M
15 N
116 O
117 P
118 Q
119 R
120 S
5 D
6 E
7 F
8 G
9 H 已选择16行。 SQL> insert into flash_tab values(201,'A1'); 已创建 1 行。 SQL> commit; 提交完成。 SQL> insert into flash_tab values(202,'B1'); 已创建 1 行。 SQL> COMMIT; 提交完成。 SQL> SELECT DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER FROM DUAL; GET_SYSTEM_CHANGE_NUMBER
------------------------
1574208
执行Version Query查询flash_tab表中记录:
SQL> select id,vl,versions_startscn,versions_endscn,versions_operation,versions_xid from flash_tab versions between scn 1574142 and 1574208; ID VL VERSIONS_STARTSCN VERSIONS_ENDSCN V VERSIONS_XID
---------- -- ----------------- --------------- - ----------------
202 B1 1574198 I 0900170004040000
201 A1 1574192 I 0300120034040000
4 C 1574180 D 050015001B040000
3 B 1574180 D 050015001B040000
2 A 1574180 D 050015001B040000
1 / 1574180 D 050015001B040000
120 S 1574157 U 0600180005040000
119 R 1574157 U 0600180005040000
118 Q 1574157 U 0600180005040000
117 P 1574157 U 0600180005040000
116 O 1574157 U 0600180005040000
10 I
11 J
12 K
13 L
14 M
15 N
16 O 1574157
17 P 1574157
18 Q 1574157
19 R 1574157
20 S 1574157
1 / 1574180
2 A 1574180
3 B 1574180
4 C 1574180
5 D
6 E
7 F
8 G
9 H 已选择31行。
2.使用Flashback Transaction Query查询事务信息
用户在执行闪回事务查询之前,必须为用户授予适当的DBMS_FLASHBACK包上的权限。
grant execute on dbms_flashback to scott;
grant select any transaction to scott;
--------
开启flashback:
SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database flashback on;
SQL> alter database open;
SQL> conn / as sysdba;
已连接。
SQL> alter database add supplemental log data; 数据库已更改。
-------------------------------------------------------
启用重做日志流,否则查询Flashback_transaction_query的undo_sql列为空,并且OPERATION列为UNKNOWN,
SQL> alter database add supplemental log data; Database altered.
测试案例:
SQL> conn scott/tiger;
已连接。
-------------------
SQL> select current_scn from v$database; CURRENT_SCN
-----------
1586922 SQL> select * from flash_tab; ID VL
---------- --
1 a
2 ts SQL> update flash_tab set vl='b' where id=1; 已更新 1 行。 SQL> commit; 提交完成。 SQL> insert into flash_tab values(3,'c'); 已创建 1 行。 SQL> commit; 提交完成。 SQL> select current_scn from v$database; CURRENT_SCN
-----------
1586956 ======================
SQL> select xid,commit_scn,commit_timestamp,operation,undo_sql
2 from flashback_transaction_query q where q.xid in( select versions_xid from scott.flash_tab versions between scn 1586922 and 1586956); XID COMMIT_SCN COMMIT_TIMESTAMP OPERATION UNDO_SQL
---------------- ---------- ---------------- -------------------------------- --------------------------------------------------------------------------------
02001200FE030000 1586949 2015/1/10 17:03: INSERT delete from "SCOTT"."FLASH_TAB" where ROWID = 'AAASZaAAEAAAAJ2AAB';
02001200FE030000 1586949 2015/1/10 17:03: BEGIN
06001C000A040000 1586940 2015/1/10 17:03: UPDATE update "SCOTT"."FLASH_TAB" set "VL" = 'a' where ROWID = 'AAASZaAAEAAAAJ0AAC';
06001C000A040000 1586940 2015/1/10 17:03: BEGIN
Flashback Version/Transaction Query的更多相关文章
- Flashback version/Transaction Query,FlashbackTable
Flashback version Query相对于Flashback Query 只能看到某一点的对象状态, Oracle 10g引入的Flashback Version Query可以看到过去某个 ...
- Flashback Version Query、Flashback Transaction Query快速闪回细粒度数据
Flashback Version Query 闪回版本查询 使用Flashback Version Query 返回在指定时间间隔或SCN间隔内的所有版本,一次commit命令就会创建一个版本. ...
- Oracle Flashback Transaction Query with Oracle Flashback Version Query
Oracle Flashback Transaction Query with Oracle Flashback Version Query In this example, a database a ...
- 闪回之 Flashback Query (dml表、过程、函数、包等)、Flashback version Query
Flashback Query 背景:Flashback 是 ORACLE 自 9i 就开始提供的一项特性,在 9i 中利用oracle 查询多版本一致的特点,实现从回滚段中读取表一定时间内操作过的数 ...
- 利用flashback transaction query新特性进行事务撤销
具备了flashback version query查询的基础,我们就可以进行基于flashback version query的恢复.这就是flashback transaction query.f ...
- PLSQL_闪回操作3_Fashback Transaction Query
2014-12-09 Created By BaoXinjian
- Hibernate有五大核心接口,分别是:Session Transaction Query SessionFactoryConfiguration
Session接口: Session接口 Session 接口对于Hibernate 开发人员来说是一个最重要的接口.然而在Hibernate中,实例化的Session是一个轻量级的类,创建和销毁它都 ...
- ocp 1Z0-043 131-205题解析
131. Which three methods can you use to run an Automatic Database Diagnostic Monitor (ADDM) analysis ...
- PLSQL_闪回操作2_Fashback Version Query
2014-12-09 Created By BaoXinjian
随机推荐
- [转]CodeIgniter与Zend Acl结合实现轻量级权限控制
Tag :CodeIgniter Zend Acl 权限控制 1. Zend_Acl简介 Zend_Acl 为权限管理提供轻量并灵活的访问控制列表 (ACL,access control list) ...
- qt超强精美绘图控件 - QCustomPlot一览 及 安装使用教程
1.概述 QCustomPlot 是一个超强超小巧的qt绘图类,非常漂亮,非常易用,只需要加入一个qcustomplot.h和qcustomplot.cpp文件即可使用,远比qwt方便和漂亮,可以自己 ...
- Java中遍历Map对象的方法
方法一: 在for-each循环中使用entries来遍历 这是最常见的遍历方式,在需要获取key和value时使用. Map<Integer, Integer> map = new Ha ...
- 《JavaScript 闯关记》之事件
JavaScript 程序采用了异步事件驱动编程模型.在这种程序设计风格下,当文档.浏览器.元素或与之相关的对象发生某些有趣的事情时,Web 浏览器就会产生事件(event).例如,当 Web 浏览器 ...
- (转)实例详解CSS中position的fixed属性使用
关于fixed属性,在什么情况下需要用,怎么用,首先,我们应该先了解下fixed属性的说明:fixed总是以body为定位时的对象,总是根据浏览器的窗口来进行元素的定位,通过"left&qu ...
- django表单及母板
在之前的埔文中说到了对Model的操作以及对url的路由映射等内容,对应django的mtv框架则是完成了学习,Model与viewer的操作,那么本节主要来唠叨一下template,当Model,v ...
- PHP学习笔记二十二【静态方法二】
<?PHP class Student{ public static $fee; public $name; //构造函数 function __construct($name) { $this ...
- TransactionScrope
测这个东西其实是由生产环境数据库报错,ORA-14450错误. 测试结果是: 1)使用transactionscrope时,数据库连接打开需在scrope内打开: 2)TransactionScope ...
- OpenCV——写手势识别碰到的各种错误
最近写opencv的手势识别时,真的碰到了好多好多程序运行时的错误. 比如: 位置冲突: findcontours函数的使用错误: 各种符号的加载错误: 这种符号加载的错误,一般用网上各种方法就可以解 ...
- C++ 查找文件夹下的文件
#include <string> #include <vector> #include <cstring> #include <cstdio> #in ...