RAC Receive Updates For This Category
Oracle 10g RAC On Linux Using NFS
This article describes the installation of Oracle 10g release 2 (10.2.0.1) RAC on Linux (Oracle Enterprise Linux 4.5) using NFS to provide the shared storage.
- Introduction
- Download Software
- Operating System Installation
- Oracle Installation Prerequisites
- Create Shared Disks
- Install the Clusterware Software
- Install the Database Software
- Create a Database using the DBCA
- TNS Configuration
- Check the Status of the RAC
- Direct and Asynchronous I/O
Introduction
NFS is an abbreviation of Network File System, a platform independent technology created by Sun Microsystems that allows shared access to files stored on computers via an interface called the Virtual File System (VFS) that runs on top of TCP/IP. Computers that share files are considered NFS servers, while those that access shared files are considered NFS clients. An individual computer can be either an NFS server, a NFS client or both.
We can use NFS to provide shared storage for a RAC installation. In a production environment we would expect the NFS server to be a NAS, but for testing it can just as easily be another server, or even one of the RAC nodes itself.
To cut costs, this articles uses one of the RAC nodes as the source of the shared storage. Obviously, this means if that node goes down the whole database is lost, so it8217;s not a sensible idea to do this if you are testing high availability. If you have access to a NAS or a third server you can easily use that for the shared storage, making the whole solution much more resilient. Whichever route you take, the fundamentals of the installation are the same.
This article was inspired by the blog postings of Kevin Closson.
Download Software
Download the following software.
Operating System Installation
This article uses Oracle Enterprise Linux 4.5, but it will work equally well on CentOS 4 or Red Hat Enterprise Linux (RHEL) 4. A general pictorial guide to the operating system installation can be found here. More specifically, it should be a server installation with a minimum of 2G swap, firewall and secure Linux disabled and the following package groups installed:
- X Window System
- GNOME Desktop Environment
- Editors
- Graphical Internet
- Server Configuration Tools
- FTP Server
- Development Tools
- Legacy Software Development
- Administration Tools
- System Tools
To be consistent with the rest of the article, the following information should be set during the installation:
RAC1:
- hostname: rac1.localdomain
- IP Address eth0: 192.168.2.101 (public address)
- Default Gateway eth0: 192.168.2.1 (public address)
- IP Address eth1: 192.168.0.101 (private address)
- Default Gateway eth1: none
RAC2:
- hostname: rac2.localdomain
- IP Address eth0: 192.168.2.102 (public address)
- Default Gateway eth0: 192.168.2.1 (public address)
- IP Address eth1: 192.168.0.102 (private address)
- Default Gateway eth1: none
You are free to change the IP addresses to suit your network, but remember to stay consistent with those adjustments throughout the rest of the article.
Once the basic installation is complete, install the following packages whilst logged in as the root user.
# From Oracle Enterprise Linux 4.5 Disk 1 cd /media/cdrecorder/CentOS/RPMS rpm -Uvh setarch-1* rpm -Uvh compat-libstdc++-33-3* rpm -Uvh make-3* rpm -Uvh glibc-2* cd / eject # From Oracle Enterprise Linux 4.5 Disk 2 cd /media/cdrecorder/CentOS/RPMS rpm -Uvh openmotif-2* rpm -Uvh compat-db-4* rpm -Uvh gcc-3* cd / eject # From Oracle Enterprise Linux 4.5 Disk 3 cd /media/cdrecorder/CentOS/RPMS rpm -Uvh libaio-0* rpm -Uvh rsh-* rpm -Uvh compat-gcc-32-3* rpm -Uvh compat-gcc-32-c++-3* rpm -Uvh openmotif21* cd / eject
Oracle Installation Prerequisites
Perform the following steps whilst logged into the RAC1 virtual machine as the root user.
The /etc/hosts file must contain the following information.
127.0.0.1 localhost.localdomain localhost # Public 192.168.2.101 rac1.localdomain rac1 192.168.2.102 rac2.localdomain rac2 #Private 192.168.0.101 rac1-priv.localdomain rac1-priv 192.168.0.102 rac2-priv.localdomain rac2-priv #Virtual 192.168.2.111 rac1-vip.localdomain rac1-vip 192.168.2.112 rac2-vip.localdomain rac2-vip #NAS 192.168.2.101 nas1.localdomain nas1
Notice that the NAS1 entry is actually pointing to the RAC1 node. If you are using a real NAS or a third server to provide your shared storage put the correct IP address into the file.
Add the following lines to the /etc/sysctl.conf file.
kernel.shmall = 2097152 kernel.shmmax = 2147483648 kernel.shmmni = 4096 # semaphores: semmsl, semmns, semopm, semmni kernel.sem = 250 32000 100 128 #fs.file-max = 65536 net.ipv4.ip_local_port_range = 1024 65000 #net.core.rmem_default=262144 #net.core.rmem_max=262144 #net.core.wmem_default=262144 #net.core.wmem_max=262144 # Additional and amended parameters suggested by Kevin Closson net.core.rmem_default = 524288 net.core.wmem_default = 524288 net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 net.ipv4.ipfrag_high_thresh=524288 net.ipv4.ipfrag_low_thresh=393216 net.ipv4.tcp_rmem=4096 524288 16777216 net.ipv4.tcp_wmem=4096 524288 16777216 net.ipv4.tcp_timestamps=0 net.ipv4.tcp_sack=0 net.ipv4.tcp_window_scaling=1 net.core.optmem_max=524287 net.core.netdev_max_backlog=2500 sunrpc.tcp_slot_table_entries=128 sunrpc.udp_slot_table_entries=128 net.ipv4.tcp_mem=16384 16384 16384
Run the following command to change the current kernel parameters.
/sbin/sysctl -p
Add the following lines to the /etc/security/limits.conf file.
* soft nproc 2047 * hard nproc 16384 * soft nofile 1024 * hard nofile 65536
Add the following line to the /etc/pam.d/login file, if it does not already exist.
session required pam_limits.so
Disable secure linux by editing the /etc/selinux/config file, making sure the SELINUX flag is set as follows.
SELINUX=disabled
Alternatively, this alteration can be done using the GUI tool (Applications > System Settings > Security Level). Click on the SELinux tab and disable the feature.
Set the hangcheck kernel module parameters by adding the following line to the /etc/modprobe.conf file.
options hangcheck-timer hangcheck_tick=30 hangcheck_margin=180
To load the module immediately, execute 8220;modprobe -v hangcheck-timer8221;.
Create the new groups and users.
groupadd oinstall groupadd dba groupadd oper useradd -g oinstall -G dba oracle passwd oracle
During the installation, both RSH and RSH-Server were installed. Enable remote shell and rlogin by doing the following.
chkconfig rsh on chkconfig rlogin on service xinetd reload
Create the /etc/hosts.equiv file as the root user.
touch /etc/hosts.equiv chmod 600 /etc/hosts.equiv chown root:root /etc/hosts.equiv
Edit the /etc/hosts.equiv file to include all the RAC nodes:
+rac1 oracle +rac2 oracle +rac1-priv oracle +rac2-priv oracle
Login as the oracle user and add the following lines at the end of the .bash_profile file.
# Oracle Settings
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1; export ORACLE_HOME
ORACLE_SID=RAC1; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
Remember to set the ORACLE_SID to RAC2 on the second node.
Create Shared Disks
First we need to set up some NFS shares. In this case we will do this on the RAC1 node, but you can do the on a NAS or a third server if you have one available. On the RAC1 node create the following directories.
mkdir /share1 mkdir /share2
Add the following lines to the /etc/exports file.
/share1 *(rw,sync,no_wdelay,insecure_locks,no_root_squash) /share2 *(rw,sync,no_wdelay,insecure_locks,no_root_squash)
Run the following command to export the NFS shares.
chkconfig nfs on service nfs restart
On both RAC1 and RAC2 create some mount points to mount the NFS shares to.
mkdir /u01 mkdir /u02
Add the following lines to the 8220;/etc/fstab8221; file. The mount options are suggestions from Kevin Closson.
nas1:/share1 /u01 nfs rw,bg,hard,nointr,tcp,vers=3,timeo=300,rsize=32768,wsize=32768,actimeo=0 0 0 nas1:/share2 /u02 nfs rw,bg,hard,nointr,tcp,vers=3,timeo=300,rsize=32768,wsize=32768,actimeo=0 0 0
Mount the NFS shares on both servers.
mount /u01 mount /u02
Create the shared CRS Configuration and Voting Disk files.
touch /u01/crs_configuration touch /u01/voting_disk
Create the directories in which the Oracle software will be installed.
mkdir -p /u01/crs/oracle/product/10.2.0/crs mkdir -p /u01/app/oracle/product/10.2.0/db_1 mkdir -p /u01/oradata chown -R oracle:oinstall /u01 /u02
Install the Clusterware Software
Place the clusterware and database software in the /u02 directory and unzip it.
cd /u02 unzip 10201_clusterware_linux32.zip unzip 10201_database_linux32.zip
Login to RAC1 as the oracle user and start the Oracle installer.
cd /u02/clusterware ./runInstaller
On the 8220;Welcome8221; screen, click the 8220;Next8221; button.
Accept the default inventory location by clicking the 8220;Next8221; button.
Enter the appropriate name and path for the Oracle Home and click the 8220;Next8221; button.
Wait while the prerequisite checks are done. If you have any failures correct them and retry the tests before clicking the 8220;Next8221; button.
The 8220;Specify Cluster Configuration8221; screen shows only the RAC1 node in the cluster. Click the 8220;Add8221; button to continue.
Enter the details for the RAC2 node and click the 8220;OK8221; button.
Click the 8220;Next8221; button to continue.
The 8220;Specific Network Interface Usage8221; screen defines how each network interface will be used. Highlight the 8220;eth08243; interface and click the 8220;Edit8221; button.
Set the 8220;eht08243; interface type to 8220;Public8221; and click the 8220;OK8221; button.
Leave the 8220;eth18243; interface as private and click the 8220;Next8221; button.
Click the 8220;External Redundancy8221; option, enter 8220;/u01/ocr_configuration8221; as the OCR Location and click the 8220;Next8221; button. To have greater redundancy we would need to define another shared disk for an alternate location.
Click the 8220;External Redundancy8221; option, enter 8220;/u01/voting_disk8221; as the Voting Disk Location and click the 8220;Next8221; button. To have greater redundancy we would need to define another shared disk for an alternate location.
On the 8220;Summary8221; screen, click the 8220;Install8221; button to continue.
Wait while the installation takes place.
Once the install is complete, run the orainstRoot.sh and root.sh scripts on both nodes as directed on the following screen.
The output from the orainstRoot.sh file should look something like that listed below.
# cd /u01/app/oracle/oraInventory # ./orainstRoot.sh Changing permissions of /u01/app/oracle/oraInventory to 770. Changing groupname of /u01/app/oracle/oraInventory to oinstall. The execution of the script is complete #
The output of the root.sh will vary a little depending on the node it is run on. The following text is the output from the RAC1 node.
# cd /u01/crs/oracle/product/10.2.0/crs
# ./root.sh
WARNING: directory '/u01/crs/oracle/product/10.2.0' is not owned by root
WARNING: directory '/u01/crs/oracle/product' is not owned by root
WARNING: directory '/u01/crs/oracle' is not owned by root
WARNING: directory '/u01/crs' is not owned by root
WARNING: directory '/u01' is not owned by root
Checking to see if Oracle CRS stack is already configured
/etc/oracle does not exist. Creating it now.
Setting the permissions on OCR backup directory
Setting up NS directories
Oracle Cluster Registry configuration upgraded successfully
WARNING: directory '/u01/crs/oracle/product/10.2.0' is not owned by root
WARNING: directory '/u01/crs/oracle/product' is not owned by root
WARNING: directory '/u01/crs/oracle' is not owned by root
WARNING: directory '/u01/crs' is not owned by root
WARNING: directory '/u01' is not owned by root
assigning default hostname rac1 for node 1.
assigning default hostname rac2 for node 2.
Successfully accumulated necessary OCR keys.
Using ports: CSS=49895 CRS=49896 EVMC=49898 and EVMR=49897.
node <nodenumber>: <nodename> <private interconnect name> <hostname>
node 1: rac1 rac1-priv rac1
node 2: rac2 rac2-priv rac2
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
Now formatting voting device: /u01/voting_disk
Format of 1 voting devices complete.
Startup will be queued to init within 90 seconds.
Adding daemons to inittab
Expecting the CRS daemons to be up within 600 seconds.
CSS is active on these nodes.
rac1
CSS is inactive on these nodes.
rac2
Local node checking complete.
Run root.sh on remaining nodes to start CRS daemons.
#
Ignore the directory ownership warnings. We should really use a separate directory structure for the clusterware so it can be owned by the root user, but it has little effect on the finished results.
The output from the RAC2 node is listed below.
# /u01/crs/oracle/product/10.2.0/crs
# ./root.sh
WARNING: directory '/u01/crs/oracle/product/10.2.0' is not owned by root
WARNING: directory '/u01/crs/oracle/product' is not owned by root
WARNING: directory '/u01/crs/oracle' is not owned by root
WARNING: directory '/u01/crs' is not owned by root
WARNING: directory '/u01' is not owned by root
Checking to see if Oracle CRS stack is already configured
/etc/oracle does not exist. Creating it now.
Setting the permissions on OCR backup directory
Setting up NS directories
Oracle Cluster Registry configuration upgraded successfully
WARNING: directory '/u01/crs/oracle/product/10.2.0' is not owned by root
WARNING: directory '/u01/crs/oracle/product' is not owned by root
WARNING: directory '/u01/crs/oracle' is not owned by root
WARNING: directory '/u01/crs' is not owned by root
WARNING: directory '/u01' is not owned by root
clscfg: EXISTING configuration version 3 detected.
clscfg: version 3 is 10G Release 2.
assigning default hostname rac1 for node 1.
assigning default hostname rac2 for node 2.
Successfully accumulated necessary OCR keys.
Using ports: CSS=49895 CRS=49896 EVMC=49898 and EVMR=49897.
node <nodenumber>: <nodename> <private interconnect name> <hostname>
node 1: rac1 rac1-priv rac1
node 2: rac2 rac2-priv rac2
clscfg: Arguments check out successfully.
NO KEYS WERE WRITTEN. Supply -force parameter to override.
-force is destructive and will destroy any previous cluster
configuration.
Oracle Cluster Registry for cluster has already been initialized
Startup will be queued to init within 90 seconds.
Adding daemons to inittab
Expecting the CRS daemons to be up within 600 seconds.
CSS is active on these nodes.
rac1
rac2
CSS is active on all nodes.
Waiting for the Oracle CRSD and EVMD to start
Waiting for the Oracle CRSD and EVMD to start
Waiting for the Oracle CRSD and EVMD to start
Waiting for the Oracle CRSD and EVMD to start
Waiting for the Oracle CRSD and EVMD to start
Waiting for the Oracle CRSD and EVMD to start
Waiting for the Oracle CRSD and EVMD to start
Oracle CRS stack installed and running under init(1M)
Running vipca(silent) for configuring nodeapps
The given interface(s), "eth0" is not public. Public interfaces should be used to configure virtual IPs.
#
Here you can see that some of the configuration steps are omitted as they were done by the first node. In addition, the final part of the script ran the Virtual IP Configuration Assistant (VIPCA) in silent mode, but it failed. This is because my public IP addresses are actually within the 8220;192.168.255.2558243; range which is a private IP range. If you were using 8220;legal8221; IP addresses you would not see this and you could ignore the following VIPCA steps.
Run the VIPCA manually as the root user on the RAC2 node using the following command.
# cd /u01/crs/oracle/product/10.2.0/crs/bin # ./vipca
Click the 8220;Next8221; button on the VIPCA welcome screen.
Highlight the 8220;eth08243; interface and click the 8220;Next8221; button.
Enter the vitual IP alias and address for each node. Once you enter the first alias, the remaining values should default automatically. Click the 8220;Next8221; button to continue.
Accept the summary information by clicking the 8220;Finish8221; button.
Wait until the configuration is complete, then click the 8220;OK8221; button.
Accept the VIPCA results by clicking the 8220;Exit8221; button.
You should now return to the 8220;Execute Configuration Scripts8221; screen on RAC1 and click the 8220;OK8221; button.
Wait for the configuration assistants to complete.
When the installation is complete, click the 8220;Exit8221; button to leave the installer.
The clusterware installation is now complete.
Install the Database Software
Login to RAC1 as the oracle user and start the Oracle installer.
cd /u02/database ./runInstaller
On the 8220;Welcome8221; screen, click the 8220;Next8221; button.
Select the 8220;Enterprise Edition8221; option and click the 8220;Next8221; button.
Enter the name and path for the Oracle Home and click the 8220;Next8221; button.
Select the 8220;Cluster Install8221; option and make sure both RAC nodes are selected, the click the 8220;Next8221; button.
Wait while the prerequisite checks are done. If you have any failures correct them and retry the tests before clicking the 8220;Next8221; button.
Select the 8220;Install database Software only8221; option, then click the 8220;Next8221; button.
On the 8220;Summary8221; screen, click the 8220;Install8221; button to continue.
Wait while the database software installs.
Once the installation is complete, wait while the configuration assistants run.
Execute the 8220;root.sh8221; scripts on both nodes, as instructed on the 8220;Execute Configuration scripts8221; screen, then click the 8220;OK8221; button.
When the installation is complete, click the 8220;Exit8221; button to leave the installer.
Create a Database using the DBCA
Login to RAC1 as the oracle user and start the Database Configuration Assistant.
dbca
On the 8220;Welcome8221; screen, select the 8220;Oracle Real Application Clusters database8221; option and click the 8220;Next8221; button.
Select the 8220;Create a Database8221; option and click the 8220;Next8221; button.
Highlight both RAC nodes and click the 8220;Next8221; button.
Select the 8220;Custom Database8221; option and click the 8220;Next8221; button.
Enter the values 8220;RAC.WORLD8221; and 8220;RAC8221; for the Global Database Name and SID Prefix respectively, then click the 8220;Next8221; button.
Accept the management options by clicking the 8220;Next8221; button. If you are attempting the installation on a server with limited memory, you may prefer not to configure Enterprise Manager at this time.
Enter database passwords then click the 8220;Next8221; button.
Select the 8220;Cluster File System8221; option, then click the 8220;Next8221; button.
Select the 8220;Use Oracle-Managed Files8221; option and enter 8220;/u01/oradata/8221; as the database location, then click the 8220;Next8221; button.
Check the 8220;Specify Flash Recovery Area8221; option and accept the default location by clicking the 8220;Next8221; button.
Uncheck all but the 8220;Enterprise Manager Repository8221; option, then click the 8220;Standard Database Components8230;8221; button.
Uncheck all but the 8220;Oracle JVM8221; option, then click the 8220;OK8221; button, followed by the 8220;Next8221; button on the previous screen. If you are attempting the installation on a server with limited memory, you may prefer not to install the JVM at this time.
Accept the current database services configuration by clicking the 8220;Next8221; button.
Select the 8220;Custom8221; memory management option and accept the default settings by clicking the 8220;Next8221; button.
Accept the database storage settings by clicking the 8220;Next8221; button.
Accept the database creation options by clicking the 8220;Finish8221; button.
Accept the summary information by clicking the 8220;OK8221; button.
Wait while the database is created.
Once the database creation is complete you are presented with the following screen. Make a note of the information on the screen and click the 8220;Exit8221; button.
The RAC database creation is now complete.
TNS Configuration
Once the installation is complete, the 8220;$ORACLE_HOME/network/admin/listener.ora8221; file in the shared $ORACLE_HOME will contain the following entries.
LISTENER_RAC2 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip.lynx.co.uk)(PORT = 1521)(IP = FIRST))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.102)(PORT = 1521)(IP = FIRST))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
)
)
LISTENER_RAC1 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip.lynx.co.uk)(PORT = 1521)(IP = FIRST))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.101)(PORT = 1521)(IP = FIRST))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)
)
)
The shared 8220;$ORACLE_HOME/network/admin/tnsnames.ora8221; file will contain the following entries.
RAC =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip.lynx.co.uk)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip.lynx.co.uk)(PORT = 1521))
(LOAD_BALANCE = yes)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = RAC.WORLD)
)
)
LISTENERS_RAC =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip.lynx.co.uk)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip.lynx.co.uk)(PORT = 1521))
)
RAC2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip.lynx.co.uk)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = RAC.WORLD)
(INSTANCE_NAME = RAC2)
)
)
RAC1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip.lynx.co.uk)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = RAC.WORLD)
(INSTANCE_NAME = RAC1)
)
)
This configuration allows direct connections to specific instance, or using a load balanced connection to the main service.
$ sqlplus / as sysdba SQL*Plus: Release 10.2.0.1.0 - Production on Tue Apr 18 12:27:11 2006 Copyright (c) 1982, 2005, Oracle. All rights reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, Real Application Clusters, OLAP and Data Mining options SQL> CONN sys/password@rac1 AS SYSDBA Connected. SQL> SELECT instance_name, host_name FROM v$instance; INSTANCE_NAME HOST_NAME ---------------- ---------------------------------------------------------------- RAC1 rac1.localdomain SQL> CONN sys/password@rac2 AS SYSDBA Connected. SQL> SELECT instance_name, host_name FROM v$instance; INSTANCE_NAME HOST_NAME ---------------- ---------------------------------------------------------------- RAC2 rac2.localdomain SQL> CONN sys/password@rac AS SYSDBA Connected. SQL> SELECT instance_name, host_name FROM v$instance; INSTANCE_NAME HOST_NAME ---------------- ---------------------------------------------------------------- RAC1 rac1.localdomain SQL>
Check the Status of the RAC
There are several ways to check the status of the RAC. The srvctl utility shows the current configuration and status of the RAC database.
$ srvctl config database -d RAC rac1 RAC1 /u01/app/oracle/product/10.2.0/db_1 rac2 RAC2 /u01/app/oracle/product/10.2.0/db_1 $ $ srvctl status database -d RAC Instance RAC1 is running on node rac1 Instance RAC2 is running on node rac2 $
The V$ACTIVE_INSTANCES view can also display the current status of the instances.
$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Tue Apr 18 12:15:15 2006
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options
SQL> SELECT * FROM v$active_instances;
INST_NUMBER INST_NAME
----------- ------------------------------------------------------------
1 rac1.localdomain:RAC1
2 rac2.localdomain:RAC2
SQL>
Finally, the GV$ allow you to display global information for the whole RAC.
SQL> SELECT inst_id, username, sid, serial# FROM gv$session WHERE username IS NOT NULL;
INST_ID USERNAME SID SERIAL#
---------- ------------------------------ ---------- ----------
1 SYS 127 2
1 SYS 128 28
1 SYS 130 10
1 SYS 131 4
1 SYS 133 9
1 DBSNMP 134 27
1 DBSNMP 135 1
1 SYS 153 122
2 SYSMAN 120 243
2 DBSNMP 122 37
2 DBSNMP 124 93
INST_ID USERNAME SID SERIAL#
---------- ------------------------------ ---------- ----------
2 SYSMAN 125 2
2 SYSMAN 127 6
2 SYS 128 26
2 SYS 129 30
2 SYS 130 3
2 SYS 133 149
2 SYSMAN 134 58
2 SYS 136 32
19 rows selected.
SQL>
If you have configured Enterprise Manager, it can be used to view the configuration and current status of the database.
Direct and Asynchronous I/O
Remember to use direct I/O and asynchronous I/O to improve performance. Direct I/O has been supported over NFS for some time, but support for asynchronous I/O over NFS was only introduced in RHEL 4 Update 3 (and its clones), so you need to use an up to date version of your Linux distribution to take advantage of this feature.
Oracle 10g RAC On Windows 2003 Using VMware Server
This article describes the installation of Oracle 10g release 2 (10.2.0.1) RAC on Windows 2003 Server Standard Edition using VMware Server with no additional shared disk devices.
- Introduction
- Download Software
- VMware Server Installation
- Virtual Machine Setup
- Guest Operating System Installation
- Oracle Installation Prerequisites
- Install VMware Client Tools
- Create Shared Disks
- Clone the Virtual Machine
- Install the Clusterware Software
- Install the Database Software and Create an ASM Instance
- Create a Database using the DBCA
- TNS Configuration
- Check the Status of the RAC
Introduction
One of the biggest obstacles preventing people from setting up test RAC environments is the requirement for shared storage. In a production environment, shared storage is often provided by a SAN or high-end NAS device, but both of these options are very expensive when all you want to do is get some experience installing and using RAC. A cheaper alternative is to use a FireWire disk enclosure to allow two machines to access the same disk(s), but that still costs money and requires two servers. A third option is to use VMware Server to fake the shared storage.
Using VMware Server you can run multiple Virtual Machines (VMs) on a single server, allowing you to run both RAC nodes on a single machine. In additon, it allows you to set up shared virtual disks, overcoming the obstacle of expensive shared storage.
Before you launch into this installation, here are a few things to consider.
- The finished system includes the host operating system, two guest operating systems, two sets of Oracle Clusterware, two ASM instances and two Database instances all on a single server. As you can imagine, this requires a significant amount of disk space, CPU and memory. To complete this installation I used a dual 3.0G Xeon server with 4G of memory.
- This procedure provides a bare bones installation to get the RAC working. There is no redundancy in the Clusterware installation or the ASM installation. To add this, simply create double the amount of shared disks and select the 8220;Normal8221; redundancy option when it is offered. Of course, this will take more disk space.
- During the virtual disk creation, I always choose not to preallocate the disk space. This makes virtual disk access slower during the installation, but saves on wasted disk space.
- This is not, and should not be considered, a production-ready system. It8217;s simply to allow you to get used to installing and using RAC.
Download Software
Download the following software.
VMware Server Installation
For this article, I used CentOS 4.3 as the host operating systems. To use Windows as the host operating system, simply run the executable installation file and ignore the following VMware Server installation information.
First, install the VMware Server software. On Linux you do this with the following command as the root user.
# rpm -Uvh VMware-server-*.rpm Preparing... ########################################### [100%] 1:VMware-server ########################################### [100%] #
Then finish the configuration by running the vmware-config.pl script as the root user. Most of the questions can be answered with the default response by pressing the return key. The output below shows my responses to the questions.
# vmware-config.pl Making sure services for VMware Server are stopped. Stopping VMware services: Virtual machine monitor [ OK ] You must read and accept the End User License Agreement to continue. Press enter to display it. VMWARE, INC. SOFTWARE BETA TEST AGREEMENT *** Editied out license agreement *** Do you accept? (yes/no) yes Thank you. Configuring fallback GTK+ 2.4 libraries. In which directory do you want to install the mime type icons? [/usr/share/icons] What directory contains your desktop menu entry files? These files have a .desktop file extension. [/usr/share/applications] In which directory do you want to install the application's icon? [/usr/share/pixmaps] Trying to find a suitable vmmon module for your running kernel. The module bld-2.6.9-5.EL-i686smp-RHEL4 loads perfectly in the running kernel. Do you want networking for your virtual machines? (yes/no/help) [yes] Configuring a bridged network for vmnet0. The following bridged networks have been defined: . vmnet0 is bridged to eth0 All your ethernet interfaces are already bridged. Do you want to be able to use NAT networking in your virtual machines? (yes/no) [yes] Configuring a NAT network for vmnet8. Do you want this program to probe for an unused private subnet? (yes/no/help) [yes] Probing for an unused private subnet (this can take some time)... The subnet 172.16.210.0/255.255.255.0 appears to be unused. The following NAT networks have been defined: . vmnet8 is a NAT network on private subnet 172.16.210.0. Do you wish to configure another NAT network? (yes/no) [no] Do you want to be able to use host-only networking in your virtual machines? [yes] no Trying to find a suitable vmnet module for your running kernel. The module bld-2.6.9-5.EL-i686smp-RHEL4 loads perfectly in the running kernel. Please specify a port for remote console connections to use [902] Stopping xinetd: [ OK ] Starting xinetd: [ OK ] Configuring the VMware VmPerl Scripting API. Building the VMware VmPerl Scripting API. Using compiler "/usr/bin/gcc". Use environment variable CC to override. The installation of the VMware VmPerl Scripting API succeeded. Do you want this program to set up permissions for your registered virtual machines? This will be done by setting new permissions on all files found in the "/etc/vmware/vm-list" file. [no] yes Generating SSL Server Certificate In which directory do you want to keep your virtual machine files? [/var/lib/vmware/Virtual Machines] /u01/VM Do you want to enter a serial number now? (yes/no/help) [no] yes Please enter your 20-character serial number. Type XXXXX-XXXXX-XXXXX-XXXXX or 'Enter' to cancel: ENTER-YOUR-SERIAL-NUMBER Starting VMware services: Virtual machine monitor [ OK ] Virtual ethernet [ OK ] Bridged networking on /dev/vmnet0 [ OK ] Host-only networking on /dev/vmnet8 (background) [ OK ] NAT service on /dev/vmnet8 [ OK ] Starting VMware virtual machines... [ OK ] The configuration of VMware Server e.x.p build-22874 for Linux for this running kernel completed successfully. #
The VMware Server Console is started by issuing the command 8220;vmware8221; at the command prompt, or by selecting it from the 8220;System Tools8221; menu.

