在安装RAC clusterware 在添加完结点后报错误:
The specified nodes are not clusterable.
The following error was returned by the operating system: null
以前也装过几个测试的rac的环境, 该遇到的问题也都遇到过了。 以前遇到这个问题是hosts 文件搞的鬼,所以这次条件反射的就直接去检查这个文件:
[root@node2 orcl]# more /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost
10.85.10.119 node1
10.85.10.121 node2
192.168.0.119 node1prv
192.168.0.121 node2prv
10.85.10.122 node1vip
10.85.10.123 node2vip
2个结点的hosts 第一行: 127.0.0.1 localhost 都修改过了,没有问题。
Google 的结果如下, 这个帮了我不少忙..
Alert: The specified nodes are not clusterable. This could be due to one or more of the following reasons:
1. The user performing the install is not configured in an equivalent manner on all nodes.
2. ssh and scp are not configured properly on all nodes.
3. rsh and rcp are not configured properly on all nodes.
重建检查了下用户等效性。 记得创建时候已经测试过,心里就认为问题不可能在这,但再次运行之后发现, 问题还就是这。
node1结点:
[oracle@node1 ~]$ ssh node1 date
[oracle@node1 ~]$ ssh node2 date
[oracle@node1 ~]$ ssh node1prv date
[oracle@node1 ~]$ ssh node2prv date
Node2结点:
[oracle@node2 ~]$ ssh node1 date
[oracle@node2 ~]$ ssh node2 date
[oracle@node2 ~]$ ssh node1prv date
[oracle@node2 ~]$ ssh node2prv date
在node2结点上有2个还没有运行ssh, 还是需要输入密码的。 运行ssh之后问题解决。 还是太粗心了. 尽然少运行了2个ssh。 有点杯具..
下面是建立用户等效性的操作方法:
1. group add dba oinstall 组在两个node上, 创建oracle 用户, 主组oinstall, 附加组是dba和disk
#groupadd oinstall
#groupadd dba
#useradd -g oinstall -G dba oracle
#passwd oracle
2. 建立等效用户
在node1:
[root@node1 opt]# su - oracle
[oracle@node1 ~]$ mkdir ~/.ssh
[oracle@node1 ~]$ chmod 700 ~/.ssh
[oracle@node1 ~]$ ssh-keygen -t rsa
[oracle@node1 ~]$ ssh-keygen -t dsa
在node2:
[root@node2 opt]# su - oracle
[oracle@node2 ~]$ mkdir ~/.ssh
[oracle@node2 ~]$ chmod 700 ~/.ssh
[oracle@node2 ~]$ ssh-keygen -t rsa
[oracle@node2 ~]$ ssh-keygen -t dsa
切换回node1,接着执行:
[oracle@node1 ~]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
[oracle@node1 ~]$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
提示:下列命令会提示你输入node2 的oracle 密码,按照提示输入即可,如果失败可重新尝试执行命
令。
[oracle@node1 ~]$ scp ~/.ssh/authorized_keys node2:~/.ssh/authorized_keys
[oracle@node1 ~]$ ssh node2 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
[oracle@node1 ~]$ ssh node2 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
[oracle@node2 ~]$ scp ~/.ssh/authorized_keys node1:~/.ssh/authorized_keys
确保2个node都有相互的结点信息。
两机相互执行,看看是否还需要输入密码
[oracle@node1 ~]$ ssh node1 date
[oracle@node1 ~]$ ssh node2 date
[oracle@node1 ~]$ ssh node1prv date
[oracle@node1 ~]$ ssh node2prv date
切换至node2 执行
[oracle@node2 ~]$ ssh node1 date
[oracle@node2 ~]$ ssh node2 date
[oracle@node2 ~]$ ssh node1prv date
[oracle@node2 ~]$ ssh node2prv date
建完等效性之后第一次ssh 结点时需要输入密码, 第二次就不需要了,所以建完等效性之后一定要把所有的相关结点都ssh 一下, 不会你也就杯具了...