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

原作者:Bane Radulovic

译者: 邱大龙

审核: 魏兴华

随着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元数据块中。

物理元数据复制状态的标志位位于磁盘头(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):

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磁盘组中:

关于译者

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

原文发布于微信公众号 - 沃趣科技(woqutech)

原文发表时间:2016-06-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IT技术精选文摘

为最佳性能调优 Nginx

通常来说,一个优化良好的 Linux 服务器可以达到 500,000 – 600,000 次/秒 的请求处理性能,然而我的 Nginx 服务器可以稳定地达到 9...

5505
来自专栏马涛涛的专栏

使用leancloud给简历加数据库,实现留言功能

数据必须存在服务器上,这样任何设备访问服务器都可以得到数据,如果存在客户端的本地,那么其他客户端设备无法读取到.所以数据必须存储在服务器的数据库上

1855
来自专栏*坤的Blog

Word文件乱码XML

1594
来自专栏*坤的Blog

Word文件乱码XML

2442
来自专栏FreeBuf

如何通过Emond在macOS上实现持久化访问

在这篇文章中,我们会介绍如何通过emond在macOS上实现持久化访问。根据苹果公司的说法,事件监视进程(emond)会“接受来自各种服务的事件,通过一个简单的...

2019
来自专栏Linyb极客之路

分布式定时任务调度框架之elastic-job简介

5743
来自专栏枕边书

用Lua定制Redis命令

前言 Redis作为一个非常成功的数据库,提供了非常丰富的数据类型和命令,使用这些,我们可以轻易而高效地完成很多缓存操作,可是总有一些比较特殊的问题或需求需要解...

4647
来自专栏后端之路

mysqldump之跳过指定表

背景 目前系统中对于业务数据做了备份以作为数据校验,比如期初数据期末数据进行对比监控,因此产生了大量的备份表。备份表单表数据随着业务的增长而持续增长。导致晚间备...

2177
来自专栏喵了个咪的博客空间

[喵咪PHP]页面显示空白问题

#[喵咪PHP]页面显示空白问题# ? ##前言## 哈喽!大家好啊,喵咪PHP第一次和大家见面了,熟悉的朋友呢也之道喵咪我也开了喵咪Liunx和喵咪Golan...

34611
来自专栏小狼的世界

使用Apache的Proxy模块实现对被代理网站的访问

最近有个需求,原本一个动态的站点,有些页面要静态化。但是静态化的文件又不希望和动态程序放在一起。并且URL也不希望发生变化,于是考虑使用Rewrite来实现。下...

872

扫码关注云+社区

领取腾讯云代金券