1. 权限问题引起找不到ASM磁盘组
1.1 确认操作系统用户属主
# 确认属主
Grid Infrastructure Home Owner : grid
Primary Group : oinstall
Secondary Groups : asmadmin, asmdba, asmoper
RDBMS Home Owner : oracle
Primary Group : oinstall
Secondary Groups : dba, oper, asmdba
# 2. chown命令修改
1.2 共享磁盘权限及其属主
# 1. 共享磁盘属主:grid:asmadmin
# 2. 磁盘的权限:
CRS: 0640
其它磁盘组的磁盘(如:DATA): 0660
# 3. 检查相关UDEV等配置是否有误
1.3 确认$ORACLE_HOME/bin/oracle
文件权限(6751)
# 1. 查看
su - grid
ls -l $ORACLE_HOME/bin/oracle
su - oracle
ls -l $ORACLE_HOME/bin/oracle
# 2. 修改
su - grid
cd $ORACLE_HOME/bin
./setasmgidwrap o=<11.2/12.1/12.2 RDBMS Home>/bin/oracle
或
chmod 6751 $ORACLE_HOME/bin/oracle
2. 总结
ASM磁盘的group是asmadmin,这意味着组asmadmin中的成员可以对asm磁盘进行读写操作。而其他用户,例如oracle,则需要通过${ORACLE_HOME}/bin/oracle
可执行文件访问asm 磁盘。
这意味着${ORACLE_HOME}/bin/oracle
可执行文件不仅需要黏着位(sticky bit),还需要是设置group 为asmadmin。当使用srvctl(srvctl start database/instance)启动数据库时oracle会自动调用${ORACLE_HOME}/bin/setasmgid
设置该可执行文件的group为asmadmin。
因此,当出现oracle用户执行的客户端工具不能访问asm 磁盘时,需要检查上面3个方面的内容。