On the 8220;Connect to Host8221; dialog, accept the 8220;Local host8221; option by clicking the 8220;Connect8221; button.

You are then presented with the main VMware Server Console screen.

The VMware Server is now installed and ready to use.
Virtual Machine Setup
Now we must define the two virtual RAC nodes. We can save time by defining one VM, then cloning it when it is installed. In this article I use Linux as my host operating system, so all the file paths are UNIX style paths. If you are using a Windows host operating system you would expect to use Windows style paths to the various VMware files, so adjust the paths as necessary.
Click the 8220;Create a new virtual machine8221; button to start the 8220;New Virtual Machine Wizard8221;. Click the 8220;Next8221; button onthe welcome page.

Select the 8220;Custom8221; virtual machine configuration and click the 8220;Next8221; button.

Select the 8220;Windows8221; guest operating system option, and set the version to 8220;Windows Server 2003 Standard Edition8221;, then click the 8220;Next8221; button.

Enter the name 8220;RAC18243; and the location should default to 8220;/u01/VM/RAC18243;, then click the 8220;Next8221; button.

Select the required number of processors and click the 8220;Next8221; button.

Uncheck the 8220;Make this virtual machine private8221; checkbox and click the 8220;Next8221; button.

Select the amount of memory to associate with the virtual machine. Remember, you are going to need two instances, so don8217;t associate too much, but you are going to need approximately 1 Gig (1024 Meg) to compete the installation successfully.

