从oracle9i开始,oracle开始提供回闪查询特性(flashback query),允许将回滚段中的数据进行回闪,通过下面的例子来看一下这个从orac

Oracle回闪查询的新特性

从oracle9i开始,oracle开始提供回闪查询特性(flashback query),允许将回滚段中的数据进行回闪,通过下面的例子来看一下这个从oracle9i开始提供的新特性.

SQL> update emp set sal=4000 where empno=7788;

1 row updated.

SQL> update emp set sal=4000 where empno=7782;

1 row updated.

SQL> update emp set sal=4000 where empno=7698;

1 row updated.

先不提交这个事务,在另外窗口新开session,使用sys用户查询相关信息,进行进一步的分析

获得事务信息

从事务表中可以获得关于这个事务的信息,该事务位于9号回滚段(XIDUSN),在9号回滚段

上,该事务位于第29号事务槽(XIDSLOT):

SQL> select xidusn,xidslot,xidsqn,ubablk,ubafil,ubarec from v$transaction;

XIDUSN XIDSLOT XIDSQN UBABLK UBAFIL UBAREC

---------- ---------- ---------- ---------- ---------- ----------

9 29 385 1350 2 22

从v$rollstat视图中也可获得事务信息,xacts字段代表的是活动事务的数量,同样看到该事务

位于9号回滚段

SQL> select usn,writes,rssize,xacts,hwmsize,shrinks,wraps from v$rollstat;

USN WRITES RSSIZE XACTS HWMSIZE SHRINKS WRAPS

---------- ---------- ---------- ---------- ---------- ---------- ----------

0 7620 385024 0 385024 0 0

1 21390 29351936 0 29351936 0 0

2 22108 3268608 0 3268608 0 0

3 29954 450560 0 450560 0 0

4 23700 843776 0 843776 0 0

5 23334 450560 0 450560 0 0

6 21082 450560 0 450560 0 0

7 23146 2285568 0 2285568 0 0

8 28742 843776 0 843776 0 1

9 22648 2088960 1 2088960 0 0

10 24326 2220032 0 2220032 0 0

11 rows selected.

这是执行alter system dump datafile 2 block 1350

转储的回滚表空间中的数据块的信息的一部分

*-----------------------------

* Rec #0x1d slt: 0x24 objn: 517(0x00000205) objd: 517 tblspc: 0(0x00000000)

* Layer: 11 (Row) opc: 1 rci 0x00

Undo type: Regular undo Begin trans Last buffer split: No

Temp Object: No

Tablespace Undo: No

rdba: 0x00000000

*-----------------------------

uba: 0x00800546.0129.1b ctl max scn: 0x0000.000e4e9c prv tx scn: 0x0000.000e4ea6

txn start scn: scn: 0x0000.000e7526 logon user: 0

prev brb: 8389956 prev bcl: 0

KDO undo record:

KTB Redo

op: 0x04 ver: 0x01

op: L itl: xid: 0x0006.016.0000015d uba: 0x00800419.00fe.11

flg: C--- lkc: 0 scn: 0x0000.000e7524

KDO Op code: URP row dependencies Disabled

xtype: XAxtype KDO_KDOM2 flags: 0x00000080 bdba: 0x0040100f hdba: 0x00401001

itli: 2 ispac: 0 maxfr: 4863

tabn: 0 slot: 116(0x74) flag: 0x2c lock: 0 ckix: 191

ncol: 9 nnew: 7 size: 0

Vector content:

col 2: [ 2] c1 0a

col 3: [ 2] c1 0a

col 4: [ 1] 80

col 5: [ 1] 80

col 6: [ 1] 80

col 7: [ 1] 80

col 8: [ 7] 78 71 01 07 0b 07 34

先注意到这里存在一个信息ctl max scn: 0x0000.000e4e9c,这个转换为scn值就是:

SQL> select (to_number('000','xxxx')*power(2,32)+to_number('e4e9c','xxxxxxxx')) scn

from dual;

SCN

----------

937628

查询一下当前数据的scn:

SQL> select dbms_flashback.get_system_change_number scn from dual;

SCN

----------

949630

SQL>

通过特定的语法,可以将scn 937628的历史状态数据查询出来:

SQL> select * from scott.emp as of scn 937628 where empno in(7788,7782,7698);

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO

----- ---------- --------- ----- ----------- --------- --------- ------

7698 BLAKE MANAGER 7839 1981-5-1 2850.00 30

7782 CLARK MANAGER 7839 1981-6-9 2450.00 10

7788 SCOTT ANALYST 7566 1987-4-19 10.00 20

SQL>

在查询结果中,注意到3名员工的薪水恢复到了之前的状态.而在当前的查询中,这个数据是变化

后的4000:

SQL> select * from scott.emp where empno in(7788,7782,7698);

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO

----- ---------- --------- ----- ----------- --------- --------- ------

7698 BLAKE MANAGER 7839 1981-5-1 4000.00 30

7782 CLARK MANAGER 7839 1981-6-9 4000.00 10 本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉 本文系统来源:php中文网

