[20180306]关于DEFERRED ROLLBACK2.txt

--//上午测试DEFERRED ROLLBACK针对表空间offline才有效,我测试回滚一定会写到DEFERRED ROLLBACK段.
--//但是提交是否会写入会EFERRED ROLLBACK呢?测试看看.

1.环境:
SCOTT@book> @ &r/ver1
PORT_STRING                    VERSION        BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx            11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

2.建立测试例子:
--//session 1:
SCOTT@book> create table DEMO   (id number, update_scn number, commit_scn number,vc varchar2(20)) SEGMENT CREATION IMMEDIATE tablespace tea ;
Table created.

SCOTT@book> select current_scn,sysdate from v$database ;
CURRENT_SCN SYSDATE
------------ -------------------
13277394884 2018-03-05 14:53:21

SCOTT@book> insert into DEMO (id )values (1);
1 row created.

SCOTT@book> commit ;
Commit complete.

SCOTT@book> update demo set update_scn=dbms_flashback.get_system_change_number, commit_scn=userenv('commitscn'),vc='aaa1bbb2' where id=1;
1 row updated.

--//session 2:
SCOTT@book> alter tablespace tea offline ;
Tablespace altered.

SCOTT@book> select OWNER,SEGMENT_NAME,SEGMENT_TYPE,HEADER_FILE,HEADER_BLOCK,BYTES from dba_segments where segment_type='DEFERRED ROLLBACK';
OWNER  SEGMENT_NAME         SEGMENT_TYPE        HEADER_FILE HEADER_BLOCK        BYTES
------ -------------------- ------------------ ------------ ------------ ------------
SYS    1.2424               DEFERRED ROLLBACK             1         2424        65536

SCOTT@book> select * from dba_extents where segment_name='1.2424';
OWNER  SEGMENT_NAME         SEGMENT_TYPE       TABLESPACE_NAME                   EXTENT_ID      FILE_ID     BLOCK_ID        BYTES       BLOCKS RELATIVE_FNO
------ -------------------- ------------------ ------------------------------ ------------ ------------ ------------ ------------ ------------ ------------
SYS    1.2424               DEFERRED ROLLBACK  SYSTEM                                    0            1         2424        65536            8            1

SCOTT@book> @ &r/bbvi 1 2424
BVI_COMMAND
----------------------------------------------------------------------------------------------------
bvi -b 19857408 -s 8192 /mnt/ramdisk/book/system01.dbf

--//8192*8 = 65536,执行bvi -b 19857408 -s 65536 /mnt/ramdisk/book/system01.dbf,查询无法找到字符串aaa1bbb2.

SCOTT@book> commit ;
commit
*
ERROR at line 1:
ORA-00376: file 6 cannot be read at this time
ORA-01110: data file 6: '/mnt/ramdisk/book/tea01.dbf'

--//为什么呢?因为调用userenv('commitscn')函数非常特殊,类似触发器在commit时写入新的scn号到块中,而这个时候表空间offline无法读取,报错.
SCOTT@book> alter tablespace tea online ;
Tablespace altered.

3.继续测试:
--//session 1:
SCOTT@book> alter tablespace tea online ;
Tablespace altered.

SCOTT@book> select rowid,demo.* from demo;
ROWID                        ID   UPDATE_SCN   COMMIT_SCN VC
------------------ ------------ ------------ ------------ --------------------
AAAWGSAAGAAAACBAAA            1

SCOTT@book> update demo set update_scn=dbms_flashback.get_system_change_number, vc='AAA1ZZZ2' where id=1;
1 row updated.

--//session 2:
SCOTT@book> alter tablespace tea offline ;
Tablespace altered.

SCOTT@book> select OWNER,SEGMENT_NAME,SEGMENT_TYPE,HEADER_FILE,HEADER_BLOCK,BYTES from dba_segments where segment_type='DEFERRED ROLLBACK';
OWNER  SEGMENT_NAME         SEGMENT_TYPE        HEADER_FILE HEADER_BLOCK        BYTES
------ -------------------- ------------------ ------------ ------------ ------------
SYS    1.2424               DEFERRED ROLLBACK             1         2424        65536

SCOTT@book> select * from dba_extents where segment_name='1.2424';
OWNER  SEGMENT_NAME         SEGMENT_TYPE       TABLESPACE_NAME                   EXTENT_ID      FILE_ID     BLOCK_ID        BYTES       BLOCKS RELATIVE_FNO
------ -------------------- ------------------ ------------------------------ ------------ ------------ ------------ ------------ ------------ ------------
SYS    1.2424               DEFERRED ROLLBACK  SYSTEM                                    0            1         2424        65536            8            1

--//session 1:
SCOTT@book> commit ;
Commit complete.

SCOTT@book> alter system checkpoint;
System altered.

$ bvi -b 19857408 -s 65536 /mnt/ramdisk/book/system01.dbf

--//另存为/tmp/1.2424

--//session 2:
SCOTT@book> alter tablespace tea online ;
Tablespace altered.