Accept the 8220;Use bridged networking8221; option by clicking the 8220;Next8221; button.

Accept the 8220;LSI Logic8221; option by clicking the 8220;Next8221; button.

Select the 8220;Create a new virtual disk8221; option and click the 8220;Next8221; button.

Accept the 8220;SCSI8221; option by clicking the 8220;Next8221; button. It8217;s a virtual disk, so you can still use this option even if your physical disk is IDE or SATA.

Set the disk size to 8220;10.08243; GB and uncheck the 8220;Allocate all disk space now8221; option. The latter will make disk access slower, but will save you wasting disk space.

Accept 8220;RAC1.vmdk8221; as the disk file name and complete the VM creation by clicking the 8220;Finish8221; button.

On the 8220;VMware Server Console8221; screen, click the 8220;Edit virtual machine settings8221; button.

On the 8220;Virtual Machine Settings8221; screen, highlight the 8220;Floppy 18243; drive and click the 8220;- Remove8221; button.

Click the 8220;+ Add8221; button and select a hardware type of 8220;Ethernet Adapter8221;, then click the 8220;Next8221; button.

Accept the 8220;Bridged8221; option by clicking the 8220;Finish8221; button.

Click on the 8220;Options8221; tab, highlight the 8220;Startup/Shutdown8221; setting and select the 8220;Don8217;t power on virtual machine8221; in the 8220;On host startup8221; option. Finish by clicking the 8220;OK8221; button.

