滚动升级
使用滚动升级11g ASM群集实例可以向前升级,处于滚动升级模式下的ASM群集可以在其中一个节点上使用下面的命令进行滚动升级:
只要群集处于滚动升级模式,其中每个节点就可以按顺序执行关闭、升级、启动,在升级过程中,群集处于一个混合版本的环境中,直到所有升级全部完成,在这种情况下,群集受到下列操作的限制:
Mount和dismount磁盘组
Open、close、resize和delete数据库文件
访问本地固定视图和固定程序包
使用下面的查询语句可以查询出ASM群集的当前状态:
当最后一个节点升级完成后,使用下面的命令来停止滚动升级,它会检查所有的ASM实例版本是否正确,然后关闭滚动升级模式,并重新启动挂起的平衡操作。
滚动升级过程包括下列限制和其他约定:
在ASM滚动升级启动之前必须打上所有的Oracle clusterware补丁。
滚动升级只从11g开始才可用,因此这个方法不适合从10g升级到11g。
如果在滚动升级完成之前失败,可以回退到之前的版本。
如果升级失败,在尝试新的升级之前必须完成平衡操作。
在滚动升级期间新加入群集的实例会自动进入滚动升级模式。
如果在滚动升级期间群集中的所有实例都处于停止状态,一旦实例重新启动,它们将不再处于滚动升级模式,升级就必须重新初始化,就好像是一个新的进程一样。
SYSMAN特权和OSASM操作系统组
引入ASM后,使得存储的管理从系统管理员领域转移到DBA的领域了,不幸的是,不是每家公司都是这种情况,结果就是,一些系统管理员都必须获取特权用户来处理磁盘存储,Oracle引入了SYSASM特权和OSASM操作系统组解决了这一问题,它提供了两个机制,使存储和数据库管理的职责分离。
在ASM实例上可以象创建数据库用户那样创建一个用户,授予这些用户SYSASM特权,让它们可以连接到ASM实例处理管理任务,首先,连接到ASM实例:
$ sqlplus / as sysasm
接下来,在ASM实例中创建一个新用户,并授予它SYSASM特权,这个用户就可以使用SYSASM特权连接了:
User created.
SQL> GRANT SYSASM TO asm_user_1;
Grant succeeded.
SQL> CONN asm_user_1/asm_password AS SYSASM
Connected.
SQL>
另外,给OSASM组( asmadmin )指派一个操作系统用户,允许以SYSASM身份连接时使用操作系统认证,下面的例子创建了一个新操作系统用户,并将它指派给OSASM组( asmadmin ):
# su - tim_hall
$ export ORACLE_SID=+ASM
$ export ORACLE_HOME=/u01/app/oracle/product/11.1.0/db_1
$ $ORACLE_HOME/bin/sqlplus / as sysasm
SQL*Plus: Release 11.1.0.6.0 - Production on Fri Aug 8 16:48:37 2008
Copyright (c) 1982, 2007, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL>
可扩展性和性能增强
ASM文件以区间集形式存储在磁盘组上,在Oracle 10g中,每个区间直接映射到一个分配单元(AU),但在Oracle 11g中,一个区间可以由一个或多个分配单元组成,因为文件在不断变大,区间尺寸可以变大以减少区间映射的文件的大小,因此更节约内存。
当磁盘组兼容属性设置为11.1或更高时,区间大小将根据文件大小自动增长,第一个20,000区间匹配分配单元(AU)大小,下一个20,000区间大小由8个分配单元组成(8*AU),除了这一点,区间大小都是64个分配单元(64*AU)。
除了自动扩展区间大小外,Oracle 11g也允许在CREATE DISKGROUP语句中使用ATTRIBUTE子句来控制分配单元的大小,分配单元大小范围从1M到64M。
EXTERNAL REDUNDANCY
DISK '/dev/sde1'
ATRRIBUTE 'au_size' = '32M';
对于非常大的数据库,同时使用扩展区间大小和分配更大的分配单元将会使I/O开销更大。