我已经尝试了几天来修复"连接到主机,因为用户SYSDBA失败.ERROR:NMO不是setuid-root(仅限Unix)"。
我访问的博客毫无例外地说,为了解决问题,只需要以root身份运行root.sh脚本,其中脚本路径为$ ORACLE_HOME。我在Oracle Grid和Database安装期间按照要求安装了这个,但重新运行以确保。
如果我在运行root.sh后列出了nmo和nmb二进制文件的权限,我得到:
ls -la ./nm? -rws - x --- 1 root oinstall 34166 Apr 16 02:10 ./nmb -rws - x --- 1 root oinstall 44437 Apr 16 02:05 ./nmo
在完成以下教程之后,我做了: chown root nmo chmod 6750 nmo chown root nmb chmmod 6750 nmb
权限就像这样:
ls -la ./nm? -rwsr-s --- 1 root oinstall 34166 Apr 16 02:10 ./nmb -rwsr-s --- 1 root oinstall 44437 Apr 16 02:05 ./nmo
emctl stop dbconsole emctl start dbconsole
仍然有错误。我几乎要执行网格和数据库的全新安装,因为我多次重复这些过程,备份/ etc / oratab,删除它并重新运行root.sh(因此它可以重新创建oratab并修复可能的错误)。
我按照文档安装了所有内容,打开了root.sh并引用了脚本,以便我可以阅读它们,但没有发现任何可疑内容。
我的EM版本是11.2.0.3.0
我在VirtualBox下运行Oracle Linux。
再次:我已经按照99%的网站上的建议执行了root.sh有关setuid nmo错误...任何线索或不同的程序?
感谢。
答案 0 :(得分:1)
检查$ ORACLE_HOME所在的文件系统是否使用nosuid
选项挂载。如果是,则即使设置了SUID位,也会阻止以root身份运行的任何可执行文件。
希望有所帮助。
答案 1 :(得分:0)
以root用户身份在$ ORACLE_HOME目录中执行root.sh脚本:
例如:
sh /opt/oracle/product/11g/root.sh
答案 2 :(得分:0)
在root.sh旁边你可能会遇到我的情况。
遇到类似的问题,发现错误来自交换空间不足。我的交换很低并且运行到300MB,这个问题"无法启动进程:无法运行程序" / opt / OEMAgent / sbin / nmo" (在目录/ opt / OEMAgent / agent_inst / bin"):error = 12,空间不足"突然出现了。
添加额外的交换空间后立即消失。