The virtual machine is now configured so we can start the guest operating system installation.
Guest Operating System Installation
Place the first Windows 2003 SE disk in the CD drive and start the virtual machine by clicking the 8220;Power on this virtual machine8221; button. The right pane of the VMware Server Console should display a boot loader, then the Windows installation screen.

Continue through the Windows installation as you would for a normal server. To be consistent with the rest of the article, the following information should be set during the installation:
- hostname: RAC1
- IP Address eth0: 192.168.2.101 (public address)
- IP Address eth1: 192.168.0.101 (private address)
You are free to change the IP addresses to suit your network, but remember to stay consistent with those adjustments throughout the rest of the article.
Oracle Installation Prerequisites
Perform the following steps whilst logged into the RAC1 virtual machine.
Amend the C:\windows\system32\drivers\etc\hosts file to contain the following information.
127.0.0.1 localhost.localdomain localhost # Public 192.168.2.101 rac1.localdomain rac1 192.168.2.102 rac2.localdomain rac2 #Private 192.168.0.101 rac1-priv.localdomain rac1-priv 192.168.0.102 rac2-priv.localdomain rac2-priv #Virtual 192.168.2.111 rac1-vip.localdomain rac1-vip 192.168.2.112 rac2-vip.localdomain rac2-vip
VMware sometimes creates additional network adapters, which will prevent the clusterware from loading. Delete any additional adapters as follows. Open a command prompt on RAC1 and issue the following commands.
set devmgr_show_nonpresent_devices=1 devmgmt.msc
On the resulting 8220;Device Manager8221; screen, pick the 8220;View > Show hidden devices8221; menu option.

