oracle 闪查询,Oracle的回闪查询
从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的回闪查询相关推荐
- MySQL回闪_MySQL进行BINLOG回闪
MySQL数据恢复 前段时间因为要保证数据恢复的质量,写了一个进行回滚的脚本. binglog2sql工具介绍 binglog2sql是一款用于解析binlog的工具,纯Python开发,安装需要有P ...
- Oracle:闪回,闪回表,闪回删除,闪回版本查询,闪回事务查询
SQL> --SCN(系统改变号) sysdate的对应关系 SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),timestamp_ ...
- mysql 回表查询优化_MySQL中的回表查询与索引覆盖:一次百万级别分页查询使用Limit 从90秒到0.6毫秒的优化...
这里写目录标题 事故现场 解决方案 提到的"回表查询" InnoDB的索引 什么是回表查询 怎么优化回表查询 事故现场 数据库使用的MySQL,有一个日志表,需要进行分页查询,于是 ...
- oracle对查询结果求和_Oracle 闪回技术详解
概述 闪回技术是Oracle强大数据库备份恢复机制的一部分,在数据库发生逻辑错误的时候,闪回技术能提供快速且最小损失的恢复(多数闪回功能都能在数据库联机状态下完成).需要注意的是,闪回技术旨在快速恢复 ...
- Oracle 临时表、数据闪回、查询被锁表、系统常用表、及常用操作
目录 Oracle 系统常用表/视图 Oracle 临时表概述与创建 flashback 闪回表中被删除的数据 flashback 闪回整个被 drop 的表 查询 Oracle 中被锁定的表 查 ...
- Oracle Database 9i, 10g闪回版本查询
不需要设置,立即识别对行的所有更改 在 Oracle9i Database 中,我们看到它推出了以闪回查询形式表示的"时间机器".该特性允许 DBA 看到特定时间的列值,只要在还原 ...
- oracle 闪回查询,闪回版本查询,闪回事务查询,闪回表,闪回删除,闪回数据库
文章目录 1. 闪回查询 1.1. 闪回时间查询 1.2. 闪回scn查询 (1) 获取scn号的方法 (2) 闪回scn查询命令 2. 闪回版本查询 3. 闪回事务查询 4. 闪回表 5. 闪回删除 ...
- 闪回的用途与实战(闪回表,闪回删除,闪回重名删除,闪回版本查询)
闪回可以做的操作有如下几种类型: 1.当数据错误删除,并且提交时(flashback table) 2.当错误删除了一张表drop table(flashback drop) 3.通过闪回获取表的历史 ...
- 验证GaussDB T 闪回事务查询功能;闪回表功能强劲闪回TRUNCATE
一.验证 GaussDB T 支持闪回事务查询功能 环境:redhat7.5+gaussdb100 1. 创建表: SQL> conn wsx/password@127.0.0.1:1888co ...
最新文章
- ORACLE穿透防火墙问题
- SAP ABAP CI/CD持续集成,持续交付解决方案
- 软件开发工具介绍之 1.代码生成器
- Android Studio调试时遇见Install Repository and sync project的问题
- WIZnet 在 Embedded World 2013展会中的展示
- 西门子触摸屏HTML控件,西门子HMI触摸屏操作手册.pdf
- 【MATLAB】几种特殊矩阵,Hilbert矩阵,Toeplitz矩阵,Vandermonde矩阵......
- Git基础-git恢复被删除的文件
- 联想 Newifi mini Y1 Padavan固件设置5Ghz桥接
- python柱状图显示数值_Python实现绘制双柱状图并显示数值功能示例
- 如何检索国外的博士论文
- 23种设计模式:(一)创建者模型
- AR客户对账单(上月欠款)
- jmeter监控服务器插件jp@gc - PerfMon Metrics Collector报错 Operation timed out
- 1.16. BIP39协议:使用助记词生成确定性钱包
- 密码加盐原理及其实现
- QT以文本流形式读写文件操作
- 沉浸式夜游是城市夜间经济发展的重中之重
- Kotlin学习(一):Kotlin基础知识
- 拖动的层,可应用课件中视频置于ppt讲稿的效果
热门文章
- verilog从txt中读取_Verilog中的文件操作
- qt connect函数_Qt 串口上位机开发Rice 上位机 学习开发
- 【Elasticsearch】留意Elasticsearch 7.x 可能无法选主的问题
- 【Elasticsearch】Elasticsearch性能调优
- 【Clickhouse】Clickhouse 分析函数 window functions 窗口函数
- 03-git上传大项目的时很慢
- spring中定时器的使用
- Java多线程学习二十四:阻塞队列包含哪些常用的方法?add、offer、put 等方法的区别?
- 单个对象和多个对象在内存中的结构图
- Java并发编程-ReadWriteLock读写锁