您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 招标投标 > 第七篇:了解ASM文件extent的分布情况
了解ASM文件extent的分布情况当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视图,只是为了便于理解,它的本质是一个内存的数据结构(fixedtable),其数据不在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为primaryextent,1为secondaryextent,2为thirdcopyoftheextent。•DISK_KFFXP物理磁盘序号。等同于V$ASM_DISK.DISK_NUMBER。•AU_KFFXPAU序号,磁盘维度的AU编号,每个磁盘从0开始。在ASM实例中通过以下查询,能够看出磁盘组3内的ASM元数据文件的文件序号,名字和AU数量。$sqlplus/assysasmSQLselectNUMBER_KFFXPASMfilenumber,DECODE(NUMBER_KFFXP,1,'Filedirectory',2,'Diskdirectory',3,'Activechangedirectory',4,'Continuingoperationsdirectory',5,'Templatedirectory',6,'Aliasdirectory',7,'ADVMfiledirectory',8,'Diskfreespacedirectory',9,'Attributesdirectory',10,'ASMUserdirectory',11,'ASMusergroupdirectory',12,'Stalenessdirectory',253,'spfileforASMinstance',254,'Stalebitmapspaceregistry',255,'OracleClusterRepositoryregistry')ASMmetadatafilename,count(AU_KFFXP)AllocationunitsfromX$KFFXPwhereGROUP_KFFXP=3andNUMBER_KFFXP256groupbyNUMBER_KFFXPorderby1;ASMfilenumberASMmetadatafilenameAllocationunits-----------------------------------------------------------------1Filedirectory32Diskdirectory33Activechangedirectory694Continuingoperationsdirectory65Templatedirectory36Aliasdirectory38Diskfreespacedirectory39Attributesdirectory312Stalenessdirectory3253spfileforASMinstance2254Stalebitmapspaceregistry3255OracleClusterRepositoryregistry13512rowsselected.SQL通过以上查询结果可以发现,这个磁盘组并没有包含所有类型的元数据文件(例如第十号和第十一号文件)。一个有意思的事情是,除了ASM实例的spfile,每个文件至少占用3个AU,对于这一点更多详细信息我们会在其他章节介绍。我们再来以一个数据库控制文件为例查看下它的extent映射表第1步,查找DATA磁盘组内所有的数据库控制文件(以Grid所属的OS用户身份运行asmcmd命令)$asmcmdfind--typecontrolfile+DATA*+DATA/DBM/CONTROLFILE/Current.256.738247649+DATA/BR/CONTROLFILE/Current.299.748434267$第2步,检查DATA磁盘组的磁盘组序号(连接到asm实例)$sqlplus/assysasmSQLselectGROUP_NUMBERfromV$ASM_DISKGROUPwhereNAME='DATA';GROUP_NUMBER------------1SQL第3步,检查磁盘组1中ASM256号文件(+DATA/DBM/CONTROLFILE/Current.256.738247649)的extent映射表SQLselectXNUM_KFFXPVirtualextent,PXN_KFFXPPhysicalextent,LXN_KFFXPExtentcopy,DISK_KFFXPDisk,AU_KFFXPAllocationunitfromX$KFFXPwhereGROUP_KFFXP=1andNUMBER_KFFXP=256andXNUM_KFFXP2147483648orderby1,2;VirtualextentPhysicalextentExtentcopyDiskAllocationunit-----------------------------------------------------------------000205011291903022682130226141318152932603082712319072827633902623101161904311264...391170251913391181151906391192327120rowsselected.SQL以上输出可以看出这个控制文件是三路镜像,每个虚拟extent对应三个物理extent,还可以看出这个文件每个AU的实际位置。
本文标题:第七篇:了解ASM文件extent的分布情况
链接地址:https://www.777doc.com/doc-7708774 .html