Now check for extra network adapters. You would expect two, but if there are more than this, uninstall the greyed out adapters.

Open the 8220;Network Connections8221; screen (Start > All Programs > Accessories > Communications > Network Connections). Rename the two connections to 8220;public8221; and 8220;private8221; respectively, making sure you apply the names to the appropriate connections.

Check that the network settings are correct for both connections.

The Clusterware installation is very sensitive, so make sure you read the Checking Network Requirements section of the documentation, and make any necessary changes.
In addition to the configuration mentioned above, the documentation suggests two more configuration changes that I did not find necessary on VMware Server. Even so, it is advisable to make the changes.
First, ensure the public interface is first in the bind order:
- Open the 8220;Network Connections8221; dialog by right-clicking on the 8220;My Network Places8221; icon and selecting the 8220;Properties8221; menu option.
- Select the 8220;Advanced > Advanced Settings8230;8221; menu option.
- On the 8220;Adapters and Bindings8221; tab, make sure the public interface is the first interface listed.
- Accept any modifications by clicking on the 8220;OK8221; button and exiting the 8220;Network Connections8221; dialog.
Second, disable Windows Media Sensing for TCP/IP:
- Backup the Windows registry.
- Run the Registry Editor (Regedt32.exe) and find the following key:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters
- Add the following registry value:
Value Name: DisableDHCPMediaSense Data Type: REG_DWORD -Boolean Value: 1
- This change will not take effect until the computer is restarted.
Next, install the VMware client tools.
Install VMware Client Tools
Login on the RAC1 virtual machine, then select the 8220;VM > Install VMware Tools8230;8221; option from the main VMware Server Console menu.

