Skip to main content

Procedure for Restoring and Converting a Database to a Two-Node Oracle RAC Environment (Druva Oracle DTC)

Procedure for Restoring and Converting a Database to a Two-Node Oracle RAC Environment (Druva Oracle DTC)

Updated this week

Objective:

This document describes the standard procedure for restoring an Oracle database backup using Druva Oracle DTC to a single node of a RAC cluster and then converting it into a fully functional, two-node RAC database using shared storage (ASM) for all critical files.

Prerequisites

  • A functional two-node Oracle RAC cluster with Grid Infrastructure installed and running.

  • Oracle Database software (same version as the backup) installed on both nodes.

  • Shared ASM disk groups created, mounted, and available on both nodes.

  • Same or higher version of Druva Oracle DTC agent on target node.

Phase 1: Initial Database Restore to a Single Node

Objective:

Restore the database using Druva Oracle DTC to one node of the cluster and bring it up as a single-instance database. This simplifies the initial recovery before RAC conversion.

  • Perform the Restore:
    Use the Druva Oracle DTC console to restore the database to one node of the RAC cluster.
    Restore Target: Restore all database files directly to an ASM disk group (e.g., +DATA).

  • Set Restore Parameters:
    In the Druva DTC restore configuration, define the following parameters for the initial single-instance recovery:

    control_files=+DATA/dbname/controlfile/control01.ctl
    DB_BLOCK_SIZE=16384
    db_create_file_dest=+DATA
    db_create_online_log_dest_1=+REDO
    db_create_online_log_dest_2=+FRA
    cluster_database=FALSE
    sga_target=4294967296
    pga_aggregate_target=2147483648
    processes=300
    undo_management=AUTO
  • Note: Setting cluster_database=FALSE is required for the single-instance phase.

  • Best Practice for Control File Path:

    • The control_files parameter is critical. If it references the source database name (e.g., dbsourcename), it will require relocation later.

  • Proactive Tip:

    • Modify this parameter before starting the restore to use the new target database name (e.g., dbdestination).

  • Before (causes mismatch):

    control_files=+DATA/dbsourcename/controlfile/control01.ctl

  • After (recommended):

    control_files=+DATA/dbdestination/controlfile/control01.ctl

    • This ensures the control file is created in its correct final location.

  • Open the Database:

    • Once the restore completes successfully through Druva DTC, open the database in read-write mode on the single node.

Phase 2: Prepare for RAC Conversion

Objective:

Create a PFILE for RAC configuration and define the parameters required for a two-node RAC setup.

  1. Create a Temporary PFILE:

    1. Connect to the restored single-instance database and create a PFILE from its current SPFILE.

    export ORACLE_SID=<DB_NAME>1 # e.g., MESTEST1

    sqlplus / as sysdba

    SQL> CREATE PFILE='/tmp/init<DB_NAME>_rac.ora' FROM SPFILE;

  2. Shut Down the Database:

    SQL> SHUTDOWN IMMEDIATE;

  3. Edit the PFILE for RAC:
    Edit /tmp/init<DB_NAME>_rac.ora and update it with parameters suitable for a two-node RAC configuration. Replace placeholders (<>) with actual values.
    RAC PFILE Template:

    *.db_name='<DB_NAME>'
    *.db_unique_name='<DB_NAME>'
    *.cluster_database=true
    *.control_files='+<DATA_DISKGROUP>/<DB_NAME>/CONTROLFILE/control01.ctl'
    # ... additional parameters as needed ...
    <INSTANCE_NAME_1>.instance_number=1
    <INSTANCE_NAME_1>.thread=1
    <INSTANCE_NAME_1>.undo_tablespace='UNDOTBS1'
    <INSTANCE_NAME_2>.instance_number=2
    <INSTANCE_NAME_2>.thread=2
    <INSTANCE_NAME_2>.undo_tablespace='UNDOTBS2'

Phase 3: Configure Shared Files in ASM

Objective:

Create the shared SPFILE and password file in ASM for RAC configuration.

  1. Move or Verify Control File:

    1. If the control file path was not updated earlier, move it to the correct directory:

      asmcmd
      ASMCMD> mkdir +<DATA_DISKGROUP>/<DB_NAME>
      ASMCMD> mkdir +<DATA_DISKGROUP>/<DB_NAME>/CONTROLFILE
      ASMCMD> mv +<DATA_DISKGROUP>/<SOURCE_DB_NAME>/CONTROLFILE/control01.ctl +<DATA_DISKGROUP>/<DB_NAME>/CONTROLFILE/control01.ctl
      ASMCMD> exit

    2. If the proactive step was done in Phase 1, you can skip this move.

  2. Create the Shared SPFILE:

    export ORACLE_SID=<INSTANCE_NAME_1>
    sqlplus / as sysdba
    SQL> STARTUP NOMOUNT PFILE='/tmp/init<DB_NAME>_rac.ora';
    SQL> CREATE SPFILE='+<DATA_DISKGROUP>/<DB_NAME>/PARAMETERFILE/spfile<DB_NAME>.ora' FROM PFILE='/tmp/init<DB_NAME>_rac.ora';
    SQL> SHUTDOWN ABORT;

  3. Create the Shared Password File:

    asmcmd mkdir +<DATA_DISKGROUP>/<DB_NAME>/PASSWORD
    orapwd file='+<DATA_DISKGROUP>/<DB_NAME>/PASSWORD/pwd<DB_NAME>' password='<YourSecurePassword>' format=12.2 entries=20 asm=y

Phase 4: Register with Clusterware and Go Live

Objective:

Register the database with Oracle Clusterware and start it as a two-node RAC database.

  1. Register the Database:

    srvctl add database -db <DB_NAME> -oraclehome <ORACLE_HOME> \
    -spfile '+<DATA_DISKGROUP>/<DB_NAME>/PARAMETERFILE/spfile<DB_NAME>.ora' \
    -pwfile '+<DATA_DISKGROUP>/<DB_NAME>/PASSWORD/pwd<DB_NAME>'

  2. Add the Instances:

    srvctl add instance -db <DB_NAME> -instance <INSTANCE_NAME_1> -node <NODE_NAME_1>
    srvctl add instance -db <DB_NAME> -instance <INSTANCE_NAME_2> -node <NODE_NAME_2>

  3. Verify Configuration:

    srvctl config database -d <DB_NAME>

  4. Start and Verify RAC Database:

    srvctl start database -d <DB_NAME>

    srvctl status database -d <DB_NAME>

✅ Summary

This procedure ensures that a database backed up via Druva Oracle DTC can be successfully restored to a single node and then converted into a fully functional two-node RAC database using ASM storage, maintaining integrity and availability for clustered environments.

Did this answer your question?