ASM的文件管理深入解析.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ASM的文件管理深入解析(内含开源的ASM文件挖掘研究版程序)09年刚到阿里时,研究过一阵子ASM,当时还写了一个ASM文件直接读取的程序,就是本文后面所附的。算起来,这应该是国内首款这方面的程序了。但当时只发在公司内部的邮件组,一直没有时间整理出来。现在终于清闲些了,而且ASM也使用的越来越多,而且以后绝对是Oracle重点发展方向之一,所以决定将此程序整理出来,再配合些详细的介绍,希望可以提升大家对ASM的了解程度。也是09年初,曾经和朋友一起写过一个Oracle日志解析的程序,取名为日志挖掘研究版( /thread-1160446-1-1.html,算下来,都已经三年了,时间过的好快啊)。这个ASM直接读取程序,我也决定命令为“ASM文件挖掘研究版”,它还并不完善,只是给有需要的人提供一个思路。如果你不懂编号也没关系,本文的重点,除这个程序外,更多的是介绍ASM文件管理的原理。 “ASM文件挖掘研究版”远没有原来的“日志挖掘研究版复杂,也只花了很短时间,去掉一些调试性的注释只有不到300行代码。好了,闲言少叙,准备好了吗,开始我们的ASM探秘之旅吧。第一章 ASM文件ASM中的文件总体上来说,分为两大类,元文件和数据文件。数据文件包含Oracle的数据文件、控制文件、重做日志文件、归档日志文件等等。对于ASM来说,只要是非元文件,就是数据文件。 每一个文件,在ASM中都有一个专门的索引号,也就是编号,ASM文件索引号从1开始。其中,前255个,也就是1至255号文件,都是元文件。256之后的是其他各种文件。 元文件中包含了各种ASM的配置、各类数据文件信息还有目录、别名等等信息,都是在元文件中的。所有V$ASM_开头视图的信息,都来自元文件中。其中,1号文件包含所有文件的磁盘占用信息,包括元文件、甚至1号文件自身的空间分布信息,也都是在1号文件内部。每个文件在它里面占用一个块(4096字节,元数据块大小为4K)的空间。 从256号文件开始,是数据库的各类文件。假设你放在ASM上的第一个文件是一个控制文件A,第二个文件是一个数据文件B。哪么控制文件A在ASM中的索引号是256,数据文件B的索引号是257。 1号文件总是开始在0号磁盘2号AU,记住这个位置:0号盘2号AU。这是ASM中定位文件的起点,它的作用,有点相当于磁盘上的引导区,在电脑开机后负责将OS启动起来。 1号文件在最少情况下,至少有两个AU。上面我们提到过了,在1号文件中,每个文件占用一个元数据块,存放自身的空间分布信息。每个元数据块大小是4K,一个AU是1M,哪么,每个AU中,可以存储256个文件的空间分布信息。这其中,0号盘2号AU中,全是元文件的信息。再具体一点,0号盘2号AU,第一个元数据块被系统占用,从第二个块开始,到255为止,共255个元数据块,对应索引号1至255的文件。其实,也就是全部的元文件了。也就是说0号盘2号AU,保存了全部元文件的空间分布信息。1号文件的第二个AU,从第一个块开始,保存256号文件。第二个块对应257号文件,等等。 每次从ASM中读数据时,Oracle都要先读到1号文件,从中找出要读的目标文件在磁盘上的分布位置,然后再去读取相应的文件的数据。不用太多文字了,文字不是最直接的表达方式,还是换成图形吧。图1 这张图假设某一DiskGroup中有0到N个磁盘。再看下图:图2我们把0号盘,2号AU单独拿出来,放大显示。0号盘2号AU,是1号文件第一个AU,共有256个元数据块,编号0至255,0号块留用。1至255号块分别保存了1号文件自身和2、3等等直到255号文件的AU分布信息。 哪下面,如果我想知道某一个文件的AU分布,如何查看呢?第 二 章 kfed1、链接kfed 查看ASM磁盘的信息,可以使用KFED,在非Windows操作系统下,kfed已经编译过了,只要链接一下,就可以使用了,步骤如下:(1)、找到ins_rdbms.mk所在路径,并进入。此步骤不再列出。(2)、执行如下命令,即可链接kfed。make -f ins_rdbms.mk ikfed2、在ASM中确定磁盘 :SQL select group_number,name from v$asm_diskgroup;GROUP_NUMBER NAME------------ ------------------------------1 DG1我目前只有一个DG,名字是DG1,GROUP_NUMBER为1。SQL select group_number,disk_number,path from v$asm_disk;GROUP_NUMBER DISK_NUMBER PATH------------ ----------- ----------------

文档评论(0)

hTuQdrZEqu + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档