Click the 8220;Install8221; button on the subsequent screen.

Click the 8220;Next8221; button to continue.

Accept the 8220;Typical8221; option by clicking the 8220;Next8221; button.

Click the 8220;Install8221; button to continue.

Set the hardware acceleration when prompted by clicking the 8220;Yes8221; button and following the instructions on the subsequent screens.

Once the installatin is complete, click the 8220;Finish8221; button.

The VMware client tools are now installed.
Create Shared Disks
Shut down the RAC1 virtual machine and create a directory on the host system to hold the shared virtual disks.
# mkdir -p /u01/VM/shared
On the VMware Server Console, click the 8220;Edit virtual machine settings8221; button. On the 8220;Virtual Machine Settings8221; screen, click the 8220;+ Add8221; button.

Select the hardware type of 8220;Hard Disk8221; and click the 8220;Next8221; button.

Accept the 8220;Create a new virtual disk8221; option by clicking the 8220;Next8221; button.

Accept the 8220;SCSI8221; option by clicking the 8220;Next8221; button.

Set the disk size to 8220;10.08243; GB and uncheck the 8220;Allocate all disk space now8221; option, then click the 8220;Next8221; button.

Set the disk name to 8220;/u01/VM/shared/ocr.vmdk8221; and click the 8220;Advanced8221; button.

Set the virtual device node to 8220;SCSI 1:18243; and the mode to 8220;Independent8221; and 8220;Persistent8221;, then click the 8220;Finish8221; button.

Repeat the previous hard disk creation steps 4 more times, using the following values:
- File Name: /u01/VM/shared/votingdisk.vmdk
Virtual Device Node: SCSI 1:2
Mode: Independent and Persistent - File Name: /u01/VM/shared/asm1.vmdk
Virtual Device Node: SCSI 1:3
Mode: Independent and Persistent - File Name: /u01/VM/shared/asm2.vmdk
Virtual Device Node: SCSI 1:4
Mode: Independent and Persistent - File Name: /u01/VM/shared/asm3.vmdk
Virtual Device Node: SCSI 1:5
Mode: Independent and Persistent
At the end of this process, the virtual machine should look something like the picture below.

Edit the contents of the 8220;/u01/VM/RAC1/RAC1.vmx8221; file using a text editor, making sure the following entries are present. Some of the tries will already be present, some will not.
disk.locking = "FALSE" diskLib.dataCacheMaxSize = "0" diskLib.dataCacheMaxReadAheadSize = "0" diskLib.dataCacheMinReadAheadSize = "0" diskLib.dataCachePageSize = "4096" diskLib.maxUnsyncedWrites = "0" scsi1.present = "TRUE" scsi1.virtualDev = "lsilogic" scsi1.sharedBus = "VIRTUAL" scsi1:1.present = "TRUE" scsi1:1.mode = "independent-persistent" scsi1:1.fileName = "/u01/VM/shared/ocr.vmdk" scsi1:1.deviceType = "plainDisk" scsi1:1.redo = "" scsi1:2.present = "TRUE" scsi1:2.mode = "independent-persistent" scsi1:2.fileName = "/u01/VM/shared/votingdisk.vmdk" scsi1:2.deviceType = "plainDisk" scsi1:2.redo = "" scsi1:3.present = "TRUE" scsi1:3.mode = "independent-persistent" scsi1:3.fileName = "/u01/VM/shared/asm1.vmdk" scsi1:3.deviceType = "plainDisk" scsi1:3.redo = "" scsi1:4.present = "TRUE" scsi1:4.mode = "independent-persistent" scsi1:4.fileName = "/u01/VM/shared/asm2.vmdk" scsi1:4.deviceType = "plainDisk" scsi1:4.redo = "" scsi1:5.present = "TRUE" scsi1:5.mode = "independent-persistent" scsi1:5.fileName = "/u01/VM/shared/asm3.vmdk" scsi1:5.deviceType = "plainDisk" scsi1:5.redo = ""
Start the RAC1 virtual machine by clicking the 8220;Power on this virtual machine8221; button on the VMware Server Console. When the server has started, log in so you can partition the disks.
Prior to partitioning the disks on Windows Server 2003, you must enable disk automounting. I didn8217;t need to do this, but I guess it makes sense to do as you8217;re told. To enable automounting do the following command at the command prompt, then restart the server.
C:\> diskpart DISKPART> automount enable DISKPART> exit C:\>
When the server restarts, open the 8220;Computer Management8221; dialog (Start > All Programs > Administrative Tools > Computer Management) and click on the Disk Management tree node. This action should initiate the 8220;Initialize and Convert Disk Wizard8221;. Click the 8220;Next8221; button to continue.

Initialize all 5 disks by clicking the 8220;Next8221; button.

Don8217;t convert any of the disks. Make sure all 5 disks are unchecked, then 8220;Next8221; button.

Complete the process by clicking the 8220;Finish8221; button.

Right-click on 8220;Disk 18243; and select the 8220;New Partition8230;8221; option to start the 8220;New Partition Wizard8221;.

Click the 8220;Next8221; button to continue.

Select the 8220;Extended partition8221; option, then click the 8220;Next8221; button.

Accept the default partition size by clicking the 8220;Next8221; button.

Complete the partition by clicking the 8220;Finish8221; button.

The partition will now be displayed with a green bar. Right-click on the partition and select the 8220;New Logical Drive8221; option to restart the 8220;New Partition Wizard8221;.

Click the 8220;Next8221; button to continue.

Accept the 8220;Logical drive8221; option by clicking the 8220;Next8221; button.

Accept the default partition size by clicking the 8220;Next8221; button.

Select the 8220;Do not assign a drive letter or drive path8221; option, then click the 8220;Next8221; button.

Select the 8220;Do not format this partition8221; option, then click the 8220;Next8221; button.

Complete the logical drive by clicking the 8220;Finish8221; button.

The drive should now be displayed as a healthy drive with a blue bar.

Repeat the previous partitioning steps for the remaining 4 disks.
The shared disks are now configured.
Clone the Virtual Machine
The current version of VMware Server does not include an option to clone a virtual machine, but the following steps illustrate how this can be achieved manually.
Shut down the RAC1 virtual machine and copy the RAC1 virtual machine using the following command.
# cp -R /u01/VM/RAC1 /u01/VM/RAC2
Edit the contents of the 8220;/u01/VM/RAC2/RAC1.vmx8221; file, making the following change.
displayName = "RAC2"
Ignore discrepancies with the file names in the 8220;/u01/VM/RAC28243; directory. This does not affect the action of the virtual machine.
In the VMware Server Console, select the File > Open menu options and browse for the 8220;/u01/VM/RAC2/RAC1.vmx8221; file. Once opened, the RAC2 virtual machine is visible on the console. Start the RAC2 virtual machine by clicking the 8220;Power on this virtual machine8221; button and click the 8220;Create8221; button on the subsequent 8220;Question8221; screen.

