This post talks about the Conversion of  11gR2 non-RAC database to RAC database using rconfig.

Oracle provides 3 methods to convert non-RAC single instance database to RAC databases:

2. rconfig
3. Enterprise Manager

All the 3 have their own benefits and can be used to suit one’s needs. My recent work involved the conversion of non-RAC single instance database to RAC database using rconfig, although I’ve tested all the 3 methods but concluded on rconfig.


1. Configure Shared Storage setup ASM, NFS (NAS) or clustered storage.

2. A clustered Grid Infrastructure install with at least one Scan listener address. See

Oracle Grid Infrastructure Installation Guide 11g Release 2 (11.2) Linux

3.  rconfig imposes a restriction on the choice of listener. The listener must be the default listener, and it must run from the Grid Infrastructure home.

srvctl add listener -p 1522

After conversion, you can reconfigure the listener as required.

4.  Install Clustered Oracle Database Software as per documentation, this can be done by choosing the right configuration option. Refer to :

I’ve installed the new 11gR2 clustered ORACLE_HOME at


on both the nodes orarac01 and orarac02

Converting Single Instance Database using rconfig

1. As an “oracle” OS user navigate to


2. Open the sample file ConvertToRAC_AdminManaged.xml using a text editor such as vi. This XML sample file contains comment lines that provide instructions on how to edit the file to suit your site’s specific needs.

3.  Ensure you edit the xml with convert verify="ONLY"
The following are the sample entries:

<!--Specify current OracleHome of non-rac database for SourceDBHome -->
<!--Specify OracleHome where the rac database should be configured. It can be same as SourceDBHome -->
<!--Specify SID of non-rac database and credential. User with sysdba role is required to perform conversion -->


<!--Specify the list of nodes that should have rac instances running for the Admin Managed Cluster Database. LocalNode should  be the first node in this nodelist. -->


<!--Specify Database Area Location to be configured for rac database.If this field is left empty, current storage will be use d for rac database. For CFS, this field will have directory path. -->

4.  Move the spfile to the shared location, in this case the Single Instance Database was hosted on file system, in this process we will move the datafiles from file system storage to ASM.

So create spfile in the shared disk location

SQL>create spfile='+DATA/TEST/spfiletest.ora' from pfile;

You can check if the file is created through “asmcmd”

5. Take a backup of existing $SOURCE_ORACLE_HOME/dbs/initTEST.ora, and create a new $SOURCE_ORACLE_HOME/dbs/initTEST.ora with the following parameter:


6. Restart the Database

7. Now lets test if “rconfig” is ready for conversion, navigate to $ORACLE_HOME/bin and issue the following command

$./rconfig $ORACLE_HOME/assistants/rconfig/sampleXMLs/ConvertToRAC_AdminManaged.xml

The above command validates( as we’ve set convert=”ONLY”) if rconfig is ready for conversion. If the output throws any error, diagnose and troubleshoot to fix the issue. Refer to the following output for successful validation:


 Operation Succeeded

There is no return value for this step


8. Now are we are ready for conversion, edit the xml file “ConvertToRAC_AdminManaged.xml” and change:


 <n:Convert verify="ONLY">


 <n:Convert verify="YES">

9. Perform the conversion

$./rconfig $ORACLE_HOME/assistants/rconfig/sampleXMLs/ConvertToRAC_AdminManaged.xml

The conversion will take some time to complete. The progress can be monitored from the logs located at $ORACLE_BASE/cfgtoollogs/rconfig

10. Once the conversion is complete you’d get a similar message in step 7.

11. Perform sanity checks and tweak the listener to suit your needs.

That sums up the procedure to convert Single Instance Oracle Database to RAC database. Please do share your thoughts and comments.



My Second blog…. 🙂

Thist post is about installation of Oracle 10g R2 on Solaris 10. If you wish to install Solaris 10 on VMware heres the link.
Having installed Oracle 10g and various other releases as a part of project implementations/upgrade on various environments thought it’d be a good idea to spread the knowledge :).
I have installed Oracle 10g R2 on the Solaris 10 VM I created last week(see my earliar post).

So.. Lets get started..


Database: Oracle Database 10g R2

Pre-Installation Tasks

1. Determine the physical RAM size:

# /usr/sbin/prtconf | grep "Memory size"

Memory size: 1024 Megabytes


2. To determine the size of the configured swap space, enter the following command:

# /usr/sbin/swap -s

total: 360448k bytes allocated + 72480k reserved = 432928k used, 1335996k available


3. Ensure /tmp has atleast 400MB, you can set different “temp” location by setting the environment variables “TMP” and “TMPDIR”

# df -k /tmp

4. Ensure there is enough disk space to install Oracle Software and Create starter database:

# df -h /ora10g
Filesystem             size   used  avail capacity  Mounted on
/dev/dsk/c1t1d0s6      7.9G   8.0M   7.8G     1%    /ora10g

5. Determine the System Architecture

# isainfo -kv
64-bit amd64 kernel modules

6. Check Software Requirements

# pkginfo -i SUNWarc SUNWbtool SUNWhea SUNWlibm SUNWlibms SUNWsprot \
 SUNWtoo SUNWi1of SUNWi1cs SUNWi15cs SUNWxwfnt
