安装oracle 11g rac (11.2.03) 出现PRVF-5637 错误

执行/runcluvfy.sh stage -pre crsinst -n 11grac1,11grac2 -fixup -verbose出错误点:

Checking consistency of file "/etc/resolv.conf" across nodes


Checking the file "/etc/resolv.conf" to make sure only one of domain and search entries is defined
File "/etc/resolv.conf" does not have both domain and search entries defined
Checking if domain entry in file "/etc/resolv.conf" is consistent across the nodes...
domain entry in file "/etc/resolv.conf" is consistent across nodes
Checking if search entry in file "/etc/resolv.conf" is consistent across the nodes...
search entry in file "/etc/resolv.conf" is consistent across nodes
Checking DNS response time for an unreachable node
  Node Name                             Status
  ------------------------------------  ------------------------
  11grac2                               failed
  11grac1                               failed
PRVF-5637 : DNS response time could not be checked on following nodes: 11grac2,11grac1


File "/etc/resolv.conf" is not consistent across nodes
问题:
nslookup some-non-existent-host  出现错误
[root@11grac2 ~]# nslookup scan.rac.com
Server:         192.168.2.92
Address:        192.168.2.92#53


Name:   scan.rac.com
Address: 192.168.2.54
Name:   scan.rac.com
Address: 192.168.2.55


[root@11grac2 ~]# echo $?
0
[root@11grac2 ~]# nslookup 11grac1
Server:         192.168.2.92
Address:        192.168.2.92#53


** server can't find 11grac1: NXDOMAIN


[root@11grac2 ~]# echo $?
1

解决办法:
引用:https://kr.forums.oracle.com/forums/thread.jspa?threadID=2464247

http://logicalchaos.org/blog/2012/12/cluvfy-prvf-5637-dns-response-time-could-not-be-checked/

Here's the problem. Oracle verifies the FQDN of all nodes are in DNS via nslookup:

$ nslookup <node1's fqdn>
etc.

It also verifies a bogus node isn't in DNS via nslookup:
/usr/bin/nslookup unknown-not-reachable-node
...
** server can't find unknown-not-reachable-node: NXDOMAIN

Here's the problem. OEL 5.8 (incorrectly) returns exit code of 0 in the above failing condition. OEL 6.3 (correctly) returns 1 in that condition. 

Looking at the bind-utils RPM changelog, this nsloookup change went in for version 9.8.2-0.9.rc1.

* Mon May 07 2012 Adam Tkac <atkac redhat com> 32:9.8.2-0.9.rc1
- fix race condition in the resolver module
- nslookup: return non-zero exit code when fail to get answer (#816164)

In OEL 5.8, bind-utils RPM is version 9.3.6-20.P1.el5. Doesn't have the fix.
In OEL 6.3, bind-utils RPM version is 9.8.2-0.10.rc1.el6. Has the fix.

Oracle GRID installer mistakenly interprets OEL 6.3's exit code of 1 as a problem. When in fact, it's the expected behaviour for a failed DNS lookup.

If I trick nslookup into returning the (incorrect) OEL 5.8 behavior, then the Oracle GRID installer will install.

# mv /usr/bin/nslookup /usr/bin/nslookup.orig
# echo '#!/bin/bash
/usr/bin/nslookup.orig $*
exit 0' > /usr/bin/nslookup
# chmod a+x nslookup

Now when I run the Oracle GRID installer, it installs. Also cluvfy.sh succeeds too.

 

posted @ 2013-07-06 09:47  ArcerZhang  阅读(3281)  评论(0编辑  收藏  举报