2.4 ASM 可扩展性和性能的增强 ASM文件区管理在11g都有改进,体现在性能的提升和显著的减少用于存储文件区的SGA内存方面。当ASM的文件在大小上增加时,每一个区的大小也会自动的增加,因此,会有需要很少的指向区指针描述文件。当访问20GB至128TB大小的ASM文件时11g的这个新特征会提升性能。当然,这样的文件通常是非常大的数据库(VLDBs)所用的。 除此之外,当你创建新的磁盘组时,你现在有多个分配单位大小选项,例如1, 2, 4, 8,16, 32, 和64(MB)。依据数据库的负载和存储系统的类型,选择大的分配单位可能会获得明显的性能提升。 磁盘组存储的ASM文件的内容是由N个数据区组成的,数据区存储在独立的磁盘上。区包含一个或多个分配单位(AU).为适应逐渐增大的大文件,ASM使用变化大小的区。 变化大小的区能够支持更大的ASM文件,减少大数据库对SGA内存的使用,并且提升文件创建和打开操作的性能。一个ASM文件开始的一个区是由一个分配单位组成的。当文件大小增加时,如果大小超出预先定义的值,新的区大小也会增加到8分配单位,然后新的区大小增加到64个分配单位。对于新创建的文件,这一特征自动生效的。 分配单位的大小为多少在磁盘组建立的时侯确定,可以为1,2,4,8,16,32及64MB,当ASM文件的大小范围在1到20,000个区这个量级时,每个区的大小与分配单位的大小相等;ASM当文件大小超出20,000个区,到20,001到40,000个区这个范围,新的区的大小分自动增至8个分配单位大小;再有当ASM当文件大小超出40,000个区,,新的区的大小分自动增至64个分配单位大小。 2.5 新的ASM 命令行 (ASMCMD)命令和选项。 ASMCMD有下列的四个新的命令: lsdsk、md_backup、md_restore 和remap。除此之外,你还能使用带有新选项的ls和lsdg命令。下面描述一下这四个新的ASM命令: lsdsk -不论是否有一个ASM的实列正在运行,这个命令都能列出ASM磁盘的信息。当系统管理员或存储管理员想查看一下ASM实例都用了哪些磁盘时这个命令是非常有用的。 md_backup和md_restore- 这两个命令使能能够用相同的磁盘路径、磁盘名、失败组、属性、模板及目录结构别名来重新建立已经存在的磁盘组。你可以使用md_backup备份磁盘组的环境,在出现问题的时侯用mk_restore来恢复相应的磁盘组。 Remap-你可以使用这个命令重映射或者回复normal及high redundancy模式ASM磁盘组中的坏块,ASM读取ASM映像好的拷贝中相应的块,并且把这些块重新写回到磁盘组中一个替代的位置。 2.6 磁盘组兼容性方面新的属性 2.6.1磁盘组兼容性概要 为使用一些ASM的新功能,你可以使用两个磁盘组兼容性方面的属性,COMPATIBLE.RDBMS和COMPATIBLE.ASM。这些属性指定据库和ASM 各自使用磁盘组所需的最小的软件版本。缺省情况下,这两个属性都被设成10.1,如果你想利用新特征必须推进这些属性。 兼容性属性设置成早先发行的版本可以使客户端访问高版本的磁盘组,例如,Oracle 10g的客户端能够访问Oracle11g的ASM磁盘组。 ASM 和Oracle 数据库磁盘组兼容性属性设置决定了系统可使用的最小的ASM和Oracle数据库软件版本。例如, 如果ASM 兼容性是11.1, 并且Oracle 数据库兼容性是10.1, 那么ASM 软件版本必须至少是11.1, 并且Oracle 数据库客户软件版本必须是至少10.1 。二个属性设置是compatible.asm 和compatible.rdbms。 ASM 的软件版本决定最近创建的磁盘组的缺省兼容性,当你以CREATE DISKGROUP SQL语句创造磁盘组时,可以忽略磁盘组兼容性设置。另外,可以使用ALTER DISKGROUP SQL语句为现有的磁盘组改变兼容性设置。磁盘组兼容性设置只能逐渐升高,你无法恢复回一个更低的兼容性设置。 2.6.2 COMPATIBLE.ASM和COMPATIBLE.RDBMS 兼容性属性设置是通过这两个参数完成的。COMPATIBLE.ASM属性决定任一个ASM 事例使用一个磁盘组的最小的软件版本。这个设置并且决定数据磁盘上ASM原数据的数据结构的格式。文件内容的格式由数据库实例决定的。对于Oracle 11g版本中的ASM, 10.1 是其缺省的设置值。为更好的完成磁盘组兼容性设置,应设置之前COMPATIBLE.RDBMS前先设置COMPATIBLE.ASM属性。 数据库使用的所有磁盘组的COMPATIBLE.RDBMS属性值必须小于或等于数据库的COMPATIBLE初始参数设置值,对于Oracle 11g版本中的ASM, 10.1也是COMPATIBLE.RDBMS属性的缺省值。举例来说, 如果数据库兼容初始化参数被设置成11.1.0, 那么COMPATIBLE.RDBMS 只能被设置成10.1 和11.1 之间的任一值。 2.6.3 设置磁盘组兼容性的方法 可能通过CREATE DISKGROUP or ALTER DISKGROUP两个语句设置磁盘组的兼容属性。 使用 CREATE DISKGROUP建立磁盘组时指定兼容属性 以下例子建立一个正常冗余盘磁盘组asmdskgrp1,ASM 兼容属性设置成10.2 ,与数据库兼容性属性取默认值(假定COMPATIBLE.RDBMS 缺省小于或等于10.2): CREATE DISKGROUP asmdskgrp1 DISK '/dev/raw/*' SET ATTRIBUTE 'compatible.asm' = '10.2'; 以下例子建立一个正常冗余盘磁盘组asmdskgrp2,ASM 兼容属性设置成11.1 ,与数据库兼容属性取默认值(假定COMPATIBLE.RDBMS 缺省小于或等于11.1): 2.7 ASM 优先镜像读取 2.7.1优先镜像读取新特征概要 在扩展集群中,如果远程结点的访问是不均衡的,这一新特征对于提升性能是很有用的。这导致更好的存储利用率,降低网络负载。Oracle 10g中,ASM总读一个镜像区集的主要拷贝,我们知道这样做的目的是为了分散IO,提升性能。而对于一个磁盘组的一块盘,对于某一个结点来说可能是本地盘,也可能是远程盘,如果从主拷贝读取数据,这个主拷贝又是远程盘,显然没有本地盘效率高。不过在Oracle10g中是不能完成设定从哪块盘读取数据的,在11g中引入了ASM_PREFERRED_READ_FAILURE_GROUPS这个参数,即我们所谈的ASM优先镜像读取新特征,可以完成这样的功能,如下再详细说一下这个新特征。 当您配置ASM失败组,它使结点从最靠近它的区读取数据,这也许是最高效的,既使那个区是一个次要的区。换句话说,当次要区离结点较近时,你可以配置ASM 读从一个次要区读,而不是从较远的主区读。使用优先读取失败组对于扩展群集来说是非常有用的。 使用这个特征, 在扩展的集群相对这个结点的本地盘,Oracle推荐配置至少一个镜像的区拷贝。然而在一个RAC数据库中,为一个结点被设定优先读取的失败组对另外的一个结点而言也许就是选程的,这倒不用担心,每个实例优先读取失败组的参数设置是可以分别指定的。 注意: 默认情况下, 当您创造一个磁盘组, 磁盘组的每块盘属于一个失败组。Oracle不推荐你为使用磁盘组的每一个实例配置超过一个优先读取失败组。如果你为每一个实例配置超过一个优先读取失败组, Oracle alter日志会写入警告信息。 2.7.2 配置和管理优先读取失败组 要配置这个新特征,需要设定ASM_PREFERRED_READ_FAILURE_GROUPS这个参数,参数为失败组的一个列表,这个参数通常是在集群的ASM实例中被使用的,也是在集群的ASM实例中 有效的,并且每个实例设定不同的值,其默认值为NULL。参数的格式如下: 举例: diskgroup_name1.failure_group_name1, ... 其中diskgroup_name表示的是磁盘组的名字,failure_group_name表示的是失败组的名字。如果设定参数指定的磁盘组中并不存在相应的失败组,ASM将忽略相应的失败组。你可以以逗号分隔为ASM_PREFERRED_READ_FAILURE_GROUPS参数设定多个值。 举例: ASM_PREFERRED_READ_FAILURE_GROUPS= = diskgroup_name.failure_group_name,diskgroup_name1.failure_group_name1... 2.8 ASM 快速的再平衡 重新平衡操作发生在当磁盘组是在限制模式下,它消也除了Oracle RAC 环境里锁和解锁extent map信息在ASM 事例之间的传讯,因此提升了总体重新平衡的吞吐量。 CREATE DISKGROUP asmdskgrp2 DISK '/dev/raw/*' SET ATTRIBUTE 'compatible.asm' = '11.2'; 以下例子建立一个正常冗余盘磁盘组asmdskgrp3,ASM 兼容属性及与数据库兼容属性都取11.1: CREATE DISKGROUP asmdskgrp3 DISK '/dev/raw/*' SET ATTRIBUTE 'compatible.rdbms' = '11.1', 'compatible.asm' = '11.1'; 使用ALTER DISKGROUP SQL语句为现有的磁盘组改变兼容属性 在磁盘组被创造了之后, 您能使用ALTER DISKGROUP SQL语句改变兼容属性。使用ALTER DISKGROUP SQL语句在提交变动之前,需确保Oracle能提升指定盘组的兼容性。为使进行ALTER DISKGROUP提升盘组兼容性而不减少数据库和文件系统功能,所有影响的数据库和文件系统都应当是在线的。 举例: ALTER DISKGROUP asmdskgrp4 SET ATTRIBUTE 'compatible.rdbms' = '11.1'; ALTER DISKGROUP asmdskgrp5 SET ATTRIBUTE 'compatible.asm' = '11.1'; |