system      SUNWarc   Lint Libraries (usr)
system      SUNWbtool CCS tools bundled with SunOS
system      SUNWhea   SunOS Header Files
system      SUNWi15cs X11 ISO8859-15 Codeset Support
system      SUNWi1cs  X11 ISO8859-1 Codeset Support
system      SUNWi1of  ISO-8859-1 (Latin-1) Optional Fonts
system      SUNWlibm  Math & Microtasking Library Headers & Lint Files (Usr)
system      SUNWlibms Math & Microtasking Libraries (Usr)
system      SUNWsprot Solaris Bundled tools
system      SUNWtoo   Programming Tools
system      SUNWxwfnt X Window System platform required fonts

If you do not find any patches installed, use the following command to add the packages:

#pkgadd -d /cdrom/sol_10_1106_x86/Solaris_10/Product <Package Name>

7. Hostname / Domain Name Checks:

If you use DNS:

#cat /etc/nsswitch.conf | grep hosts

In this case I did not use DNS, so I’d do the following:

# hostname
# domainname
# cat /etc/hosts | grep `eval hostname`         orasun02        loghost

8. Creating Oracle User and Groups

  • Create Oracle Inventory Group(oinstall) 
     # /usr/sbin/groupadd oinstall
  • Create OSDBA group (dba)
    # /usr/sbin/groupadd dba
  • Create Project Group
    # projadd group.dba
    # projects -l group.dba
     projid : 101
     comment: ""
     users  : (none)
     groups : (none)
  • Add resources to project “group.dba”
    #projmod -sK "project.max-shm-memory=(privileged,2G,deny)" group.dba
    #projmod -sK "project.max-sem-ids=(privileged,100,deny)" group.dba
    #projmod -sK "project.max-shm-ids=(privileged,100,deny)" group.dba
    #projmod -sK "project.max-sem-nsems=(privileged,256,deny)" group.dba
  • Create “oracle” user
    #useradd -g oinstall -G dba -m -d /export/home/oracle -s /bin/ksh -K project=group.dba oracle
  • Set the password of the oracle user:
    # passwd -r files oracle
  • Verify user “nobody” exists:
    # id nobody
    uid=60001(nobody) gid=60001(nobody)

9. Creating Directories

#mkdir -p /ora10g/oracle/
#chown -Rh oracle:oinstall /ora10g/oracle
#chmod -R 755 /ora10g/oracle

10. Login to user “oracle” and edit “.profile” to set ORACLE_BASE,ORACLE_HOME,etc

# Oracle Settings
TMP=/tmp; export TMP
ORACLE_BASE=/ora10g/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1; export ORACLE_HOME


  • Allow user “oracle” to use the display(Here I assume you’d be using Xterm like Xorg/XSun/vncserver/etc, so login as “root” and issue the following command:
    #/usr/openwin/bin/xhost +

    Ensure the display is working for user “oracle”

    # su - oracle
    $export DISPLAY


  • Unpack the Oracle 10g Software:
    #unzip -o
  • Invoke “runInstaller”
    # ./runInstaller
  • Select Installation Method, I have chosen “Advanced Installation” and click “Next” 02_runInstaller
  • 04_oracle_home_details

  • Select Installation Type, I have chosen “Enterprise Edition”, Click “Next” to proceed further 03_select_installation_type
  • Specify Oracle Home details, this is already picked up as we specified in .profile, confirm if its right , alternatively change as desired. Click “Next” to continue04_oracle_home_details
  • Now Oracle does Product Specific Pre-requisite Checks, if you see it failed with 2 warnings and if you notice we have not set the kernel parameters shown in the sceenshot. This is fine as in Solaris 10 the resources are managed through the resource control, as we have configured in step 8. 05_product_specific_checks
  • Select Configuration Option, Choose radio button “Create Database” and click “Next”06_select_config_operations
  • Select Database Configuration , choose “General Purpose Database” and click “Next”07_select_db_configuration
  • Specify Database Configuration Options,  the screen look similar to as below screenshot, and click “Next”08_specify_db_conf
  • Select Database Management Option, click “Next”09_db_management_option
  • Specify database storage option, should like the screenshot below, click “Next” to continue10_storage_option
  • I have chosen not to enable automated backups, Click “Next”11_backup_and_recovery_option
  • Specify Database Schema Passwords and click “Next”12_schema_pwd
  • Finally.. click “Install” to start the installation.13_install
  • After the installation finishes and starter database is created, Execute the configuration scripts, show in the below screenshot14_exec_conf_script

    From the terminal execute the “” as user “root”:

    # /ora10g/oracle/product/10.2.0/db_1/
    Running Oracle10 script...
    The following environment variables are set as:
        ORACLE_OWNER= oracle
        ORACLE_HOME=  /ora10g/oracle/product/10.2.0/db_1
    Enter the full pathname of the local bin directory: [/usr/local/bin]:
       Copying dbhome to /usr/local/bin ...
       Copying oraenv to /usr/local/bin ...
       Copying coraenv to /usr/local/bin ...
    Entries will be added to the /var/opt/oracle/oratab file as needed by
    Database Configuration Assistant when a database is created
    Finished running generic part of script.
    Now product-specific root actions will be performed.

    Then go back to Oracle Universal Installer screen and click “OK”

  • Thats it , its the end of installation and your database should be up and running.15_end_of_installation
  • Lets login to the Oracle Enterprise Manager 10g16_oem