使用Oracle Enterprise Manager 管理ASM 用户
Oracle Enterprise Manager 允许你管理通过远程连接(使用口令文件验证)访问ASM 的用户。这些用户是专门为ASM 实例保留的。
仅当你作为SYSASM用户连接时才具有此功能。如果你作为SYSDBA或SYSOPER用户连接,该功能将隐藏。
• 单击“Creat(创建)”按钮时将显示“Create User(创建用户)”页。
• 单击“Edit(编辑)”按钮时将显示“Edit User(编辑用户)”页。
• 通过单击“Delete(删除)”按钮可以删除创建的用户。
注:要以SYSASM角色登录ASM,请单击该页顶部的“Preferences(首选项)”链接,然后单击“Preferred Credentials(首选×××明)”链接。此时你将在目标类型列表中看到ASM。单击ASM 目标类型旁边的“Set Credentials(设置×××明)”图标,定义具有SYSASM权限的帐户和口令。你需要从Database Control 中注销并再次登录,更改才会生效。
- 启动和停止ASM 实例使用SQL*Plus
使用SQL*Plus 启动和停止ASM 实例与启动和停止数据库实例的方式相似。
$ . oraenv
ORACLE_SID = [orcl] ? +ASM
The Oracle base for ORACLE_HOME=/u01/app/oracle/product/11.2.0/grid is
/u01/app/oracle
$ sqlplus / AS SYSASM
SQL*Plus: Release 11.2.0.1.0 - Production on Wed Jul 8 20:46:46 2009
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup
ASM instance started
Total System Global Area 284565504 bytes
Fixed Size 1336028 bytes
Variable Size 258063652 bytes
ASM Cache 25165824 bytes
ASM diskgroups mounted
ASM diskgroups volume enabled
SQL> shutdown abort
SQL> select name,state from v$asm_diskgroup;
NAME STATE
------------------------------ -----------
DATA MOUNTED
RECOVERY MOUNTED
SQL> select instance_name,status from v$instance;
INSTANCE_NAME STATUS
---------------- ------------
+ASM STARTED
在SQL*Plus 中使用STARTUP命令启动ASM 实例,其方式与启动Oracle DB 实例的方式相似。启动ASM 实例时,请注意以下几点:
• 要使用SQL*Plus 连接ASM 实例,请将 ORACLE_SID环境变量设置为ASM SID。单实例数据的默认ASM SID 为 +ASM,Oracle RAC 节点的默认ASM SID 是+ASMnode_number,其中node_number是节点的编号。oraenv脚本将设置ORACLE_BASE、ORACLE_SID、ORACLE_HOME和 PATH变量。
• 初始化参数文件必须包含下面的条目:
INSTANCE_TYPE = ASM
该参数指示正在启动ASM 实例,而不是数据库实例。
• 运行STARTUP命令时,该命令尝试装载初始化参数ASM_DISKGROUPS指定的磁盘组,而不是尝试装载和打开某个数据库。如果尚未为 ASM_DISKGROUPS输入值,稍后可以通过ALTER DISKGROUP...MOUNT命令装载磁盘组。
下面的列表讲述了与ASM 相关的 STARTUP命令参数。
• FORCE:在重新启动ASM 实例之前向它发出SHUTDOWN ABORT。
• MOUNT或 OPEN:装载ASM_DISKGROUPS初始化参数中指定的磁盘组。这是未指定命令参数时的默认值。
• NOMOUNT:启动ASM 实例而不装载任何磁盘组。
• RESTRICT:在受限模式下启动实例。RESTRICT子句可以与 MOUNT、NOMOUNT和OPEN子句组合使用。
在受限模式下,数据库实例不能使用磁盘组。即,数据库无法打开磁盘组中的文件。
另外,如果磁盘组是由某个实例在受限模式下装载的,则该磁盘组无法由集群中的任何其它实例装载。通过受限模式,你可以在磁盘组上执行维护任务,而不会受到客户机的干扰。在磁盘组处于受限模式下时执行重新平衡操作,就不再需要在集群环境中的ASM 实例之间传递锁定和取消锁定区映射消息。这样可以提高重新平衡操作的整体吞吐量。在维护期间结束时,你必须显式卸载该磁盘组并在正常模式下重新装载该磁盘组。
在SQL*Plus 中运行SHUTDOWN命令时将启动ASM 关闭进程。在运行此命令之前,请确保已设置ORACLE_SID和 ORACLE_HOME环境变量,从而你可以连接到ASM 实例。
Oracle 强烈建议你在尝试关闭ASM 实例之前关闭使用该ASM 实例的所有数据库实例。
下面的列表讲述了与ASM 相关的 SHUTDOWN命令参数。
• NORMAL:ASM 在卸载所有磁盘组并关闭ASM 实例之前,将等待任何正在进行的SQL 完成执行。在关闭实例之前,ASM 将等待所有当前连接的用户从该实例断开。如果任何数据库实例与ASM 实例连接,则 SHUTDOWN命令将返回错误并保持ASM 实例继续运行。NORMAL是默认关闭模式。
• IMMEDIATE或 TRANSACTIONAL:ASM 在卸载所有磁盘组并关闭ASM 实例之前,将等待任何正在进行的SQL 完成执行。ASM 不等待当前与实例连接的用户断开连接。如果任何数据库实例与ASM 实例连接,则 SHUTDOWN命令将返回错误并保持ASM 实例继续运行。
• ABORT:ASM 实例立即关闭,而不按顺序卸载磁盘组。这将导致下次启动ASM 时进行恢复操作。如果有任何数据库实例与ASM 实例连接,则该数据库实例也将中止。
注:有连接的RDBMS 实例时,不应用NORMAL、IMMEDIATE和 TRANSACTIONAL形式的关闭,而将返回下面的错误:
SQL> shutdown
ORA-15097: cannot SHUTDOWN ASM instance with connected client (process 14372)
ASM是依赖于CSS守护进程的,因此在启动ASM实例前要确保css守护进程已经启动 。 CSS(Cluster Synchronization Services) 守护进程用来维持ASM 及客户端数据库实例间的一致性同步,如果是通过dbca建库的话,那么CSS守护进程默认即会启动(跟随系统reboot)。
启动和停止ASM 实例使用srvctl
可以使用Server Control 实用程序(srvctl) 启动和停止ASM 实例。
$ . oraenv
ORACLE_SID = [orcl] ? +ASM
The Oracle base for
ORACLE_HOME=/u01/app/oracle/product/11.2.0/grid is
/u01/app/oracle
$ srvctl start asm -o mount
$ srvctl stop asm -f
可以使用Server Control 实用程序(srvctl) 检查ASM 实例的状态。
$ srvctl status asm
ASM is running on edrsr25p1
使用srvctl启动和停止ASM 实例
可以使用Server Control 实用程序(srvctl) 启动和停止ASM 实例以及由Grid Infrastructure 管理的其它资源。srvctl实用程序位于Grid Infrastructure 的ORACLE_HOME/bin位置下和数据库安装的 ORACLE_HOME/bin位置下。管理ASM、
监听程序或Oracle Restart 时,应该使用位于Grid Infrastructure ORACLE_HOME中的srvctl实用程序。
可以下列方式使用 srvctl实用程序来控制ASM:
• 启动ASM 实例。
srvctl start asm [-o ]
是有效的实例启动选项
(FORCE、MOUNT、OPEN、NOMOUNT或RESTRICT)之一(可选)
• 停止ASM 实例。
srvctl stop asm [-o ] -f
是有效的实例关闭选项
(NORMAL、IMMEDIATE、TRANSACTIONAL或 ABORT)之一(可选),
–f 是强制
• 报告ASM 实例的状态。
srvctl status asm
启动和停止ASM 实例使用asmcmd
asmcmd实用程序提供了一个访问ASM 的命令行界面,无需使用SQL 语言。
$ . oraenv
ORACLE_SID = [orcl] ? +ASM
The Oracle base for ORACLE_HOME=/u01/app/oracle/product/11.2.0/grid is
/u01/app/oracle
$ asmcmd
Connected to an idle instance.
ASMCMD> startup
ASM instance started
Total System Global Area 284565504 bytes
Fixed Size 1336028 bytes
Variable Size 258063652 bytes
ASM Cache 25165824 bytes
ASM diskgroups mounted
ASM diskgroups volume enabled
ASMCMD> shutdown --abort
ASM instance shut down
Connected to an idle instance.
使用asmcmd启动和停止ASM 实例
用于管理的ASM 元数据位于ASM 实例内包含的动态性能视图内。通常通过ASM 实用程序使用SQL 语言来访问这些视图。要求了解SQL 语言增加了掌握ASM 的学习时间,而且SQL 语言培训通常不在系统管理员和存储管理员的学习范围内。asmcmd实用程序提供了一个类似伪Shell 的环境,可以接受UNIX 格式的语法执行常用的ASM 管理任务。
它可以用于管理Oracle ASM 实例、磁盘组、磁盘组的文件访问控制、磁盘组内的文件和目录、磁盘组的模板以及卷。
可以使用 asmcmd实用程序启动和关闭ASM 实例。支持的启动选项包括:
--nomount(在不装载磁盘组的情况下启动ASM 实例)
--restrict(启动ASM 实例并限制数据库使用)
--pfile (使用定制pfile 启动ASM 实例)
支持的关闭选项包括:
--immediate(立即执行关闭)
--abort(中止所有现有操作)