SCOTT@book> select ora_rowscn,rowid,demo.* from demo;
  ORA_ROWSCN ROWID                        ID   UPDATE_SCN   COMMIT_SCN VC
------------ ------------------ ------------ ------------ ------------ --------------------
13277396291 AAAWGSAAGAAAACBAAA            1  13277395703              AAA1ZZZ2

select 13277396291,32,trunc(13277396291/power(2,32)) scn_wrap,mod(13277396291,power(2,32))  scn_base from dual
13277396291           32     SCN_WRAP     SCN_BASE
------------ ------------ ------------ ------------
13277396291           32            3    392494403

SCOTT@book> @ &r/10to16 392494403
10 to 16 HEX   REVERSE16
-------------- ------------------
000001764fd43 0x43fd6417

--//在/tmp/1.2424文件中查询1764fd43, 43fd6417都没有找到,说明commit并不写DEFERRED ROLLBACK段.

[20180306]关于DEFERRED ROLLBACK2.txt相关推荐

  1. ajax dojo deferred,dojo(四):ajax请求

    储备知识 1.在介绍新版本的ajax请求之前,需要先了解一些dojo/Deferreds. 初次听到"Deferred"这个概念,可能会觉得这是一个神秘的东西.实际上它在执行异步操 ...

  2. twisted系列教程十九–cancel deferred

    Introduction twisted 是一个正在发展的项目,twisted 的开发者们会添加一些新的特色或者扩展旧的.随着twisted 10.1.0 的发布,开发者们增加了一个新的功能–取消,这 ...

  3. twisted系列教程十四— pre-fireed deferred

    Introduction 在这一部分我们将要学习deferred 类的另外的一个方面.为了促进讨论,我们要为我们的poetry service增加一个server.假设我们有大量的内部的client ...

  4. twisted系列教程十三–deferred 中的deferred

    Introduction 回想一下第十部分的poetry client 5.1,client 用一个deferred 来管理一个callback 链,这个callback 链中调用了一个transfo ...

  5. Promise的deferred对象详解

    基础知识 简单说,deferred 对象就回调函数解决方案.在英语中,defer的意思是"延迟",所以 deferred 对象的含义就是"延迟"到未来某个点再执 ...

  6. [20170816]Join Elimination Bug.txt

    [20170816]Join Elimination Bug.txt https://jonathanlewis.wordpress.com/2017/08/14/join-elimination-b ...

  7. js浏览器下载jpg, png, txt文件踩坑(尝试了百度的各种方法,以下总结2个靠谱点的)

    使用a标签下载jpg,png , txt 格式文件的话,因为浏览器机制的原因,会直接打开文件而不是下载!(如果是相对路径的文件,使用a标签的href则能正常下载) 网络图片jpg,png下载 例如le ...

  8. Python Scrapy 爬取论文以及解决Unhandled error in Deferred问题

    前言 最近由于要调研一些机器学习方面的最新研究技术,故需要看一些相关方面的论文,这里就简单写了一个爬虫脚本,非常简单,使用的是Scrapy 框架 在实践的过程中遇到Unhandled error in ...

  9. 使用哈工大LTP进行文本命名实体识别并保存到txt

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/broccoli2/article/de ...

最新文章

  1. 一文看尽深度学习中的20种卷积(附源码整理和论文解读)
  2. day26 re正则表达式
  3. 实验讲解OSPF网络类型
  4. 设计模式:责任链模式(Chain of Responsibility)
  5. 数组追加数组,小程序数组里面追加数组如何操作?
  6. Android 查看每个应用的最大可用内存
  7. linux send 失败_Epoll学习服务器的实现-Linux内核原始Epoll结构
  8. Nginx学习总结(5)——Nginx基本配置备忘
  9. PCL之求点云的BoundingBox
  10. 归档日志存在arch_还在用ELK? 是时候了解一下轻量化日志服务Loki了
  11. graphpad细胞增殖曲线_Graphpad 作图教程 | 这份超详细的生存曲线绘制指南,科研新手一看就会!...
  12. AV1 解码器 dav1d
  13. 《2015年中国公有云服务发展报告》跋
  14. Python_动态二维码的制作
  15. 练习3-8 查询水果价格
  16. 各大 IT 公司的架构图
  17. GD32 定时器+一个IO实现SIF读取
  18. 完美识别率 迅捷PDF转换成Word转换器发布
  19. 关于若依框架多级菜单的设置
  20. 通用Excel表格导出(Map类型数据导出为表格)

热门文章

  1. python兼职程序员工资一般多少-做Python程序员,工资一般多少?
  2. python多久学会自学-怎么自学python,大概要多久?
  3. python哪一版好用-最好的 Python IDE,你们推荐使用哪一个?
  4. 函数式编程语言python-用Python进行基础的函数式编程的教程
  5. python文件传输模块ftplib模块的使用
  6. spring mvc之HandlerMapping
  7. UVa739 Soundex Indexing
  8. UVa1421 - Archery
  9. UVa11646 - Athletics Track(水题)
  10. 为什么写博客?如何在博客中更好的分享?