ASM 翻译系列第五弹:高级知识 ASM 元数据概述

ASM 元数据概述

ASM的元数据由ASM实例进行维护和管理,元信息本身非常重要,ASM磁盘组中的文件要想被Oracle DB和其他客户端正常使用,就要求元信息一定要是完好无损的,ASM的元信息以元信息块的形式存储在磁盘组中。

译者注:ASM的元信息可以类比为Oracle数据库的数据字典,一旦核心的元信息发生毁坏,那么ASM磁盘组将不能被装载继而提供服务。

有些ASM 元数据在每个ASM 磁盘的固定位置,被称为物理元信息,有些ASM元数据是以文件(目录)形式保存,被称为虚拟元数据,虚拟元数据像所有其他普通ASM 文件一样被管理,它也会根据磁盘组冗余属性决定是否做镜像,在磁盘组的配置发生变化后也会做重平衡,同时元信息本身也会根据需要自动增长。

译者注:例如元信息1号文件记录了ASM磁盘组中所有文件的基本信息,随着ASM中文件的不断增多,1号文件本身也会自动增长用来记录新增的文件。

Physically addressed metadata

ASM物理元数据有如下几个结构:

●  磁盘头

●  Free Space Table ,FST表

●  Allocation Table ,AT表

●  Partnership and Status Table ,PST表

每个ASM磁盘会在第一个AU(AU 0)的第一个block(block 0) 中记录磁盘头信息,第二个block(block 1)中记录FST表,剩余的块上记录AT表。

PST信息保存在每个磁盘的第二个AU中(AU 1),虽然每个磁盘的AU 1都会为PST表而预留,但一个磁盘组只会有几个磁盘上真正的存放PST表。

Virtually addressed metadata

虚拟元数据的结构如下:

●  File Directory

●  Disk Directory

●  Active Change Directory (ACD)

●  Continuing Operations Directory (COD) Template Directory

●  Alias Directory

●  ADVM Volume Directory

●  Disk Used Space Directory

●  Attributes Directory

●  ASM User Directory and User Group Directory

●  Staleness Directory and Staleness Registry

●  Password directory

以上虚拟元数据都是以文件(目录)的形式被管理,后续的章节中,也会对上面的每一个文件进行详细说明。

ASM metadata lives in ASM disk groups

ASM 元数据存储在磁盘组内,换而言之就是磁盘组是ASM 元数据存在的基本前提,值得强调的是ASM 不会在磁盘组之外存储任何东西。

每个ASM 磁盘都有ASM 的元数据信息。有些元数据是仅和本磁盘相关的,有些是和整个磁盘组相关的。例如ASM 磁盘头是仅仅和本磁盘相关的,但partnership and status table-PST表却是和整个磁盘组相关的。

有些元数据( 例如磁盘头和AT表)会存储在每个磁盘上,而有些元数据只会存储在部分磁盘中。例如每个磁盘的AU1会为PST信息预留,但是仅一部分的磁盘会真正存放PST 信息。

有些元数据结构可能在低的ASM版本上并不存在。例如在兼容性为10.2的磁盘组中,没有staleness directory,它是为了配合11G出现的fast resync特性而出现的元数据结构,因此仅在11.1和之后的版本存在。即使在11.1版本中,外部冗余的磁盘组也没有staleness directory,只有冗余类型是normal和high的磁盘组上会有该类元信息。

ASM metadata blocks

ASM元数据结构是由一个或多个ASM 元数据块构成。块类型和元数据类型是相互对应的,例如一个ASM 磁盘头很明确的由一个类型为KFBTYP_DISKHEAD元数据块组成的,一个AT表是由多个类型为KFBTYP_ALLOCTBL元数据块组成。

ASM 元数据是由ASM 元数据块组成的,更多的相关话题请参阅后续的有关ASM元数据块的章节。


时间: 2024-08-01 21:46:18

ASM 翻译系列第五弹:高级知识 ASM 元数据概述的相关文章

ASM 翻译系列第四弹:高级知识 kfed 元数据编辑器

kfed - ASM metadata editor kfed是一个没有官方文档记录的ASM工具,它可以用来读取和修改ASM的元数据块.它本身是一个独立的工具,独立于ASM实例,因此不管实例是否启动,ASM磁盘组是否mount ,它都可以正常使用.kfed最为强大的地方在于它可以修复ASM损坏的元数据. kfed的二进制文件在最近的ASM版本中直接可用,如果你没有在$ORACLE_HOME/bin看到,可以通过如下步骤来编译获得: $ cd $ORACLE_HOME/rdbms/lib $ ma

Oracle ASM 翻译系列第十一弹:高级知识 Offline or drop?

Offline or drop? 当一个ASM磁盘不可用时,ASM会把它从磁盘组里移除,对吗?要看情况,通常取决于ASM版本和磁盘组的冗余级别.因为一个external冗余的磁盘组会直接被dismount,所以主要关注normal和high冗余磁盘组的情况. ASM 10g版本,磁盘会被直接drop.从11gR1,一个磁盘不可用时会先被offline,此时disk repair计时器开始介入,如果计时器达到磁盘组DISK_REPAIR_TIME 属性值时,这个磁盘会从所属的磁盘组中drop掉.如

