楼主: guoyJoe

【话题讨论】深入解析Oracle IMU模式下的REDO格式

[复制链接]
论坛徽章:
135
玉石琵琶
日期:2014-07-02 10:11:04九尾狐狸
日期:2014-07-02 10:11:04紫蜘蛛
日期:2014-07-02 10:11:04蓝色妖姬
日期:2014-07-02 10:11:04蓝色妖姬
日期:2014-08-28 15:17:25马上加薪
日期:2014-08-07 12:47:01马上加薪
日期:2014-07-23 11:55:37马上加薪
日期:2014-07-21 16:24:17马上加薪
日期:2014-07-17 17:01:52马上加薪
日期:2014-07-17 16:15:19
101#
发表于 2014-1-10 23:50 | 只看该作者
chendaodao2008 发表于 2014-1-10 17:59
1&5.IMU
        英文全称-In Memory Undo
        在共享内存中(Shared Pool)独立的内存区域用于存储Undo信息,

莉莉姐好

使用道具 举报

回复
论坛徽章:
490
红宝石
日期:2014-04-05 19:53:18海蓝宝石
日期:2014-04-05 21:24:30数据库板块每日发贴之星
日期:2013-05-27 22:53:45生肖徽章:鸡
日期:2014-08-24 18:39:29青年奥林匹克运动会-羽毛球
日期:2014-09-24 08:37:59马上有房
日期:2015-01-03 10:23:28喜羊羊
日期:2015-03-04 14:54:422015年新春福章
日期:2015-03-06 11:59:47秀才
日期:2017-04-06 18:09:28版主6段
日期:2014-05-27 02:19:57
102#
 楼主| 发表于 2014-1-11 16:19 | 只看该作者
chendaodao2008 发表于 2014-1-10 17:59
1&5.IMU
        英文全称-In Memory Undo
        在共享内存中(Shared Pool)独立的内存区域用于存储Undo信息,

美女DBA莉莉,分析的不错。

使用道具 举报

回复
论坛徽章:
0
103#
发表于 2014-1-12 08:36 | 只看该作者
本帖最后由 miniid1 于 2014-1-12 08:41 编辑
wenzhou320 发表于 2014-1-9 11:16
alter system switch logfile;

update bbb set name='AAAAAAAAA' WHERE ID=1;

回复错了


使用道具 举报

回复
论坛徽章:
0
104#
发表于 2014-1-12 08:42 | 只看该作者
还不算晕 发表于 2014-1-9 12:42
再撕过年没衣服穿了。。

http://blog.csdn.net/haibusuanyun/article/details/18037635   关于SMO ...

这个实验设计值得商洽。
只能证明
1. 事务确实使用的private redo & IMU;
2. 在没提交或者刷新前,确实有进程会合并private redo & IMU写出去pulic log buffer.
但是不能证明是
1.smon所为
2.每3秒刷新, 未提交时,LGWR不是立即从log buffer写的,有延迟。

使用道具 举报

回复
论坛徽章:
0
105#
发表于 2014-1-12 08:50 | 只看该作者
我用gdb/oradebug 把smon进程挂起了,但是大概10分钟后在log file里还是看到了redo record,这证明除了smon外,还有进程在干这件事,当然也可能是这个server process自己干的。

使用道具 举报

回复
论坛徽章:
0
106#
发表于 2014-1-12 08:58 | 只看该作者
另外在做实验时,发现oracle在下面情况下会对当前transaction 放弃使用IMU & private redo:
1. 事务active时间过长(几分钟)
2. 对undo block dump,不管是用oradebug dump还是用alter session set events 'immediate trace name BUFFER level xxx'。其实对oradebug dump能终止IMU 还是挺惊讶的,看来只好用gdb去看了。

对数据块 dump没事,用undo record构造CR block也没事。

使用道具 举报

回复
论坛徽章:
10
2013年新春福章
日期:2013-02-25 14:51:242014年新春福章
日期:2014-02-18 16:44:08技术图书徽章
日期:2014-01-24 09:42:21优秀写手
日期:2013-12-18 09:29:08宝马
日期:2013-11-25 20:45:12阿斯顿马丁
日期:2013-11-13 22:54:13兰博基尼
日期:2013-08-31 23:11:36夏利
日期:2013-08-26 13:30:20双黄蛋
日期:2013-06-14 21:55:42马上有对象
日期:2014-02-18 16:44:08
107#
发表于 2014-1-12 09:01 | 只看该作者
miniid1 发表于 2014-1-12 08:50
我用gdb/oradebug 把smon进程挂起了,但是大概10分钟后在log file里还是看到了redo record,这证明除了smon外 ...

我也觉得不严谨,不过暂时没想到其它方法来验证。。只能侧面证明确定有其它进程也会估这操作,可能是SMON, 把SMON,LGWR,DGWR都挂起试下呢?

使用道具 举报

回复
论坛徽章:
0
108#
发表于 2014-1-12 09:03 | 只看该作者
因为事务active时间过长(几分钟) 会终止IMU,所以smon挂起后,可能timeout后,server process 自己把IMU & private redo的东西刷新到log buffer了,但是我看了redo entries & redo size 没变,似乎这坏事又不是它干的。

使用道具 举报

回复
论坛徽章:
490
红宝石
日期:2014-04-05 19:53:18海蓝宝石
日期:2014-04-05 21:24:30数据库板块每日发贴之星
日期:2013-05-27 22:53:45生肖徽章:鸡
日期:2014-08-24 18:39:29青年奥林匹克运动会-羽毛球
日期:2014-09-24 08:37:59马上有房
日期:2015-01-03 10:23:28喜羊羊
日期:2015-03-04 14:54:422015年新春福章
日期:2015-03-06 11:59:47秀才
日期:2017-04-06 18:09:28版主6段
日期:2014-05-27 02:19:57
109#
 楼主| 发表于 2014-1-12 09:18 | 只看该作者
miniid1 发表于 2014-1-12 08:42
这个实验设计值得商洽。
只能证明
1. 事务确实使用的private redo & IMU;

从UNDO IMU的拷贝到UNDO块Buffer中,这一步不一定是在提交时由Server process进程完成,也有可能是由SMON进程完成。你用DTRACE跟踪过吗?

使用道具 举报

回复
论坛徽章:
0
110#
发表于 2014-1-12 09:30 | 只看该作者
guoyJoe 发表于 2014-1-12 09:18
从UNDO IMU的拷贝到UNDO块Buffer中,这一步不一定是在提交时由Server process进程完成,也有可能是由SMON ...

在11.2.0.4中,加cbc,不再用sskgslcas了,还没看到vage的更新,所以先等等

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表