ORACLEDBA 2019-01-24
Oracle Automatic Storage Management Cluster File System (Oracle ACFS) and Oracle ASM Dynamic Volume Manager (Oracle ADVM) extend Oracle ASM functionality.
ADVM主要是为了使除了数据库之外的第三方应用程序也可以使用asm存储,这样不限于使asm局限于自家的数据库领域。ACFS不能用于linux根分区,不能用于grid的安装目录,不支持数据库文件(即asm存储的文件),使用acfs要依赖于advm卷。下面主要从ASM实例、ASM磁盘组、镜像和故障组、ASM磁盘、AU和Extents来介绍oracle ACFS文件系统。
小编辛辛苦苦整理总结出来的,看完帮忙点个赞哦!
1、概念
Oracle ASM metadata is the information that Oracle ASM uses to control a disk group and the metadata resides within the disk group.
Oracle ASM实例具有与Oracle数据库类似的系统全局区域(SGA)和后台进程。Oracle ASM实例装载磁盘组以使Oracle ASM文件可用于数据库实例;Oracle ASM实例不装载数据库。
Oracle ASM实例可以使用Oracle群集软件进行群集;每个群集节点都有一个Oracle ASM实例。如果同一节点上有多个不同数据库的数据库实例,则数据库实例在该节点上共享同一个Oracle ASM实例。
如果标准Oracle ASM集群中某个节点上的Oracle ASM实例失败,则该节点上的所有数据库实例也会失败。但是,在Oracle Flex ASM配置中,Oracle 12c数据库实例不会失败,因为它们可以远程访问另一个节点上的另一个Oracle ASM实例。
2、一个Oracle ASM实例和多个数据库实例的单节点配置
Oracle ASM实例管理元数据并为Oracle ASM文件提供空间分配。当数据库实例创建或打开Oracle ASM文件时,它将这些请求传递给Oracle ASM实例。作为响应,Oracle ASM实例向数据库实例提供文件范围映射信息。
3、Oracle RAC环境中的Oracle ASM群集
这里的Oracle ASM提供群集存储池。集群中的每个节点都有一个Oracle ASM实例,为多个Oracle RAC或单个实例数据库提供服务。所有数据库都是合并的,并且共享同两个Oracle ASM磁盘组。
4、多个单实例Oracle数据库共享集群存储池
如果要在多个节点之间共享磁盘组,必须在所有节点上安装Oracle Clusterware,而不管是否在节点上安装Oracle RAC。单独节点上的Oracle ASM实例不需要是Oracle ASM集群的一部分。但是,如果Oracle ASM实例不是Oracle ASM集群的一部分,则它们无法相互通信。不属于Oracle ASM群集的多个节点不能共享磁盘组。
A disk group consists of multiple disks and is the fundamental object that Oracle ASM manages.
Each disk group contains the metadata that is required for the management of space in the disk group. Disk group components include disks, files, and allocation units.
ASM磁盘组文件是从磁盘组分配的。任何Oracle ASM文件都完全包含在单个磁盘组中。但是,磁盘组可能包含属于多个数据库的文件。
一般是用asmca和命令行来配置asm磁盘组,之前有介绍过,篇幅有限,这里过滤下~
Mirroring protects data integrity by storing copies of data on multiple disks.
镜像通过在多个磁盘上存储数据副本来保护数据完整性。
The redundancy level controls how many disk failures are tolerated without dismounting the disk group or losing data. The disk group type determines the mirroring levels with which Oracle creates files in a disk group.
主要有以下三个冗余级别:
1、 外部冗余(external redundancy):
表示Oracle不帮你管理镜像,功能由外部存储系统实现,比如通过RAID技术;有效磁盘空间是所有磁盘设备空间的大小之和。
2、 默认冗余(normal redundancy):
表示Oracle提供2份镜像来保护数据(镜像数据一次),有效磁盘空间是所有磁盘设备大小之和的1/2 (使用最多)。
3、 高度冗余(high redundancy):
表示Oracle提供3份镜像来保护数据(镜像数据两次),以提高性能和数据的安全,最少需要三块磁盘(三个failure group);
有效磁盘空间是所有磁盘设备大小之和的1/3,虽然冗余级别高了,但是硬件的代价也最高。
Oracle ASM disks are the storage devices that are provisioned to Oracle ASM disk groups. ASM磁盘组成ASM磁盘组。
Oracle ASM磁盘包括:
1)存储阵列中的磁盘或分区
2)整个磁盘或磁盘分区
3)逻辑卷
4)网络附加文件(NFS)
Oracle ASM将文件按比例分布在磁盘组中的所有磁盘上。这种分配模式将每个磁盘保持在相同的容量级别,并确保磁盘组中的所有磁盘具有相同的I/O负载。由于Oracle ASM在磁盘组中的所有磁盘之间进行负载平衡,不同的Oracle ASM磁盘不应共享同一个物理驱动器。
1、oracle ASM AU
An allocation unit is the fundamental unit of allocation within a disk group. A file extent consists of one or more allocation units. An Oracle ASM file consists of one or more file extents.
每个Oracle ASM磁盘都被划分为分配单元(AU)。
创建磁盘组时,可以使用au_size磁盘组属性设置Oracle ASM分配单元大小。AU一般可以是1、2、4、8、16、32或64 MB,具体取决于特定的磁盘组兼容性级别。如果不指定AU的大小,默认值是1MB(Exadata下为4MB)。较大的AU大小通常为使用大型顺序读取的数据仓库应用程序提供性能优势。
2、Oracle ASM Extents
一个或多个AU组成一个extent,一个或多个ASM extent组成了一个ASM的文件,因此一个ASM文件逻辑上是由extent组成的。
我们需要区分物理extent和虚拟extent,一个虚拟extent或者说extent set,在外部冗余的磁盘组中,是由一个物理extent组成,在normal冗余的磁盘组中,是由至少2个物理extent组成,在一个high冗余的磁盘组中,由至少3个物理extent组成。
在ASM 11.1版本之前,extent的大小是固定的,在ASM 11.1版本之后,出现了可变extent,可变extent的出现是为了更好的支持大数据文件,减少对ASM和数据库实例的SGA要求、提升创建文件和打开文件等操作的性能,初始化的extent大小等于磁盘组的AU_SIZE设定值,随着一个文件分配的extent越来越多,extent的size会按照4或16倍的AU_SIZE增大。这个特性在文件新建或者resize的时候自动起作用,当然ASM磁盘组的属性值COMPATIBLE.ASM 和COMPATIBLE.RDBMS要设置为大于等于11.1。
3、Oracle ASM Extent与AU的关系
Oracle ASM File Allocation in a Disk Group
这里前八个扩展数据块(0到7)分布在四个Oracle ASM磁盘上,大小等于AU。在第一个20000个范围集之后,接下来的20000个范围集(20000-39999)的范围大小将变为4*au。这显示为用范围集编号20000到20007标记的粗体矩形,依此类推。Oracle ASM扩展盘区的下一个增量是16*au。
一个文件的extent大小变化规律遵循如下方式:
一个文件的前20000个extent set,extent的size等于磁盘组的AU_SIZE的设定值。
接下来的20000个extent set,extent的size等于磁盘组的AU_SIZE*4。
如果一个文件的总extent set数多于40000个,那么后面所有的extent的size等于磁盘组的AU_SIZE*16。
ACFS=ASM Cluster File System,其建立于来自ASM的 Volume上,除了与普通文件系统类似,还可以在多个节点间共享。主要有ASM,ADVM,ACFS三个组件,ADVM(ASM Dynamic Volume Manager,可翻译为,ASM动态卷管理器)主要负责将ASM空间输出到OS的,也就是用来实现Volume的。大家可以跟lvm对照着理解:
asm disk -> lvm pv asm dg -> lvm vg asm advm acfs -> lv+fs
后面会分享更多关于DBA方面的内容,感兴趣的朋友可以关注下!!