Oracle用户无法访问ASM磁盘组问题

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命令修改  

image-20200509152039132

1.2 共享磁盘权限及其属主

# 1. 共享磁盘属主:grid:asmadmin

# 2. 磁盘的权限:
CRS: 0640
其它磁盘组的磁盘(如:DATA): 0660

# 3. 检查相关UDEV等配置是否有误

image-20200509152235739

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

image-20200509152702350

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个方面的内容。

原文地址:https://www.cnblogs.com/binliubiao/p/12875619.html