ASM 翻译系列第二弹:ASM 12C 版本新特性

时间:2021-07-02 21:32:05

随着Oracle 12c的发布,也就意味着全新版本的ASM面世了。已知的重大新特性有Flex ASM,数据预校验和更加便捷的磁盘管理操作。下面针对这几个方面进行详细介绍。

Flex ASM

Flex ASM特性可以允许ASM实例只运行在集群中某些节点上。默认安装将会创建3个ASM实例,而不管集群中节点的数量。一个ASM实例可以为本地和远端数据库提供服务。如果一个ASM实例crash,数据库实例会fail over到另一个ASM实例,而不会crash。

随着Flex ASM的引入,又出现了一个新的实例类型 – I/O server或者叫ASM代理实例,在Flex集群环境中,一般会有几个(默认3个)I/O server实例,为间接客户端(典型的有ACFS集群文件系统)提供服务。一个I/O server可以和ASM实例运行在相同节点,也可以在不同节点,它的功能是从ASM实例(本地或远程)那里获得间接客户端(例如acfs)的元数据信息。

译者注:作者在这里对ASM 代理实例的描述可能会让大家产生误解,其实每一个要使用ACFS的节点都必须在本地存在ASM代理实例,否则acfs将不能被挂载。

另外,Flex ASM是12c的可选特性。

Physical metadata replication

在ASM 12c中,除了会复制每个磁盘的磁盘头(从版本11.1.0.7开始有这个功能),还会复制allocation table-AT表。这些功能让ASM可以应对磁盘的逻辑和物理损坏。ASM磁盘组新增的PHYSMETAREPLICATED属性就是用来追踪磁盘组的元数据复制状态的。

译者注:其实在10.2.0.5版本上磁盘头的信息也会有一份copy,同样,存放在AU1的倒数第二个ASM元数据块中。
$ asmcmd lsattr -G DATA -l phys_meta_replicated
Name Value
phys_meta_replicated true

物理元数据复制状态的标志位位于磁盘头(kfdhdb.flags)。一旦物理元数据被复制,这个标志位就会从0变为1,而且再也不会变为1了。(此后只会有:1代表元数据复制完毕,2 代表元数据复制中 两种状态)。

More storage

ASM 12c支持511个磁盘组,单个磁盘最大容量32PB。而在11G版本,ASM支持63个磁盘组,单个磁盘最大容量为2TB。

Online with power

ASM 12c中可以通过power值来控制fast resync操作过程中的并行度,从而提高性能。磁盘resync的检查点功能,可以在实例崩溃后,从rsync进程的断点处继续做恢复,而不用从头开始。ASM 12c也提供了resync操作完成的预估时间。

为resync操作指定power的示例(power范围从1到1024):

$ asmcmd online -G DATA -D DATA_DISK1 --power 42

Disk scrubbing - proactive data validation and repair

在ASM 12C中,normal和high冗余的磁盘组,会校验数据损坏然后自动修复。CONTENT.CHECK设置为true,就会在磁盘rebalacne过程中进行校验和修复。该操作也可以通过ALTER DISKGROUP SCRUB命令来手动执行。磁盘清理的操作可以在磁盘组,磁盘和文件级别进行,而且可以通过v$asm_operation视图来监控。

Even read for disk groups

在以前的ASM版本中,如果没有设置prefer failgroup,数据总是从主副本里读取。镜像副本的数据只有在主副本数据不可用的时候读取。12C出现的均衡读取的特性,每个读请求都会被发往load最轻的磁盘。这里的load最轻的磁盘指的是读请求数最少的磁盘。

在非Exadata环境中,Oracle以及ASM 12.1版本以后,均衡读取功能默认被打开。在Exadata环境中,均衡读取功能只有在遭遇有存储节点盘不可用的时候才会被打开。

译者注:原文没有提供Exadata下遭遇何种失败的时候会启用均衡度,译者补充的信息参考自第二版Expert Oracle Exadata第九章Cell Disk Failure。

均衡读取功能只在做了normal或者high冗余的磁盘组中可用。

Replace an offline disk

12C有了ALTER DISKGROUP REPLACE DISK命令,这个命令混合了rebalance和fast mirror resync功能。不需要做整个磁盘组的rebalance,新替换的磁盘上的数据可以用partner磁盘数据来构建。这就大大降低了替换磁盘的时间。

注意要被替换的磁盘必须是offline状态。如果磁盘offline的时间过期,磁盘将被drop,就会触发rebalance。当加入新磁盘时,又会触发一次rebalance。

译者注:在11G版本下,一个拥有几十块的failgroup的rebalance时间和一块盘的rebalance时间差异上并不是非常大,前者是后者的二到四倍时间,12C版本的出现将会大大加速后者的rebalance时间。

ASM password file in a disk group

ASM 11.2允许ASM spfile存放在磁盘组中。在12c,可以把ASM密码文件放在磁盘组中。与spfile不同,只有在ASM实例启动,包含密码文件的磁盘组mount起来之后,密码文件才可用。

orapw工具有现在可以接受ASM磁盘组作为密码文件的存放位置。asmcmd也可以用来管理密码文件。

译者注:spfile的位置是通过磁盘头部分记录了它位于磁盘的具体物理位置。

Failgroup repair timer

12C版本进一步提供了Failgroup repair timer,之前版本提供disk repair timer,Failgroup repair timer默认为24小时,注意disk repair timer仍然默认为3.6小时。

译者注:对于为什么Failgroup repair timer的默认时间比disk repair timer时间长,比较容易理解,这个功能的初衷是为了迎合Exadata环境下一个failgroup都来自于一个存储节点,一整个存储节点不可用很大可能意味着存储节点临时故障。但是一个磁盘的故障大部分情况是,这个磁盘坏掉了。

Rebalance rebalanced

现在rebalance操作可以通过生成和查看详细的工作计划来估算时间。对应的命令为EXPLAIN WORK,视图为v$asm_estimate。

在ASM 12c中,对于文件的rebalance操作有了优先级顺序 – 关键的文件(比如控制文件和redo)比其他数据库文件优先rebalance。

在Exadata中,rebalance可以卸载到存储节点做。

Thin provisioning support

ASM 12c 为某些操作(比如与磁盘组rebalance操作相关的)提供了精简配置。该特性默认情况下不打开,可以通过指定THIN_PROVISIONED属性为TRUE来打开。

Enhanced file access control (ACL)

文件的属主以及权限更改更加容易,比如,可以更改一个打开的文件的权限。ACL功能现在Windows系统上也可用了。

Oracle Cluster Registry (OCR) backup in ASM disk group 
将ocr备份储存在磁盘组中,可以让任何需要恢复ocr的节点都访问到该备份。从而简化了ocr的管理。

可以使用ocrconfig命令指定ocr备份的位置在ASM磁盘组中:

# ocrconfig –backuploc +DATA

原文:ASM version 12c is out 
作者: Bane Radulovic 
译者: 邱大龙,沃趣科技数据库技术专家,主要参与公司产品实施、测试、维护以及优化。对SQL优化、数据迁移、备份容灾等有深入的研究,对大数据量数据迁移、故障恢复、高并发下数据库性能调优有丰富的经验。