关于ASM的failure group研究

概要:

什么是failure group

首先failure group是必须是disk group的一个子集,一个failure group只能属于一个disk group。当创建disk group时,默认情况下,会为每个disk 创建一个单独的failure group。

failgroup与数据镜像

冗余度为NORMAL,DISKGROUP中必须至少有2个failure group。

冗余度为HIGH,DISKGROUP中必须至少有3个failure group。

这是下限,而不是上限。

无法建立起冗余度为NORMAL,只有1个failure group的DISKGROUP。

当数据需要镜像时(例如冗余度为NORMAL),数据会被存两份。第一份假设存在failgroup A里,那么另一份就一定会存入非failure group A的任意一个failgroup里。所以,当DISK GROUP的镜像冗余为NORMAL时,任意一个failure group失败了,数据都没有问题。

所以当disk group的冗余度为NORMAL,failure group为2时,那么每一个failure group都包含完全的一整套数据镜像,这最好理解。

而当disk group的冗余度为NORMAL,failure group大于2时,那么每个failure group就不能包含所有的数据了,这也是合理的。因为丢失掉一个failure group,也没有问题。

当failure group为2时,数据的存储模式:

当failure group为3时,数据的存储模式:

验证

创建ASM磁盘

在C:/asmdisks目录中已存在两块模拟的ASM磁盘:_file_disk1、_file_disk2,属于Disk Group DATA1,冗余度为EXTERN。

这里使用Windows文件来模拟ASM磁盘

C:/asmdisks中创建了两个400M大小的文件_file_disk3和_file_disk4。

在Windows中使用文件模拟ASM磁盘的方法为:

创建完磁盘后,这些磁盘还不属于任何DISKGROUP

创建DISKGROUP

验证数据镜像

创建测试表空间:

创建测试用户:

创建测试表:

观察数据在ASM的failgroup的存储

tbs1的存储:DG的冗余度为EXTERN,每个extent只存储了一份

tbs2的存储:DG的冗余度为NORMAL,每个extent都存储了两份,并且不属于同一个failgroup

4块盘组成两个failgroup

# 在每个failgroup中的一块磁盘上有对用户数据的一个镜像

 

 

未经允许不得转载:Oracle一体机用户组 » 关于ASM的failure group研究

相关推荐