root.sh报“Permission denied”但文件存在,是因被调用的子脚本(如rootadd.sh、setowner.sh)缺失执行权限,需用chmod +x授权;若提示“CRS is already configured”,须先执行rootcrs.pl -deconfig -force清除残留配置。

root.sh报“Permission denied”但脚本存在
这不是root.sh本身没权限,而是它内部调用的子脚本(比如rootadd.sh、setowner.sh)缺失执行位。常见于NFS挂载解压、或某些压缩工具丢掉x权限。
- 先看日志里具体哪一行失败,例如出现
/grid/install/unix/rootadd.sh: Permission denied - 用
ls -l /path/to/rootadd.sh确认权限,若没有x位,立刻补:chmod +x /path/to/rootadd.sh - 别只修一个——批量检查:
find /u01/app/11.2.0/grid -name "*.sh" -exec ls -l {} \; | grep -v 'x',对所有漏掉x的脚本统一加权
root.sh提示“CRS is already configured”或“CSS daemon found active”
这不是环境冲突,是OCR/OLR残留注册信息阻止了新安装。重试安装、节点复用、或前次失败未清理都会触发。
- 在出错节点上先强制反配置:
/u01/app/11.2.0/grid/crs/install/rootcrs.pl -deconfig -force -verbose(路径必须和实际ORACLE_HOME一致) - 单节点GI(HAS)请改用:
/u01/app/11.2.0/grid/crs/install/roothas.pl -deconfig -force -verbose - 执行完必须验证:
ocrcheck -local应返回cannot access OCR,否则残留仍在,root.sh还会拒绝继续
root.sh报“libcap.so.1: cannot open shared object file”
Oracle 11g/12c 的clscfg.bin依赖libcap.so.1,但RHEL/CentOS 6+ 默认只装libcap.so.2,且有时/lib64/libcap.so.1.10被创建为空文件(0字节)。
- 检查是否存在且非空:
ls -l /lib64/libcap.so.1*,如果libcap.so.1.10大小为0,说明已损坏 - 安装兼容包:
yum install compat-libcap1(推荐),或手动装libcap1和libcap2RPM - 若
yum不可用,可临时软链:ln -sf libcap.so.2.16 /lib64/libcap.so.1,但需确保目标文件真实可用
RHEL 7+ 上 ohasd 启动失败,报“failed to start ohasd”
Oracle 11g/12c root.sh默认走init.d注册服务,但RHEL 7+用systemd,导致ohasd无法持久化启动。
- 检查
/usr/lib/systemd/system/ohas.service:其中Type必须是simple,ExecStart必须指向/etc/init.d/init.ohasd run - 启用并验证:
systemctl daemon-reload && systemctl enable ohas.service && systemctl start ohas.service - 确认状态:
systemctl status ohas.service必须显示active (running),且PIDFile路径要和/etc/oracle/scls_scr/$(hostname)/root/ohasd.pid一致
libcap.so.1缺失会引发CLSRSC-188,进而让rootcrs.pl提前退出,看起来像“CRS已配置”,实则根本没走到那步。查错时一定盯紧第一处rc = 127或cannot open shared object file这类底层失败,别被后续连锁报错带偏。


















