Oracle ASM使用磁盘组来存放数据文件,每一个ASM的磁盘组由一些ASM磁盘组成,每一个ASM磁盘组本身是一个独立的存储单元,是自描述的,对于ASM磁盘组中数据库文件,ASM提供一个文件系统的接口,方便DBA做管理。存放在ASM磁盘组中的文件被均匀的分布在磁盘组中的所有磁盘上,通过这种方式,每一块磁盘都可以提供一致的性能,同时ASM的性能可以比得上裸设备的性能。【摘录自11GR2版本的ASM官方文档】
一个ASM磁盘组是由一个或多个ASM磁盘组成的,每个ASM磁盘组也是自包含的,有它自己的ASM元数据,这些元数据由ASM实例进行维护和管理。
一般情况下ASM只需要有非常少的磁盘组就可以了,在ASM 11.2版本之前,两个磁盘组一般就足够了,一个用来存放数据文件,另一个存放备份/归档日志文件,在11.2版本,你可能还想单独创建一个磁盘组存放ASM的spfile,OCR和voting盘,当然前提是你计划把这些文件存放到ASM中。
ASM使用到的磁盘,需要提前由OS/存储管理工程师安装、配置好,这些盘可以是本地的物理设备(IDE, SATA, SCSI,等等),也可以是基于SAN网络输出的LUNs(iSCSI, FC, FCoE, 等等),也可以是通过NAS/NFS网络输出的盘。建议给ASM使用的盘都做分区,即使是计划把一整个盘提供给ASM使用,也建议做成一个单一的分区。
在Exadata环境下,ASM会使用通过LIBCELL接口创建的grid disk,这些盘来自于Exadata的存储节点。
ASM磁盘组可以有最多10000个磁盘,每一个ASM磁盘最大可以有2TB,由于BUG 6453944的存在,往磁盘组中添加大于2TB大小的磁盘有可能会成功,这个BUG在10.2.0.4、11.1.0.7、11.2版本被修复,更多的内容可以参考MOS Doc ID 736891.1 。
译者注:12C的ASM版本在磁盘组的各种限制上进一步得到了释放,具体请参照本系列的【ASM 12C新特性】篇
ASM looks for disks in the OS location specified by ASM_DISKSTRING initialization parameter. All platforms have the default value, so this parameter does not have to be specified. In a cluster, ASM disks can have different OS names on different nodes. In fact, ASM does not care about the OS disk names, as those are not kept in ASM metadata.
任何一个ASM文件只能存放在一个ASM磁盘组中,但是,一个磁盘组可以包含多个数据库的文件,一个数据库里的相关文件也可以存放在多个磁盘组中。
ASM磁盘组可以存储所有类型的数据库文件-数据文件、控制文件、REDO日志、备份集、数据泵文件等等,但是二进制文件和文本文件不能被直接存储。此外ASM也会存储它自身的元数据文件到磁盘组中,元数据文件有它自己的编号机制,与数据文件的编号是独立的,ASM 256以下的编号都是为ASM元数据文件预留的。
ACFS集群文件系统在11.2版本被引入,它进一步扩展了ASM能够支持的文件类型,支持数据库和应用程序的二进制文件、文本文件、日志文件,trace文件,几乎任何传统文件系统能够存放的文件。最为重要的,它是一个集群文件系统。
本文来自云栖社区合作伙伴“DBGEEK”
相关资源:敏捷开发V1.0.pptx