oracle 闪查询,Oracle的回闪查询相关推荐

  1. MySQL回闪_MySQL进行BINLOG回闪

    MySQL数据恢复 前段时间因为要保证数据恢复的质量,写了一个进行回滚的脚本. binglog2sql工具介绍 binglog2sql是一款用于解析binlog的工具,纯Python开发,安装需要有P ...

  2. Oracle:闪回,闪回表,闪回删除,闪回版本查询,闪回事务查询

    SQL> --SCN(系统改变号) sysdate的对应关系 SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),timestamp_ ...

  3. mysql 回表查询优化_MySQL中的回表查询与索引覆盖:一次百万级别分页查询使用Limit 从90秒到0.6毫秒的优化...

    这里写目录标题 事故现场 解决方案 提到的"回表查询" InnoDB的索引 什么是回表查询 怎么优化回表查询 事故现场 数据库使用的MySQL,有一个日志表,需要进行分页查询,于是 ...

  4. oracle对查询结果求和_Oracle 闪回技术详解

    概述 闪回技术是Oracle强大数据库备份恢复机制的一部分,在数据库发生逻辑错误的时候,闪回技术能提供快速且最小损失的恢复(多数闪回功能都能在数据库联机状态下完成).需要注意的是,闪回技术旨在快速恢复 ...

  5. Oracle 临时表、数据闪回、查询被锁表、系统常用表、及常用操作

    目录 Oracle 系统常用表/视图 Oracle 临时表概述与创建 flashback  闪回表中被删除的数据 flashback  闪回整个被 drop 的表 查询 Oracle 中被锁定的表 查 ...

  6. Oracle Database 9i, 10g闪回版本查询

    不需要设置,立即识别对行的所有更改 在 Oracle9i Database 中,我们看到它推出了以闪回查询形式表示的"时间机器".该特性允许 DBA 看到特定时间的列值,只要在还原 ...

  7. oracle 闪回查询,闪回版本查询,闪回事务查询,闪回表,闪回删除,闪回数据库

    文章目录 1. 闪回查询 1.1. 闪回时间查询 1.2. 闪回scn查询 (1) 获取scn号的方法 (2) 闪回scn查询命令 2. 闪回版本查询 3. 闪回事务查询 4. 闪回表 5. 闪回删除 ...

  8. 闪回的用途与实战(闪回表,闪回删除,闪回重名删除,闪回版本查询)

    闪回可以做的操作有如下几种类型: 1.当数据错误删除,并且提交时(flashback table) 2.当错误删除了一张表drop table(flashback drop) 3.通过闪回获取表的历史 ...

  9. 验证GaussDB T 闪回事务查询功能;闪回表功能强劲闪回TRUNCATE

    一.验证 GaussDB T 支持闪回事务查询功能 环境:redhat7.5+gaussdb100 1. 创建表: SQL> conn wsx/password@127.0.0.1:1888co ...

最新文章

  1. ORACLE穿透防火墙问题
  2. SAP ABAP CI/CD持续集成,持续交付解决方案
  3. 软件开发工具介绍之 1.代码生成器
  4. Android Studio调试时遇见Install Repository and sync project的问题
  5. WIZnet 在 Embedded World 2013展会中的展示
  6. 西门子触摸屏HTML控件,西门子HMI触摸屏操作手册.pdf
  7. 【MATLAB】几种特殊矩阵,Hilbert矩阵,Toeplitz矩阵,Vandermonde矩阵......
  8. Git基础-git恢复被删除的文件
  9. 联想 Newifi mini Y1 Padavan固件设置5Ghz桥接
  10. python柱状图显示数值_Python实现绘制双柱状图并显示数值功能示例
  11. 如何检索国外的博士论文
  12. 23种设计模式:(一)创建者模型
  13. AR客户对账单(上月欠款)
  14. jmeter监控服务器插件jp@gc - PerfMon Metrics Collector报错 Operation timed out
  15. 1.16. BIP39协议:使用助记词生成确定性钱包
  16. 密码加盐原理及其实现
  17. QT以文本流形式读写文件操作
  18. 沉浸式夜游是城市夜间经济发展的重中之重
  19. Kotlin学习(一):Kotlin基础知识
  20. 拖动的层,可应用课件中视频置于ppt讲稿的效果

热门文章

  1. verilog从txt中读取_Verilog中的文件操作
  2. qt connect函数_Qt 串口上位机开发Rice 上位机 学习开发
  3. 【Elasticsearch】留意Elasticsearch 7.x 可能无法选主的问题
  4. 【Elasticsearch】Elasticsearch性能调优
  5. 【Clickhouse】Clickhouse 分析函数 window functions 窗口函数
  6. 03-git上传大项目的时很慢
  7. spring中定时器的使用
  8. Java多线程学习二十四:阻塞队列包含哪些常用的方法?add、offer、put 等方法的区别?
  9. 单个对象和多个对象在内存中的结构图
  10. Java并发编程-ReadWriteLock读写锁