目录权限错误导致Oracle 11g rac集群数据库无法启动怎么解决

在 CentOS7 中安装两节点 Oracle 11g rac 集群,grid 和 oracle 软件安装完成后,创建数据库时提示没有监听,无法创建数据库。错误代码为:RPCR-1071,PRCR-1066,CRS-2566。

目录权限错误导致Oracle 11g rac集群数据库无法启动怎么解决

问题的原因

正常情况下,grid 用户下的 $ORACLE_HOME/bin/oracle 文件和 oracle 用户下的 $ORACLE_HOME/bin/oracle 正常权限应为-rwsr-s–x(6751)。查看这两个文件的权限:

1、grid 用户

[grid@rac2 bin]$ pwd
/u01/app/11.2.0/grid/bin

[grid@rac2 bin]$ ls -al oracle
-rwsr-s--x 1 grid oinstall 209854152 Jun 13 20:22 oracle

# 文件的权限没有问题

2、oracle 用户

[oracle@rac2 ~]$ cd $ORACLE_HOME/bin
[oracle@rac2 bin]$ pwd
/u01/app/oracle/product/11.2.0/db_1/bin

[oracle@rac2 bin]$ ls -al oracle
-rwxr-xr-x 1 oracle oinstall 239520784 Jun 13 22:43 oracle

# 该文件权限有问题,正确的文件权限应为:-rwsr-s--x 1 oracle asmadmin 

解决办法

1、修改 oracle 用户下的 /u01/app/oracle/product/11.2.0/db_1/bin/oracle 文件权限

两个节点同时修改:

[oracle@rac2 bin]$chown oracle:asmadmin oracle
[oracle@rac2 bin]$chmod 6751 oracle
[root@zlm bin]# ls -al oracle
-rwsr-s--x 1 oracle asmadmin 239520784 Jun 13 22:43 oracle

2、添加并启动监听

-- 添加 listener 到 crs 服务
[grid@rac1 ~]$ srvctl add listener

-- 查看监听状态
[grid@rac1 ~]$ srvctl status listener
Listener LISTENER is enabled -- 已添加
Listener LISTENER is not running -- 没有启动

-- 启动监听
[grid@rac1 ~]$ srvctl start listener

-- 查看监听状态
[grid@rac1 ~]$ srvctl status listener
Listener LISTENER is enabled
Listener LISTENER is running on node(s): oel11g