技术开发 频道

Oracle 11g R1中ASM增强

  滚动升级

  使用滚动升级11g ASM群集实例可以向前升级,处于滚动升级模式下的ASM群集可以在其中一个节点上使用下面的命令进行滚动升级:

 ALTER SYSTEM START ROLLING MIGRATION TO 11.2.0.0.0;

  只要群集处于滚动升级模式,其中每个节点就可以按顺序执行关闭、升级、启动,在升级过程中,群集处于一个混合版本的环境中,直到所有升级全部完成,在这种情况下,群集受到下列操作的限制:

   Mount和dismount磁盘组

   Open、close、resize和delete数据库文件

   访问本地固定视图和固定程序包

  使用下面的查询语句可以查询出ASM群集的当前状态:

 SELECT SYS_CONTEXT('sys_cluster_properties', 'cluster_state') FROM dual;

  当最后一个节点升级完成后,使用下面的命令来停止滚动升级,它会检查所有的ASM实例版本是否正确,然后关闭滚动升级模式,并重新启动挂起的平衡操作。

 ALTER SYSTEM STOP ROLLING MIGRATION;

  滚动升级过程包括下列限制和其他约定:

   在ASM滚动升级启动之前必须打上所有的Oracle clusterware补丁。

   滚动升级只从11g开始才可用,因此这个方法不适合从10g升级到11g。

   如果在滚动升级完成之前失败,可以回退到之前的版本。

   如果升级失败,在尝试新的升级之前必须完成平衡操作。

   在滚动升级期间新加入群集的实例会自动进入滚动升级模式。

   如果在滚动升级期间群集中的所有实例都处于停止状态,一旦实例重新启动,它们将不再处于滚动升级模式,升级就必须重新初始化,就好像是一个新的进程一样。

  SYSMAN特权和OSASM操作系统组

  引入ASM后,使得存储的管理从系统管理员领域转移到DBA的领域了,不幸的是,不是每家公司都是这种情况,结果就是,一些系统管理员都必须获取特权用户来处理磁盘存储,Oracle引入了SYSASM特权和OSASM操作系统组解决了这一问题,它提供了两个机制,使存储和数据库管理的职责分离。

  在ASM实例上可以象创建数据库用户那样创建一个用户,授予这些用户SYSASM特权,让它们可以连接到ASM实例处理管理任务,首先,连接到ASM实例:

$ export ORACLE_SID=+ASM

  $ sqlplus
/ as sysasm

  接下来,在ASM实例中创建一个新用户,并授予它SYSASM特权,这个用户就可以使用SYSASM特权连接了: 

SQL> CREATE USER asm_user_1 IDENTIFIED by asm_password;

  
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 ):

# useradd tim_hall -G 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。

 CREATE DISKGROUP disk_group_2

  EXTERNAL REDUNDANCY

  
DISK '/dev/sde1'

  ATRRIBUTE
'au_size' = '32M';

  对于非常大的数据库,同时使用扩展区间大小和分配更大的分配单元将会使I/O开销更大。

0
相关文章