Sunday, June 16, 2013

Convert Single Instance to RAC using RCONFIG

The following oracle supported methods are available to convert a single-instance database to a RAC database as long as the RAC and the standalone environments are running on the same OS and using the same oracle release:

3. Oracle Enterprise Manager (grid control)
4. Manual method

Here we will see how to convert single intance database to RAC using RCONFIG.

During the conversion, rconfig performs the following steps automatically:
• Migrating the database to ASM, if specified
• Creating RAC database instances on all specified nodes in the cluster
• Configuring the Listener and NetService entries
• Registering services with CRS
• Starting up the instances and listener on all nodes

In Oracle 11g R2, a single-instance database can either be converted to an administrator-managed cluster database or a policy-managed cluster database.

The difference between administrator managed and policy managed cluster database is given below in green,

Server pools are logical divisions of a cluster into pools of servers, which are allocated to host databases or other applications. Server pools are managed using crsctl and srvctl commands.

By default, any named user may create a server pool. To restrict the operating system users that have this privilege, Oracle strongly recommends that you add specific users to the CRS Administrators list.
Each server pool name must be unique within the cluster. Two server pools cannot use the same name.
There are two types of server pool management:

Administrator-managed: Database administrators define the servers on which databases resource run, and place resources manually as needed. This is the management strategy used in previous releases.

Policy managed: Database administrators specify in which server pool (excluding generic or free) the database resource will run. Oracle Clusterware is responsible for placing the database resource on a server.
The server pool name is a required attribute. You can also provide values for the following attributes; if you do not specify them, then they are set to the default value:
MIN_SIZE: Minimum number of servers on which you want a resource to run. The default is 0.
MAX_SIZE: Maximum number of servers on which you want a resource to run. The default is -1, which indicates that resources can run on all available nodes in the cluster.
IMPORTANCE: The relative importance of the resource pool, used to determine how to reconfigure servers when a node joins or leaves the cluster. The default is 0.

Note: Clients using Oracle Database 11g release 2 and later databases using policy-managed server pools must access the database using the Single Client Access Name (SCAN). This is required because policy-managed databases can run on different servers at different times, so connecting to a particular node virtual IP address for a policy-managed database is not possible.

When you navigate through the $ORACLE_HOME/assistants/rconfig/sampleXMLS, you will find two sample XML input files.

- ConvertToRAC_AdminManaged.xml
- ConvertToRAC_PolicyManaged.xml

While converting a single-instance database, with filesystem storage, to an RAC database with Automatic Storage Management (ASM), rconfig invokes RMAN internally to back up the database to proceed with converting non-ASM to ASM.


2 node RAC setup
- Names of nodes : egtodb01, egtodb02

- Name of single instance database with filesystem storage : ebsuat

- Source Oracle home : /u01/app/oracle/product/11.2.0/dbhome_1

- Target Oracle home : /u01/app/oracle/product/11.2.0/dbhome_1

- convert ebsuat to a Admin managed RAC database running on two nodes egtodb01 and egtodb02.

- change storage to ASM with
   . Datafiles on +DATA diskgroup
   . Flash recovery area on +FRA diskgroup

IMPLEMENTATION:– copy ConvertToRAC_AdminManaged.xml to another file my.xml

egtodb01$ cd $ORACLE_HOME/assistants/rconfig/sampleXMLs
egtodb01$ cp ConvertToRAC_AdminManaged.xml my.xml

– Edit my.xml and make following changes :
   . 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.
   . Instance Prefix tag is optional starting with 11.2. If left empty, it is derived from db_unique_name
   . Specify the type of storage to be used by rac database. Allowable values are CFS|ASM
   . Specify Database Area Location to be configured for rac database.
   . Specify Flash Recovery Area to be configured for rac database.

– Run rconfig to convert ebsuat from single instance database to 2 instance RAC database

egtodb01$ rconfig my.xml

– Check the log file for rconfig while conversion is going on
oracle@egtodb01$ ls -lrt  $ORACLE_BASE/cfgtoollogs/rconfig/*.log

– check that the database has been converted successfully

egtodb01$srvctl status database -d ebsuat
Instance ebsuat1 is running on node egtodb01
Instance ebsuat2 is running on node egtodb02

– Note that rconfig adds password file to all the nodes but  entry to tnsnames.ora needs to be modified (to reflect scan name instead of host-ip) on the local node and added to rest of the nodes.

– For all other nodes, copy the entry for the database ebsuat from tnsnames.ora on local node to tnsnames.ora on remote nodes.

– Following is the entry I modified on the local node and copied to rest of the nodes :
ebsuat =
    (ADDRESS = (PROTOCOL = TCP)(HOST = = 1521))
      (SERVICE_NAME = ebsuat)

– check that database can be connected remotely from remote node.
egtodb02$sqlplus system/manager@ebsuat

– check that datafiles have converted to ASM

SQL>select name from v$datafile;


For any further questions regarding the subject topic, please don't hesitate to email me