免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1568 | 回复: 5
打印 上一主题 下一主题

请教关于CheckPoint的问题 —— 请各位大虾帮帮忙! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-04-10 10:23 |只看该作者 |倒序浏览
如下是我的假设:
1、一个CheckPoint至少是针对一个数据库实例的,而不是某个数据库文件或其他...;
2、一个CheckPont的产生到提交到磁盘有可能会有一定的间隔;
3、一个CheckPoint在提交的时候会分别更新控制文件、数据文件;

如果以上的条件成立(还请指正!),我想请问以下问题:

1、CheckPoint在提交到磁盘的时候,其更新的文件的顺序?如:先ControlFile,再数据文件;
2、CheckPoint在提交的时候到底更新日志文件的那些块?如:“DATABASE ENTRY”,“DATA FILE RECORDS”,或具体的块号(当然这与实际的Oracle版本有关)
3、CheckPoint在提交的时候到底更新数据文件的那些块?如: Block#:1
4、假如我有一个工具能够对Oracle的I/O操作进行UNDO(像文本编辑器那样),再假如问题1CheckPoint是先更新数据文件,然后再更新日志文件;那么是不是我把数据库停下来,然后UNDO到日志文件更新的位置,然后再启动Oracle,这时Oracle就不会进行数据恢复操作?

还请各位大虾帮忙回答以下,这里先谢谢了!

论坛徽章:
0
2 [报告]
发表于 2006-04-10 12:30 |只看该作者
关注一下
我的理解是先更新log_buffer,然后logw写到redolog,dbw写到datafile。同时updata controfile,应该是根系数据块头的scn#吧
不知道对不对,高手来说说吧

论坛徽章:
0
3 [报告]
发表于 2006-04-10 13:29 |只看该作者

观察

如下是我执行:alter system checkpoint所观察到系统所产生的操作,操作产生的先后顺序是从下到上。


Index   DateTime                FileName                        DataOffset      DataSize
----------------------------------------------------------------------------------------------------------------

-----------------------------------这就是Oracle每隔3秒钟都要去更新的地方---------------------------------------
25710        2006-4-10 13:04:49        G:\Oracle\ora2k\CONTROL02.CTL        offset: 49152         length: 16384
25709        2006-4-10 13:04:49        G:\Oracle\ora2k\CONTROL03.CTL        offset: 49152         length: 16384
25708        2006-4-10 13:04:49        G:\Oracle\ora2k\CONTROL01.CTL        offset: 49152         length: 16384

----------------------------------------------------------------------------------------------------------------
25707        2006-4-10 13:04:48        G:\Oracle\ora2k\REDO01.LOG        offset: 286208         length: 1024

-----------------------------------请问这里应该是什么区域?是DATABASE ENTRY区域吗------------------------------
每次执行完CheckPoint操作后均会均会出现这个
25706        2006-4-10 13:04:46        G:\Oracle\ora2k\CONTROL03.CTL        offset: 16384         length: 16384
25705        2006-4-10 13:04:46        G:\Oracle\ora2k\CONTROL02.CTL        offset: 16384         length: 16384
25704        2006-4-10 13:04:46        G:\Oracle\ora2k\CONTROL01.CTL        offset: 16384         length: 16384

-----------------------------------------------------------------------------------------------------------------------------
25703        2006-4-10 13:04:46        G:\Oracle\ora2k\CONTROL02.CTL        offset: 327680         length: 16384
25702        2006-4-10 13:04:46        G:\Oracle\ora2k\CONTROL03.CTL        offset: 327680         length: 16384
25701        2006-4-10 13:04:46        G:\Oracle\ora2k\CONTROL01.CTL        offset: 327680         length: 16384

----------------------------------------------------------------------------------------------------------------
25700        2006-4-10 13:04:46        G:\Oracle\ora2k\CONTROL02.CTL        offset: 2195456 length: 16384
25699        2006-4-10 13:04:46        G:\Oracle\ora2k\CONTROL03.CTL        offset: 2195456 length: 16384
25698        2006-4-10 13:04:46        G:\Oracle\ora2k\CONTROL01.CTL        offset: 2195456 length: 16384

