oracle 9i闪回schema,Oracle 9i闪回查询的新特性
从Oracle9i开始,Oracle开始提供闪回查询特性(flashback query),允许将回滚段中的数据进行闪回。通过这个例子我们来看一下这个从Oracle9i开始提供的新特性。
首先我们注意到这里存在一个信息: ctl max scn: 0x0819.003f594b ,这个转换为SCN值就是:SQL> select (to_number('819','xxxx')*power(2,32) + to_number('3f594b','xxxxxxxx')) scn
2 from dual;
SCN
-----------------
8903471356235
可以查询一下当前数据库的SCN:SQL> select dbms_flashback.get_system_change_number scn from dual;
SCN
-----------------
8903471437610
通过特定的语法,我们可以将SCN为8903471356235的历史状态数据查询出来:SQL> select * from emp as of scn 8903471356235 where empno in (7788,7782,7698);
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7698 BLAKE MANAGER 7839 01-MAY-81 2850 30
7782 CLARK MANAGER 7839 09-JUN-81 2450 10
7788 SCOTT ANALYST 7566 19-APR-87 3000 20
在结果中,我们注意到3名员工的薪水恢复到了之前值。而在当前的查询中,这个数值是变化后的4000:SQL> select * from emp where empno in (7788,7782,7698);
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7698 BLAKE MANAGER 7839 01-MAY-81 4000 30
7782 CLARK MANAGER 7839 09-JUN-81 4000 10
7788 SCOTT ANALYST 7566 19-APR-87 4000 20
由于这个查询需要从UNDO中获取前镜像信息,如果UNDO中的信息被覆盖,则以上查询将会失败。为了模拟不同情况,创建一个新的UNDO表空间,切换数据库使用新的 UNDO表空间,再将原表空间Offline:SQL> create undo tablespace undotbs datafile '/opt/oracle/oradata/conner/undotbs.dbf' size 2M;
Tablespace created.
SQL> alter system set undo_tablespace=undotbs;
System altered.
SQL> alter tablespace UNDOTBS1 offline;
Tablespace altered.
SQL> alter session set events = 'immediate trace name flush_cache';
Session altered.
再来查询,此时出现错误,记录该文件已经不可读取:SQL> select * from emp as of scn 8903471356235 where empno in (7788,7782,7698);
select * from emp as of scn 8903471356235 where empno in (7788,7782,7698)
*
ERROR at line 1:
ORA-00376: file 2 cannot be read at this time
ORA-01110: data file 2: '/opt/oracle/oradata/conner/undotbs1.dbf'
将UNDOTBS1重新启用,则此时前镜像信息再次可以查询:SQL> alter tablespace UNDOTBS1 online;
Tablespace altered.
SQL> alter system set undo_tablespace=UNDOTBS1;
System altered.
在其他Session执行大量事务,使得前镜像信息被覆盖:SQL> begin
2 for i in 1 .. 2000 loop
3 update emp set sal=4000;
4 rollback;
5 end loop;
6 end;
7 /
PL/SQL procedure successfully completed.
SQL> /
PL/SQL procedure successfully completed.
SQL> /
观察回滚段的使用:SQL> select usn,xacts,RSSIZE,HWMSIZE from v$rollstat where usn=6;
USN XACTS RSSIZE HWMSIZE
---------- ---------- ---------- ----------
6 1 7331840 7331840
那么再次查询就可能收到如下错误:SQL> select * from emp as of scn 8903471356235 where empno in (7788,7782,7698);
select * from emp as of scn 8903471356235 where empno in (7788,7782,7698)
*
ERROR at line 1:
ORA-01555: snapshot too old: rollback segment number 6 with name "_SYSSMU6$" too small
ORA-01555错误出现,说明要查询的前镜像信息已经失去。
oracle 9i闪回schema,Oracle 9i闪回查询的新特性相关推荐
- oracle 9i闪回schema,oracle 9i 闪回
今天一个同事错误删除了一些记录,已经有15分钟了,我们只能尝试着使用9i的闪回功能,看看能否将记录"拿回来": 首先将删除的记录存放在一个临时表中 create table tm_ ...
- oracle 9i生成分析报告,ORACLE 9i 以后的分析函数汇总 - fesing - Qihang.Net
现在少做一些汇总: Ⅰ.start with...connect by prior connect by 是结构化查询中用到的,其基本语法是: select ... from tablename st ...
- Oracle DB 深入理解 OUI(Oracle Universal Installer)
原文连接:http://www.oracledatabase12g.com/archives/%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3oracle-universal- ...
- 盘点 Oracle 11g 中新特性带来的10大性能影响
盘点 Oracle 11g 中新特性带来的10大性能影响 原创 2017-08-02 盖国强 数据和云 Oracle的任何一个新版本,总是会带来大量引人瞩目的新特性,但是往往在这些新特性引入之初,首先 ...
- 【Oracle Database 12c新特性】ASM Scrubbing Disk Groups
在12.1中Oracle ASM提供了一个改善可用性和可靠度的的新特性 称作Scrubbing Disk Groups, Disk Scrubbing通过检查数据的逻辑讹误,从而能够在Normal 或 ...
- atitit.Oracle 9 10 11 12新特性attilax总结
atitit.Oracle 9 10 11 12新特性 1. ORACLE 11G新特性 1 1.1. oracle11G新特性 1 1.2. 审计 1 1.3. 1. 审计简介 1 1.4. ...
- oracle oem 13c新特性,Oracle Database 12c - 新特性实现的历程与13c的预测
Oracle Database 12c - 新特性实现的历程与13c的预测 虽然Oracle Database 12c的新特性文档已经随处可见,但是Oracle仍然没有关于12c正式发布的准确日期,这 ...
- linux 查oracle版本号,查看linux中oracle版本号的方法总结
在Linux系统下,我们通过以下的方法可以查看到Oracle的版本号.下面由学习啦小编整理了查看linux中oracle版本号的方法总结,希望对你有帮助. 查看linux中oracle版本号的方法总结 ...
- oracle中闪回和回滚,Oracle Flashback 闪回查询功能9i和10g的区别
Oracle从9i开始提供了基于回滚段的闪回查询(Flashback Query)功能,可用于恢复错误的DML操作.在Oracle 10g中对闪回查询做了较大改进,不再局限于闪回查询,还可用于恢复错误 ...
最新文章
- 开头轰轰烈烈,结局冷冷清清
- TypeScript 基础类型
- angularjs 中的scope继承关系——(2)
- vs2010利用属性表自动配置OpenCV(XP的32位系统,opencv版本是2.4.10)
- Android App用MulticastSocket监听组播,为什么连接到不同路由、在不同手机上跑,有的能收到有的收不到...
- 圈子 | 大数据分析汽车O2O的机会
- python执行系统命令的方法
- Java I/O 扩展
- python接口自动化测试一:http协议
- bzoj 1697: [Usaco2007 Feb]Cow Sorting牛排序(置换)
- easymock_EasyMock注释– JUnit 4
- vscode撤销删除快捷键_在Windows资源管理器中使用键盘快捷键撤消意外移动或删除...
- 《面向对象分析与设计》一3.7 例题
- python用opencv实现图片的美白磨皮_12 - OpenCV+TensorFlow 入门人工智能图像处理-磨皮美白-多智时代...
- 网络带宽相关知识和计算
- ribbon类同层次图
- selenium下对指定元素进行截图
- 关于设计的一点思考:
- LIO-SAM:Ubuntu20.04下的编译与运行
- 第23课:专项能力修炼
热门文章
- 解读程序员的武侠世界,顶级程序员是内外兼修的大侠,那么你呢?
- “烟花”来势汹汹!用数据可视化告诉你:台风最爱在哪登陆?
- 30人团队的数据架构师:谈谈数据湖这个风口吧,你们说的都没价值
- A8U Web 前端高手不能说的秘密
- 【转载】浅谈 看图软件 的设计与实现
- 微博中的c++议论触发了测试人员的神经
- 了结对编程和飞鸽传书
- Symbian和C++ SDK开发入门之应用程序
- *printf()格式化串安全漏洞分析(下)
- 编程必备:c/c++的编程经验技巧!