这个专题讲ASM相关的内容
内容主要来自官方文档,加上一些自己的理解及实践
[Oracle ASM全解析]Oracle ASM Instances
[Oracle ASM全解析]Oracle ASM Disk Groups
[Oracle ASM全解析]Oracle ASM Files
[Oracle ASM全解析]ASM Instances参数介绍
这节将ASM实例的一些参数,这节讲如何管理ASM实例
可以使用SRVCTL做如下操作:
srvctl add asm -n node_name -i +asm_instance_name -o oracle_home
具体可参见如下链接:
https://docs.oracle.com/cd/B28359_01/rac.111/b28254/storage.htm#RACAD826
启动ASM实例不同于Oracle数据库的启动那样mount和open数据文件,它会首先启动实例然后挂在磁盘组
当上面列表中没有磁盘组时,ASM实例会启动起来,但不会挂载任何磁盘组
之后可以通过命令ALTER DISKGROUP…MOUNT来挂载
mount force
当normal,high级别的磁盘组中有磁盘损坏的话,ASM 提供 mount force命令来强制mount磁盘组
前提是磁盘组中有至少一份完整的数据文件拷贝
注意:如果磁盘组中的磁盘都是好的,这时使用mount force,会导致命令失败
2.1 startup 参数
我们使用startup命令来启动ASM实例
和Oracle数据库启动一样,startup有一些参数可以使用
FORCE
在启动ASM之前先执行 shutdown abort命令
MOUNT or OPEN
开启ASM实例并mount磁盘组,这是默认参数
NOMOUNT
开启ASM实例但是不mount磁盘组
RESTRICT
开启ASM实例并只允许具有 CREATE SESSION 和 RESTRICTED SESSION 系统权限的用户登入
可以用在 mount,nomount,open参数后面
下图为一个开启ASM实例的例子
当ASM以RESTRICT模式启动时,磁盘组是以RESTRICT模式挂载的,这种情况下数据库无法访问ASM磁盘组,便于维护
startup mount RESTRICT
维护结束后需要dismout然后重新mount磁盘组
该服务进程为ASM提供集群服务,ASM和数据库实例间的通信以及其他的一些服务,在ASM启动前需确保其开启状态
检查CSS是否启动
crsctl check cssd
开启CSS服务
使用root 用户登录并确保$ORACLE_HOME/bin 在环境变量中
localconfig add
ASM实例的关闭包括dismount磁盘组和关闭实例两步
关闭ASM前需要先关闭相关的数据库实例
我们使用shutdown命令来关闭ASM实例,它有如下参数:
NORMAL
ASM 等待现有SQL执行完成后才会dismount磁盘组,然后需要等到所有用户断开连接才会关闭实例
如果有数据库实例连接到ASM实例,则该命令失败,ASM实力仍为running状态
这是默认的参数
IMMEDIATE 或TRANSACTIONAL
ASM 等待现有SQL执行完成后才会dismount磁盘组,然后不需要等到所有用户断开连接才会关闭实例
如果有数据库实例连接到ASM实例,则该命令失败,ASM实力仍为running状态
ABORT
ASM实例立刻关闭而不需要dismount磁盘组
下次启动时会进行ASM实例恢复
如有数据库实例连接在ASM实例,则数据库也会关闭
ASM后台进程主要有下面几个
另外还有一些通用的进程,如DBWn ,LGWR ,PMON ,SMON
还有一些为完成特别任务才有的进程,如 Snnn