ASM 翻译系列第三弹:基础知识 About ASM disk groups, disks and files

Oracle ASM使用磁盘组来存放数据文件,每一个ASM的磁盘组由一些ASM磁盘组成,每一个ASM磁盘组本身是一个独立的存储单元,是自描述的,对于ASM磁盘组中数据库文件,ASM提供一个文件系统的接口,方便DBA做管理.存放在ASM磁盘组中的文件被均匀的分布在磁盘组中的所有磁盘上,通过这种方式,每一块磁盘都可以提供一致的性能,同时ASM的性能可以比得上裸设备的性能.[摘录自11GR2版本的ASM官方文档] ASM Disk Groups 一个ASM磁盘组是由一个或多个ASM磁盘组成的,每个AS

Oracle ASM 翻译系列第八弹:ASM Internal ASM file extent map

当ASM创建一个文件时(例如数据库实例要求创建一个数据文件),它会以extent为单位分配空间.一旦文件被创建,ASM会传递extent映射表给数据库实例,后续数据库实例能在不和ASM实例交互的情况下访问这个文件.如果一个文件的extent需要被重新定位,比如磁盘组进行rebalance操作,ASM会告知数据库实例关于extent映射表的变更. 可以通过查询ASM实例的X$KFFXP视图来获取ASM文件extent映射表的内容.X$KFFXP视图中的每一行对应着所有处于mount状态磁盘组中每一

Oracle ASM 翻译系列第二十弹:ASM Internal ASM file number 7

ASM file number 7 ASM元信息7号文件,是ASM的逻辑卷目录,用于跟踪与ADVM有关的文件. ASM动态逻辑卷设备是由ASM动态逻辑卷构建的.一个磁盘组中可以配置一个或多个ASM动态逻辑卷设备.ASM集群文件系统通过ADVM接口构建在ASM磁盘组之上.ADVM像数据库一样,也是ASM的一个客户端.当一个逻辑卷被访问时,相应的ASM文件会被打开并且ASM extent的信息会被发送到ADVM驱动. 有两种与ADVM逻辑卷相关的文件类型: · ASMVOL:逻辑卷文件,作为逻辑卷存

Oracle ASM 翻译系列第十弹:ASM Internal ASM DISK header

ASM disk header ASM磁盘头可能是ASM元数据中最广为人知的部分.之前你可能认为当它被破坏或丢失时,只能寄希望于Oracle技术支持人员协助来恢复.在本节中将解释ASM磁盘头的重要性和它包含的信息. Block zero ASM磁盘是以AU为单位进行格式化的,部分AU会存放ASM元数据,其他AU存放数据库中的相关数据(如数据文件.备份文件.归档文件等等).包含ASM元数据的AU会以元数据块的方式进行格式化(一个元数据块的大小为4K).AU0位于ASM磁盘的起始位置,它始终用于存储

Oracle ASM 翻译系列第十七弹:ASM Internal ASM Disk Directory

ASM Disk Directory 本篇文章讲述ASM元信息的2号文件,ASM的2号文件是ASM的磁盘目录,它跟踪磁盘组中的所有磁盘.由于在ASM中磁盘组是一个独立的存储单位,因此每一个磁盘组都会有自己的磁盘目录. 译者注:ASM中每一个磁盘组都是自解释的,磁盘组之间没有任何的信息上依赖 对ASM来说,磁盘目录只是一个普通的ASM文件,在ASM的文件目录中也会有它的条目,如果磁盘组做了冗余策略,它也会相应做镜像,也会像其他文件一样根据实际需要做空间的伸长. 每个磁盘目录的条目都维护了如下的一些

Oracle ASM 翻译系列第六弹:高级知识 如何映射asmlib管理的盘到它对应的设备名

当使用ASMLIB 来管理ASM 磁盘时,设备的路径信息是不会在gv$asm_disk视图path列中显示的,如果你使用的是ASMLIB Support Tools 2.1 或者更高(oracleasm-support-2.1*的rpm包)版本,可以通过root用户运行'oracleasm querydisk -p'来获得设备路径信息: # ls -l /dev/oracleasm/disks total 0 brw-rw---- 1 grid asmadmin 8,  5 May  2 12:

Oracle ASM 翻译系列第七弹:高级知识 How many partners?

How many partners? ASM的数据冗余机制是通过将extent的镜像副本复制到同一磁盘组不同failgroup的磁盘上来实现的,这个磁盘被称为partner磁盘.在11GR2版本,一个冗余(Normal,High)的磁盘组,每一个ASM磁盘最多可以拥有8个partner磁盘,而在11GR2版本之前每一个磁盘最多拥有10个partner.在external冗余方式的磁盘组内既没有failgroup,磁盘之间也没有partner关系. 译者注:1)其实外部冗余的磁盘组每一个磁盘也会分