Disk Directory
Disk Directory包含了磁盘组中所有的磁盘信息。Disk Directory信息比PST更为详细。磁盘组中的每一块盘都有一个条目以数字为索引。Disk Directory的文件号在每个磁盘组中都是2号(F2)。
Disk Directory中的字段如下:
n Disk name
n Failure group name
n Disk size
n Disk free space
n Disk creation time
Disk Directory中大部分信息在disk header中都有。ALTERDISKGROUP … CHECK命令校验关于磁盘中数据结构的一致性。磁盘组mount时DiskDirectory总是可用的,因此他也提供了关于normal-或high-redundancy模式下offline磁盘组的磁盘信息。
Active Change Directory(ACD)
ACD是一种日志结构,允许记录ASM对多个元数据结构的修改。类似于ORACLE RDBMS的REDO LOG。每个实例有一个42M大小chunk的ACD。(正如Douglas Adams在Hitchhiker’sGuide to the Galaxy中的说明,生命的终极问题的答案是“42”, 宇宙和一切.)。每个chunk的第一个块包含了open/close状态和checkpoint。checkpoint每3秒更新一次。剩下的块用做保存ACD修改记录的循环buffer。(是的,“Active Change Directory Change record”是冗余的,但是没有第二次修改,我们不能称之为ACDC记录)。新的ASM实例ACD会根据需要动态增长。ASM使用ACD来执行崩溃恢复和实例恢复进而保证了元数据的一致性。每个磁盘组的ACD的文件号是3(F3)。
Continuing Operations Directory(COD)
COD跟踪长时间运行的磁盘组操作,如文件创建和重平衡。长时间运行操作的范围不适合ACD。如果一个长时间运行的操作执行失败COD条目可以使ASM恢复到失败操作之前的状态。例如,ASM可以回滚一个为创建文件未完成的操作。RDBMS失效或用户行为可能会导致这个场景出现。对于磁盘组重平衡,如果实例执行重平衡失败,ASM可以在一个集群中存活的节点上重新启动重平衡操作,或者在单实例中挂载磁盘组以后重启重平衡。COD在每个磁盘组中的文件号都是4号(F4)。
Template Directory
Template Directory包含磁盘组所有temlate的信息。创建的磁盘组支持默认的每种文件类型。如果用户添加一个自己的template就会新增一个条目。TemplateDirectory使用数字索引编号。
每个template条目包含如下信息:
n Template name
n File redundancy
n File striping policy
n System flag
Template Directory在每个磁盘组中的文件号都是5号(F5)。默认模板名字与文件类型一致。文件冗余策略默认为磁盘组的冗余策略。文件条带默认是文件类型指定的。系统flag设置为默认(或系统)模板。用户创建模板没有设置system标记。
Alias Directory
Alias Directory包含所有的alias的元数据,系统别名、系统目录、用户目录、用户别名。它也是使用数字索引编号的。
Alias Directory包含如下结构:
n Alias name(ordirectoryname)
n Alias incarnation number
n File number
n File incarnation number
n Parent directory
n System flag
Alias Directory在每个磁盘组中的文件编号都是6号(F6)。aliasincarnation与文件的incarnation非常相似,为可能拥有相同aliasnumber的别名或目录提供唯一性保证。system flag是系统创建的别名和目录,但是没有为用户创建的别名和目录设置system flag。
AttributesDirectory
AttributeDirectory包括了磁盘组的属性元数据。这个数据结构只有磁盘组COMPATIBLE.ASM是11.1或11.1以上才有。这样的磁盘组,AttributeDirectory的文件号是9(F9)。(文件号7和8为将来的数据结构预留)。AU_SIZE属性由于引导的原始实际是存放在磁盘头的。COMPATIBLE.ASM在11.1或更高版本中存储在PST中,否则也存放在磁盘头。在ORACLEDATABASE 11g RELEASE 1,COMPATIBLE.RDBMS和DISK_REPAIR_TIME和他们的值存储在AttributeDirectory中。今后的版本会支持其他的属性。
Staleness Directory
Staleness Directory包括特定磁盘和客户端的StalenessRegistry映射表槽的元数据。StalenessDirectory的文件号是12(F12)。如果有需要它会随着StalenessRegister的分配而分配。
Staleness Registry(SR)
Staleness Registry用来跟踪磁盘offline导致出现问题的AU。在normal-和high-redundancy磁盘组中并且COMPATIBLE.RDBMS设置为11.1或更高版本时,registry是254号文件(文件255为保留文件)。StalenessRegister在需要时创建,也会在需要调整额外offline磁盘或新建ASM和RDBMS实例时动态增长。
当磁盘offline时,每个RDBMS实例在StalenessRegistry中获取到一个关于该盘的slot(槽)。这个slot有一个字节与OFFLINE磁盘的每个AU对应。当RDBMS要写的位置正是offline磁盘的位置,如果还没有设置相匹配的bit,RDBMS实例会为这块盘在StalenessRegistry的slot中设置相匹配的bit。
当磁盘online时,ASM执行按位或操作通过对磁盘联机数据库实例使用。任何AU有bit设置必须从镜像extent上复制。任何bit被清理的AU不需要作为磁盘online更新的一部分。因为只有磁盘offline时AU才需要更新修改,把一个磁盘online比添加一块新盘替换旧盘更有效。
总结
ASM磁盘组是一个自描述的实体,存放了所有磁盘组中的元数据。每块磁盘都有一少部分物理元数据。其余的元数据——存储在虚拟地址的元数据——存放在ASM文件中,这使元数据利用相同元数据分布和冗余特性,通过存储在磁盘组中的数据文件。
-----------------------------------------------------------------------------------------------------------------
本站注明原创和翻译的均为原创文章,文章允许转载,但必须以链接方式注明源地址,
否则追究法律责任!文章中难免有疏漏欢迎网友批评指正。
QQ: 173386747
Email: hailong.sun1982@gmail.com
Blog: http://blog.csdn.net/card_2005
ORACLE AUTOMATIC STORAGE MANAGEMENT翻译-第十章ASM内置数据结构(3)完,布布扣,bubuko.com
ORACLE AUTOMATIC STORAGE MANAGEMENT翻译-第十章ASM内置数据结构(3)完
原文地址:http://blog.csdn.net/card_2005/article/details/27492281