-----------------------------------如下是更新所有数据文件的头:我的数据库块大小是2K-----------------------------
每次执行完CheckPoint操作后均会均会更新这些文件
25697        2006-4-10 13:04:46        G:\Oracle\ora2k\SYSAUX01.DBF        offset: 2048         length: 2048
25696        2006-4-10 13:04:46        G:\Oracle\ora2k\UNDOTBS01.DBF        offset: 2048         length: 2048
25695        2006-4-10 13:04:46        G:\Oracle\ora2k\ROSE.DBF        offset: 2048         length: 2048
25694        2006-4-10 13:04:46        G:\Oracle\ora2k\USERS01.DBF        offset: 2048         length: 2048
25693        2006-4-10 13:04:46        G:\Oracle\ora2k\SYSTEM01.DBF        offset: 2048         length: 2048

-----------------------------------请问这里应该是什么区域?是DATABASE ENTRY区域吗------------------------------
有时这里是更新的是offset: 245760 length: 16384, 不明白为什么?
25692        2006-4-10 13:04:46        G:\Oracle\ora2k\CONTROL02.CTL        offset: 262144         length: 16384
25691        2006-4-10 13:04:46        G:\Oracle\ora2k\CONTROL03.CTL        offset: 262144         length: 16384
25690        2006-4-10 13:04:46        G:\Oracle\ora2k\CONTROL01.CTL        offset: 262144         length: 16384

----------------------------------------------------------------------------------------------------------------
25689        2006-4-10 13:04:46        G:\Oracle\ora2k\UNDOTBS01.DBF        offset: 198656         length: 2048
25688        2006-4-10 13:04:46        G:\Oracle\ora2k\UNDOTBS01.DBF        offset: 67584         length: 2048

----------------------------------------------------------------------------------------------------------------
25687        2006-4-10 13:04:46        G:\Oracle\ora2k\SYSAUX01.DBF        offset: 37971968 length: 4096
25686        2006-4-10 13:04:46        G:\Oracle\ora2k\SYSAUX01.DBF        offset: 37947392 length: 2048

----------------------------------------------------------------------------------------------------------------
25685        2006-4-10 13:04:46        G:\Oracle\ora2k\UNDOTBS01.DBF        offset: 6563840 length: 4096
25684        2006-4-10 13:04:46        G:\Oracle\ora2k\UNDOTBS01.DBF        offset: 6356992 length: 2048
25683        2006-4-10 13:04:46        G:\Oracle\ora2k\UNDOTBS01.DBF        offset: 2363392 length: 4096
25682        2006-4-10 13:04:46        G:\Oracle\ora2k\UNDOTBS01.DBF        offset: 329728         length: 2048

----------------------------------------------------------------------------------------------------------------
25681        2006-4-10 13:04:46        G:\Oracle\ora2k\SYSAUX01.DBF        offset: 37902336 length: 4096

-----------------------------------这就是Oracle每隔3秒钟都要去更新的地方---------------------------------------
25680        2006-4-10 13:04:46        G:\Oracle\ora2k\CONTROL03.CTL        offset: 49152 length: 16384
25679        2006-4-10 13:04:46        G:\Oracle\ora2k\CONTROL02.CTL        offset: 49152 length: 16384
25678        2006-4-10 13:04:46        G:\Oracle\ora2k\CONTROL01.CTL        offset: 49152 length: 16384


1、这些操作所对应的区域都是什么?
2、是不是操作“CONTROL02.CTL        offset: 16384         length: 16384”完成后即表示该CheckPoint记录全部完成?
3、是不是所有类型的CheckPoint均会更新这些文件?且位置(blkno)都一样?
4、根据大虾您自己的知识或经验,请告知CheckPoint发生时另外还必须更新那些文件及区域?

[ 本帖最后由 Sailan 于 2006-4-10 13:34 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2006-04-11 09:20 |只看该作者
upup

论坛徽章:
0
5 [报告]
发表于 2006-04-11 11:59 |只看该作者
顶一下,楼主关注的问题还真是很细!

论坛徽章:
0
6 [报告]
发表于 2006-04-12 12:36 |只看该作者

why?

咋没有仁兄帮帮忙呢?帮我指条路也好!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP