Top 60 Oracle Blogs

Recent comments

Oracle 11.2 Grid Infrastructure Installation

So Oracle 11gR2 was released earlier this week and I am an trying to install it on a 4-node cluster. I had previously installed the beta release on the same hardware/operating system configuration, so I was reasonably confident that a similar Advanced installation would work first time.

All went well until the final CVU check. This is the final step in the CVU installation. Oracle 11.2 requires SCAN (Single Client Access Names) to be specified. Three SCAN addresses are required for each cluster, irrespective of the number of nodes. The SCAN addresses are maintained as VIPs by the Clusterware. Instead of connecting to listener VIPs, in Oracle 11.2 applications should connect to the SCAN VIPs and they will then get redirected to the listeners.

In the beta it was possible to configure the SCAN addresses in /etc/hosts. For example I have been using: cluster3 cluster3 cluster3

Probably incorrect from a networking perspective, but enough to get through the installation procedure.

In the production version, CVU checks that the SCAN address is set in DNS. Tracing the CVU shows that it looks in /etc/nsswitch.conf and then runs nslookup. By default /etc/nsswitch.conf includes

hosts: files dns

which means look in /etc/hosts first and if you don't find the name there then go to DNS. CVU does check /etc/nsswitch.conf, but only to grumble if the hosts entry does not include dns. If the dns entry is present CVU will run nslookup. If it is not present, it does not, however, use /etc/hosts.

This means at present, DNS must be configured for RAC installations. This is going to be a bit frustrating for DBAs who just want to try installing RAC on a test system or in a VM environment as they are going to have to get to grips with DNS or find a workaround.

DNS is also required for the GNS (Typical) installation, so for now it looks unavoidable.

I just wanted the screenshots to be error free so my workaround was

cd /u01/app/11.2.0/grid/bin
mv cluvfy cluvfy.bak

create new file called cluvfy.c containing

main ()
return 0;

make cluvfy

Retry the CVU which then completed successfully
mv cluvfy.bak cluvfy

I guess I could have used Perl or bash to achieve the same effect.