解决Oracle RAC SSH用户等价校验失败的问题

3星 · 超过75%的资源 需积分: 9 44 下载量 120 浏览量 更新于2024-09-15 收藏 3KB TXT 举报
"这篇文章主要讨论了在Oracle RAC环境中遇到的'User Equivalence Check Failed'错误,该错误通常发生在尝试通过SSH进行节点间连接验证时。解决方案包括检查和配置SSH的路径、设置ssh-agent以及添加私钥。" 在Oracle Real Application Clusters (RAC)环境下,当执行`runcluvfy.sh`命令进行节点间连接验证时,可能会遇到“RAC User Equivalence Check Failed”的错误。这个错误意味着系统无法在所有节点上成功建立用户等价性,即SSH无法正常工作,导致验证过程无法继续。 首先,我们需要理解SSH在RAC环境中的作用。SSH(Secure Shell)是一种网络协议,用于安全地远程登录到另一台计算机。在RAC中,它被用于在集群的不同节点之间执行命令和传输文件,确保节点间的通信是安全的。当出现“Userequivalenceunavailableonallthenodes.”这样的错误,可能是由于SSH的配置问题或执行路径不正确导致的。 根据给出的部分内容,解决这个问题的步骤如下: 1. 检查SSH的可执行文件路径:确保`ssh`和`scp`命令在所有节点上都能找到。在示例中,发现SSH的可执行文件位于`/usr/bin`目录下,但在执行时可能试图从`/usr/local/bin`路径寻找。因此,可以通过创建软链接来解决这个问题: ``` root@ahrac1# mkdir -p /usr/local/bin root@ahrac1# ln -s -f /usr/bin/ssh /usr/local/bin/ssh root@ahrac1# ln -s -f /usr/bin/scp /usr/local/bin/scp ``` 2. 使用ssh-agent管理密钥:在某些情况下,SSH可能需要访问用户的私钥进行身份验证。需要启动ssh-agent并添加私钥: ``` $ exec /usr/bin/ssh-agent $SHELL $ /usr/bin/ssh-add Enter passphrase for /export/home/oracle/.ssh/id_rsa: Identity added: /export/home/oracle/.ssh/id_rsa (/export/home/oracle/.ssh/id_rsa) ``` 3. 验证修复:在完成上述步骤后,再次运行`runcluvfy.sh`命令进行节点连接验证,确认问题是否已解决。 在排查此类问题时,也应考虑其他可能的因素,例如防火墙设置、SSH配置文件(如`/etc/ssh/sshd_config`)的权限、用户权限以及SSH服务的状态。确保所有节点上的SSH配置一致,并且允许集群内部的连接。此外,检查`~/.ssh/known_hosts`文件,确保所有节点的主机名和IP地址都被正确识别。 “RAC User Equivalence Check Failed”是一个常见但可以通过正确配置SSH和管理密钥来解决的问题。一旦解决,将确保RAC环境的正常运行和集群节点间的可靠通信。在进行故障排查时,应按照Oracle官方文档(如Note:369598.1)的建议进行操作,确保所有步骤都符合最佳实践。