Original
2016-06-30
庄培培
沃趣科技
原作者:Bane Radulovic
译者: 庄培培
审核: 魏兴华
DBGeeK社群联合出品
当ASM创建一个文件时(例如数据库实例要求创建一个数据文件),它会以extent为单位分配空间。一旦文件被创建,ASM会传递extent映射表给数据库实例,后续数据库实例能在不和ASM实例交互的情况下访问这个文件。如果一个文件的extent需要被重新定位,比如磁盘组进行rebalance操作,ASM会告知数据库实例关于extent映射表的变更。可以通过查询ASM实例的X$KFFXP视图来获取ASM文件extent映射表的内容。X$KFFXP视图中的每一行对应着所有处于mount状态磁盘组中每一个文件的每一个物理extent的信息。译者注:1)网络上有不少关于X$KFFXP视图的解释,有些信息过于陈旧,需要指出,它记录的每一条记录都代表的是物理extent的信息,而非AU信息,X$KFFXP视图的SIZE_KFFXP字段,代表了此extent是由几个AU组成的,在启用11G可变extent特性后会出现SIZE_KFFXP大于1的情况,具体更多信息参考本系列的第一篇文章。2)X$KFFXP这里翻译成了X$KFFXP视图,只是为了便于理解,它的本质是一个内存的数据结构(fixed table),其数据不在buffer_cache中。X$KFFXP视图的重要字段包括:GROUP_KFFXP 磁盘组编号。注意磁盘组编号不是恒久不变的,每次磁盘组被mount时都可能会不一样。等同于V$ASM_DISKGROUP.GROUP_NUMBER字段。NUMBER_KFFXP 文件序号。等同于 V$ASM_FILE.FILE_NUMBER字段。 注意,ASM的文件序号不同于数据库内的数据文件序号,不要把两个概念搞混了。小于256的ASM文件序号是保留给ASM元数据文件使用的。INCARN_KFFXP 文件版本号。当一个ASM文件序号被一个新文件重用时,文件版本号会发生改变。等同于V$ASM_FILE.INCARNATION字段。注意,ASM文件是以文件序号.版本号的方式结尾。XNUM_KFFXP 虚拟extent序号。external冗余磁盘组的虚拟extent序号与物理extent序号一致。 normal冗余磁盘组的虚拟extent序号通过将物理extent序号除于2得到.high冗余磁盘组的虚拟extent序号通过将物理extent序号除于3得到.PXN_KFFXP 物理extent序号。一个文件的物理extent序号都以数字0开始,顺序递增。LXN_KFFXP 虚拟extent中物理extent的序号。 0 为 primary extent, 1 为 secondary extent, 2 为 third copy of the extent。DISK_KFFXP 物理磁盘序号。等同于V$ASM_DISK.DISK_NUMBER。AU_KFFXP AU序号,磁盘维度的AU编号,每个磁盘从0开始。在ASM实例中通过以下查询,能够看出磁盘组3内的ASM元数据文件的文件序号,名字和AU数量。
通过以上查询结果可以发现,这个磁盘组并没有包含所有类型的元数据文件(例如第十号和第十一号文件)。一个有意思的事情是,除了ASM实例的spfile,每个文件至少占用3个AU,对于这一点更多详细信息我们会在其他章节介绍。
我们再来以一个数据库控制文件为例查看下它的extent映射表:第1步,查找DATA磁盘组内所有的数据库控制文件(以Grid所属的OS用户身份运行asmcmd命令)
第2步,检查DATA磁盘组的磁盘组序号(连接到asm实例)
第3步,检查磁盘组1中ASM 256号文件(+DATA/DBM/CONTROLFILE/Current.256.738247649)的extent映射表
以上输出可以看出这个控制文件是三路镜像,每个虚拟extent对应三个物理extent,还可以看出这个文件每个AU的实际位置。译者简介:庄培培,沃趣科技数据库售前工程师,主要负责数据库平台架构方案设计、产品验证测试。
关于沃趣杭州沃趣科技股份有限公司创建于2012年,是专注为用户提供基于高性能、高可用、可扩展的开放数据库平台整体架构解决方案的国产厂商。沃趣的产品已广泛应用于证券、保险、医疗、广电传媒、银行、电信、能源电力、快递物流、公共事业、大型企业等,为这些行业用户持续提供行业解决方案及服务支持。研发中心位于杭州,同时在北京、上海、成都、兰州、沈阳建立了分支机构,负责国内的销售和服务。我们始终坚信,数据是驱动企业创新的源动力!坚持围绕企业数据库做好一件事
——让高性能触手可及!