Open the 8220;Network Connections8221; screen (Start > All Programs > Accessories > Communications > Network Connections). Amend the IP Addresses of both connections to the correct values for the RAC2 node.

The cloning process sometimes alters the network connection setup, so repeat the steps mentioned previously for removing extra network adapters and renaming the connections.
Open the 8220;System Properties8221; dialog (Start > Control Panel > System), click on the 8220;Computer Name8221; tab and click the 8220;Change8221; button. Enter the name 8220;rac28243; then click the 8220;OK8221; button.

Click all subsequent 8220;OK8221; buttons to exit the 8220;System Properties8221; dialog and restart the server when prompted.
Once the RAC2 virtual machine has restarted, start the RAC1 virtual machine. When both nodes have started, check they can both ping all the public and private IP addresses using the following commands.
ping -c 3 rac1 ping -c 3 rac1-priv ping -c 3 rac2 ping -c 3 rac2-priv
At this point the virtual IP addresses defined in the hosts file will not work, so don8217;t bother testing them.
It8217;s a good idea to take a snapshot of the virtual machines, so you can repeat the following stages if you run into any problems. To do this, shutdown both virtual machines and issue the following commands.
# cd /u01/VM # tar -cvf RAC-PreClusterware.tar RAC1 RAC2 shared # gzip RAC-PreClusterware.tar
The virtual machine setup is now complete.
Install the Clusterware Software
Start the RAC1 and RAC2 virtual machines. The Oracle Clusterware for Windows is very sensitive, so before you start, check the network connection setup on each machine again. Remove and extra network adapters, rename the connections appropriately and check the nodes ping correctly. Make sure your network configuration matches the Checking Network Requirements section of the documentation.
Start the Oracle installer on RAC1.

On the 8220;Welcome8221; screen, click the 8220;Next8221; button.

Accept the default inventory location by clicking the 8220;Next8221; button.

Enter the appropriate name and path for the Oracle Home and click the 8220;Next8221; button.

Wait while the prerequisite checks are done. If you have any failures correct them and retry the tests before clicking the 8220;Next8221; button.

The 8220;Specify Cluster Configuration8221; screen shows only the RAC1 node in the cluster. Click the 8220;Add8221; button to continue.

Enter the details for the RAC2 node and click the 8220;OK8221; button.

Click the 8220;Next8221; button to continue.

The 8220;Specific Network Interface Usage8221; screen defines how each network interface will be used. Highlight the 8220;public8221; interface and click the 8220;Edit8221; button.

Set the 8220;public8221; interface type to 8220;Public8221; and click the 8220;OK8221; button.

Leave the 8220;private8221; interface as private and click the 8220;Next8221; button.

On the 8220;Cluster Configuration Storage8221; screen, highlight disk 1 and click the 8220;Edit8221; button.

Select the 8220;Place OCR(Primary) on this Partition8221; option and click the 8220;OK8221; button.

Highlight disk 2 and click the 8220;Edit8221; button. Select the 8220;Place Voting Disk on this Partition8221; option and click the 8220;OK8221; button.

On the 8220;Cluster Configuration Storage8221; screen, click the 8220;Next8221; button and ignore the redundancy warnings by clicking the 8220;OK8221; button.

On the 8220;Summary8221; screen, click the 8220;Install8221; button to continue.

Wait while the installation takes place.

Wait while the configuration assistants run.

The VIPCA will fail, so click the 8220;OK8221; button on the resulting error screen.

Click the 8220;Next8221; button and accept the subsequent warning, then click the 8220;Exit8221; button to leave the installer.

On the RAC1 virtual machine, run the VIPCA manually by issuing the following commands in a command prompt.
cd c:\oracle\product\10.2.0\crs\bin vipca.bat
Click the 8220;Next8221; button on the VIPCA welcome screen.

Highlight the 8220;public8221; interface and click the 8220;Next8221; button.

Enter the vitual IP alias and address for each node. Once you enter the first alias, the remaining values should default automatically. Click the 8220;Next8221; button to continue.

Accept the summary information by clicking the 8220;Finish8221; button.

Wait until the configuration is complete, then click the 8220;OK8221; button.

Accept the VIPCA results by clicking the 8220;Exit8221; button.

The status of the finished cluster can be checked by running the cluvfy.bat script as shown below.
C:\oracle\product\10.2.0\crs\BIN>cluvfy.bat stage -post crsinst -n rac1,rac2 Performing post-checks for cluster services setup Checking node reachability... Node reachability check passed from node "rac1". Checking user equivalence... User equivalence check passed for user "Administrator". Checking Cluster manager integrity... Checking CSS daemon... Daemon status check passed for "CSS daemon". Cluster manager integrity check passed. Checking cluster integrity... Cluster integrity check passed Checking OCR integrity... Checking the absence of a non-clustered configuration... All nodes free of non-clustered, local-only configurations. Uniqueness check for OCR device passed. Checking the version of OCR... OCR of correct Version "2" exists. Checking data integrity of OCR... Data integrity check for OCR passed. OCR integrity check passed. Checking CRS integrity... Checking daemon liveness... Liveness check passed for "CRS daemon". Checking daemon liveness... Liveness check passed for "CSS daemon". Checking daemon liveness... Liveness check passed for "EVM daemon". Checking CRS health... CRS health check passed. CRS integrity check passed. Checking node application existence... Checking existence of VIP node application (required) Check passed. Checking existence of ONS node application (optional) Check passed. Checking existence of GSD node application (optional) Check passed. Post-check for cluster services setup was successful. C:\oracle\product\10.2.0\crs\BIN>
It8217;s a good idea to take a snapshot of the virtual machines, so you can repeat the following stages if you run into any problems. To do this, shutdown both virtual machines and issue the following commands.
# cd /u01/VM # tar -cvf RAC-PostClusterware.tar RAC1 RAC2 shared # gzip RAC-PostClusterware.tar
The clusterware installation is now complete.
Install the Database Software and Create an ASM Instance
Start the RAC1 and RAC2 virtual machines, login to RAC1 and start the Oracle installer.

On the 8220;Welcome8221; screen, click the 8220;Next8221; button.

Select the 8220;Enterprise Edition8221; option and click the 8220;Next8221; button.

Enter the name and path for the Oracle Home and click the 8220;Next8221; button.

Select the 8220;Cluster Installation8221; option and make sure both RAC nodes are selected, then click the 8220;Next8221; button.

Wait while the prerequisite checks are done. If you have any failures correct them and retry the tests before clicking the 8220;Next8221; button.

Select the 8220;Configure Automatic Storage Management (ASM)8221; option, enter the SYS password for the ASM instance, then click the 8220;Next8221; button.

Select the 8220;External8221; redundancy option (no mirroring) and click the 8220;Stamp Disks8230;8221; button.

Select the 8220;Add or change label8221; option and click the 8220;Next8221; button.

Highlight disks 3-5 and click the 8220;Next8221; button. Remember, disk0 is the OS, disk1 is the OCR location and disk2 is the voting disk.

