接触的Oracle RAC,经常由于权限问题,导致集群正常,但是Oracle Dbca建库是报错,无法访问磁盘组,基本上是权限问题。
参考:Oracle RAC核心技术详解-高斌
Oracle 11g开始,用户及权限开始分离, Oracle 10g RAC是Oracle操作系统单一用户进行管理,登录ASM与Oracle Db通过SID区分后操作;
Grid 负责集群软件的维护,ASM作为集群软件的一个组件部分;
Oracle负责数据库软件及实例调用,Oracle 实例需要访问ASM磁盘组的相关文件,因此权限这块容易出现问题,导致集群正常,但是Oracle实例无法访问ASM磁盘组。
关于权限的处理:
Oracle解决办法是创建不同的操作系统用户组和使用沾着位(stick bit);
11g Oracle RAC 相关权限
* oinstall GI和Oracle软件属组
* dba 数据库dba组,对数据库具有最高权限
* asmdba ASM实例的dba组,可以启动、关闭实例、挂载、卸载ASM磁盘组
* asmadmin ASM的管理组,包含asmdba的所有权限,同时具有增加、删除ASM磁盘、ASM磁盘组的权限!
GI/ORACLE 的可执行文件权限设置:
< GI HOME>/bin -rwsr-s--x grid oinstall oracle
<ORACLE HOME>/bin -rwsr-s--x oracle asmadmin oracle
ASM磁盘的权限:
crw-rw---- grid asmadmin /dev/asmdiska1
用户Grid 具有读写权限,而Oracle 访问ASM磁盘通过 Oracle_home/bin/oracle 可执行文件中,属组具有读写asm磁盘的权限,从而进行操作。