ASM支持以下三种冗余方式

ASM不仅仅要通过高效存取效率,还要提高数据安全。

 

外部冗余
表示Oracle不帮你管理镜像,功能由外部存储系统实现,比如通过RAID技术;有效磁盘空间是所有磁盘设备空间的大小之和。

外部冗余就是ASM不提供冗余,由硬件设备本身存储的机制提供冗余。现在的硬件提供了很多种的冗余,比如raid。好处在于利用现有的磁盘,ASM不再划出其余的空间来做冗余。这样做的好处就是最大的可以利用磁盘空间。

ASM Failure Groups - External Redundancy 

ASM冗余详解_oracle

SQL>create diskgroup dg3 external redundancy disk 'ORCL:VOL9','ORCL:VOL10';

如果在外面做了冗余,那么就不需要磁盘的层面上面进行冗余了,那么磁盘的利用率就很高了,百分之百的利用率。现在大部分都使用外部冗余,因为raid技术比成熟了,是值得信赖的。

 

常规冗余
默认方式)表示Oracle提供2路镜像来保护数据,会损失一部分磁盘空间用于数据冗余。如果额外的设备做冗余,那么就需要由ASM来做冗余了。这个是在ASM层面上提供冗余。也就是将磁盘里面的数据再备份一份。

ASM Failure Groups - Normal Redundancy 

ASM冗余详解_数据_02

SQL>create diskgroup test normal redundancy
failgroup fg1 disk
       'ORCL:VOL8' name d2a,
       'ORCL:VOL9' name d2b,
failgroup fg2 disk
       'ORCL:VOL10' name d2c,
       'ORCL:VOL11' name d2d;

这个像oracle的日志组一样,里面有两个日志其中坏了一个另外一个还可以用。

 

高冗余
Oracle提供3路镜像来保护数据,会损失更多磁盘空间用于数据冗余。

ASM Failure Groups - High Redundancy 

 

 

ASM冗余详解_sql_03

SQL>create diskgroup test high redundancy
failgroup fg1 disk 'ORCL:VOL8' name d2a
failgroup fg2 disk 'ORCL:VOL9' name d2b
failgroup fg3 disk 'ORCL:VOL10' name d2c;
 

 

最后用两幅图来总结(以normal为例,其余的举一反三)

Normal Redundancy 1 Disk Per Failure Group 

ASM冗余详解_sql_04

这里面的两个组是互备的,互备的方式并不是里面数据完全的镜像,而是数据在里面的重新分布。Metadata是ASM里面元数据的字典信息。Metdata也会分布在两块磁盘上面,这个信息是互备的,数据信息也是互备的。Primary是指数据第一个写到磁盘上面的,是第一份数据也称主数据。它的拷贝就叫secondary,就是冗余的数据。

Primary主的数据块并不总是在一块磁盘上面,是随机的往磁盘上面写的。只要一个磁盘写了主的,那么备的必定在另外一块磁盘。

现在都使用底层的自身的存储冗余,比如raid,在ASM面做冗余太浪费了,所以在ASM上面使用外部冗余。

Normal Redundancy 2 Disks per Failure Group 

ASM冗余详解_sql_05