Confirm your selection by clicking the 8220;Next8221; button.

Complete the disk stamp by clicking the 8220;Finish8221; button.

Select the candidate disks and click the 8220;Next8221; button.

On the 8220;Summary8221; screen, click the 8220;Install8221; button to continue.

Wait while the database software installs.

Once the installation is complete, wait while the configuration assistants run.

When the installation is complete, click the 8220;Exit8221; button to leave the installer.

It8217;s a good idea to take a snapshot of the virtual machines, so you can repeat the following stages if you run into any problems. To do this, shutdown both virtual machines and issue the following commands.
# cd /u01/VM # tar -cvf RAC-PostASM.tar RAC1 RAC2 shared # gzip RAC-PostASM.tar
The database software installation and ASM creation step is now complete.
Create a Database using the DBCA
Start the RAC1 and RAC2 virtual machines, login to RAC1 start the Database Configuration Assistant (Start > All Programs > Oracle 8211; db_1 > Configuration and Migration Tools > Database Configuration Assistant).
On the 8220;Welcome8221; screen, select the 8220;Oracle Real Application Clusters database8221; option and click the 8220;Next8221; button.

Select the 8220;Create a Database8221; option and click the 8220;Next8221; button.

Highlight both RAC nodes and click the 8220;Next8221; button.

Select the 8220;Custom Database8221; option and click the 8220;Next8221; button.

Enter the values 8220;RAC.WORLD8221; and 8220;RAC8221; for the Global Database Name and SID Prefix respectively, then click the 8220;Next8221; button.

Accept the management options by clicking the 8220;Next8221; button. If you are attempting the installation on a server with limited memory, you may prefer not to configure Enterprise Manager at this time.

Enter database passwords then click the 8220;Next8221; button.

Select the 8220;Automatic Storage Management (ASM)8221; option, then click the 8220;Next8221; button.

Select the 8220;DATA8221; disk group, then click the 8220;Next8221; button.

Accept the 8220;Use Oracle-Managed Files8221; database location by the 8220;Next8221; button.

Check both the 8220;Specify Flash Recovery Area8221; and 8220;Enable Archiving8221; options. Enter 8220;+DATA8221; as the Flash Recovery Area, then click the 8220;Next8221; button.

Uncheck all but the 8220;Enterprise Manager Repository8221; option, then click the 8220;Standard Database Components8230;8221; button.

Uncheck all but the 8220;Oracle JVM8221; option, then click the 8220;OK8221; button, followed by the 8220;Next8221; button on the previous screen. If you are attempting the installation on a server with limited memory, you may prefer not to install the JVM at this time.

Accept the current database services configuration by clicking the 8220;Next8221; button.

Select the 8220;Custom8221; memory management option and accept the default settings by clicking the 8220;Next8221; button.

Accept the database storage settings by clicking the 8220;Next8221; button.

Accept the database creation options by clicking the 8220;Finish8221; button.

Accept the summary information by clicking the 8220;OK8221; button.

Wait while the database is created.

Once the database creation is complete you are presented with the following screen. Make a note of the information on the screen and click the 8220;Exit8221; button.

The RAC database creation is now complete.
TNS Configuration
Once the installation is complete, the 8220;%ORACLE_HOME%\network\admin\listener.ora8221; file on each RAC node will contain entries similar to the following.
LISTENER_RAC1 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip.localdomain)(PORT = 1521)(IP = FIRST))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.101)(PORT = 1521)(IP = FIRST))
)
)
SID_LIST_LISTENER_RAC1 =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
)
The 8220;%ORACLE_HOME%\network\admin\tnsnames.ora8221; file on each RAC node will contain entries similar to the following.
RAC =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip.localdomain)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip.localdomain)(PORT = 1521))
(LOAD_BALANCE = yes)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = RAC.WORLD)
)
)
LISTENERS_RAC =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip.localdomain)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip.localdomain)(PORT = 1521))
)
RAC2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip.localdomain)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = RAC.WORLD)
(INSTANCE_NAME = RAC2)
)
)
RAC1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip.localdomain)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = RAC.WORLD)
(INSTANCE_NAME = RAC1)
)
)
This configuration allows direct connections to specific instance, or using a load balanced connection to the main service.
C:\>sqlplus / as sysdba SQL*Plus: Release 10.2.0.1.0 - Production on Thu Apr 20 16:58:37 2006 Copyright (c) 1982, 2005, Oracle. All rights reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, Real Application Clusters, OLAP and Data Mining options SQL> CONN sys/password@rac1 AS SYSDBA Connected. SQL> SELECT instance_name, host_name FROM v$instance; INSTANCE_NAME HOST_NAME ---------------- ---------------------------------------------------------------- rac1 RAC1 SQL> CONN sys/password@rac2 AS SYSDBA Connected. SQL> SELECT instance_name, host_name FROM v$instance; INSTANCE_NAME HOST_NAME ---------------- ---------------------------------------------------------------- rac2 RAC2 SQL> CONN sys/password@rac AS SYSDBA Connected. SQL> SELECT instance_name, host_name FROM v$instance; INSTANCE_NAME HOST_NAME ---------------- ---------------------------------------------------------------- rac2 RAC2 SQL>
Check the Status of the RAC
There are several ways to check the status of the RAC. The srvctl utility shows the current configuration and status of the RAC database.
C:\>srvctl config database -d RAC rac1 RAC1 C:\oracle\product\10.2.0\db_1 rac2 RAC2 C:\oracle\product\10.2.0\db_1 C:\> C:\>srvctl status database -d RAC Instance RAC1 is running on node rac1 Instance RAC2 is running on node rac2 C:\>
The V$ACTIVE_INSTANCES view can also display the current status of the instances.
C:\>sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Thu Apr 20 16:58:37 2006
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options
SQL> SELECT * FROM v$active_instances;
INST_NUMBER INST_NAME
----------- ------------------------------------------------------------
1 RAC1:rac1
2 RAC2:rac2
SQL>
Finally, the GV$ allow you to display global information for the whole RAC.
SQL> SELECT inst_id, username, sid, serial# FROM gv$session WHERE username IS NOT NULL;
INST_ID USERNAME SID SERIAL#
---------- ------------------------------ ---------- ----------
2 SYSMAN 126 12
2 DBSNMP 127 41
2 SYS 128 13
2 SYS 130 339
2 SYS 131 2
2 SYS 132 2
2 SYS 133 3
2 DBSNMP 135 43
2 SYS 153 13
1 SYSMAN 119 36
1 SYSMAN 120 7
INST_ID USERNAME SID SERIAL#
---------- ------------------------------ ---------- ----------
1 SYSMAN 121 25
1 SYS 122 1
1 SYS 123 3
1 SYS 124 4
1 SYSMAN 125 12
1 SYSMAN 130 5
1 SYSMAN 132 3
1 DBSNMP 133 1
1 DBSNMP 137 11
1 SYS 143 126
1 SYS 152 30
22 rows selected.
SQL>
If you have configured Enterprise Manager, it can be used to view the configuration and current status of the database.























































