Restore the RMAN backup of a RAC to a Single Instance

The source database is a 2 Node RAC Database(10.2.0.4)
Source :
Unique Name    : SHCL1DR
Db_Name           : SHCL1
SID                        : SHCL1DR2

The destination will be a single instnace.
Destination :
Unique Name    : SHCL1REC
Db_Name           : SHCL1
SID                        : SHCL1REC

1] Prepare SHCL1DR for taking RMAN backup

  • 1.a] Create directories to store the RMAN backup
 mkdir /u04/RMAN_BACKUPS
  • 1.b] Configure the RMAN persistant parameters to point to the backup directory and enable controlfile autobackup.
export ORACLE_SID=SHCL1DR2
 rman target /
 CONFIGURE CONTROLFILE AUTOBACKUP ON;
 CONFIGURE CHANNEL 1 DEVICE TYPE DISK FORMAT '/u04/RMAN_BACKUPS/%d_%I_%U' connect 'sys/pasd@SHCL1';
 CONFIGURE CHANNEL 2 DEVICE TYPE DISK FORMAT '/u04/RMAN_BACKUPS/%d_%I_%U' connect 'sys/pasd@SHCL1';
 CONFIGURE CHANNEL 3 DEVICE TYPE DISK FORMAT '/u04/RMAN_BACKUPS/%d_%I_%U' connect 'sys/pasd@SHCL1';
 CONFIGURE CHANNEL 4 DEVICE TYPE DISK FORMAT '/u04/RMAN_BACKUPS/%d_%I_%U' connect 'sys/pasd@SHCL1';
 CONFIGURE CHANNEL 5 DEVICE TYPE DISK FORMAT '/u04/RMAN_BACKUPS/%d_%I_%U' connect 'sys/pasd@SHCL1';
 CONFIGURE CHANNEL 6 DEVICE TYPE DISK FORMAT '/u04/RMAN_BACKUPS/%d_%I_%U' connect 'sys/pasd@SHCL1';

The backupsets will be created under /u04/RMAN_BACKUPS/ and the controlfile would be backed up at the default location.

 RMAN> show all;
 using target database control file instead of recovery catalog
 RMAN configuration parameters are:
 CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 90 DAYS;
 CONFIGURE BACKUP OPTIMIZATION ON;
 CONFIGURE DEFAULT DEVICE TYPE TO DISK;
 CONFIGURE CONTROLFILE AUTOBACKUP ON;
 CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
 CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO COMPRESSED BACKUPSET PARALLELISM 6;
 CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1;
 CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1;
 CONFIGURE CHANNEL 1 DEVICE TYPE DISK FORMAT   '/u04/RMAN_BACKUPS/%d_%I_%U' CONNECT '*';
 CONFIGURE CHANNEL 2 DEVICE TYPE DISK FORMAT   '/u04/RMAN_BACKUPS/%d_%I_%U' CONNECT '*';
 CONFIGURE CHANNEL 3 DEVICE TYPE DISK FORMAT   '/u04/RMAN_BACKUPS/%d_%I_%U' CONNECT '*';
 CONFIGURE CHANNEL 4 DEVICE TYPE DISK FORMAT   '/u04/RMAN_BACKUPS/%d_%I_%U' CONNECT '*';
 CONFIGURE CHANNEL 5 DEVICE TYPE DISK FORMAT   '/u04/RMAN_BACKUPS/%d_%I_%U' CONNECT '*';
 CONFIGURE CHANNEL 6 DEVICE TYPE DISK FORMAT   '/u04/RMAN_BACKUPS/%d_%I_%U' CONNECT '*';
 CONFIGURE MAXSETSIZE TO UNLIMITED;
 CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
 CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
 CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON STANDBY;
 CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/product/10.2.0/db_1/dbs/snapcf_SHCL1DR2.f'; # default
RMAN>
  • 1.c] Take the backup from on of the node
rman target /
 crosscheck archivelog all;
 backup database plus archivelog;

I used the below script to run RMAN in background mode.

 T02[SHCL1DR2]$ cat /export/home/oraprd/bkp.sh
 #!/bin/sh
 rman target / <<EOF
 backup database plus archivelog;
 exit;
 EOF
 exit
 T02[SHCL1DR2]$
 T02[SHCL1DR2]$ nohup /export/home/orapd/bkp.sh > /export/home/orapd/bkp. 2>&1 &    

2] Prepare environmet for SHCL1REC

  • 2.a] Create the directories to hold the controlfile,redo logs,datafiles and archivelogs

(I used the same machine, hence restored to a different location)
mkdir /u02/oracle/shcl1rec/

This directory would hold all files pertaining to this new instance.
(If you are going to use this restored instance for Prod or Dev activities, use separate directories.
All i wanted was to test the backups, hence restoring them to same dir for simplicity)

 mkdir /u01/app/oracle/admin/SHCL1REC/adump        
 mkdir /u01/app/oracle/admin/SHCL1REC/bdump
 mkdir /u01/app/oracle/admin/SHCL1REC/cdump
 mkdir /u01/app/oracle/admin/SHCL1REC/udump
 mkdir /u02/oracle/shcl1rec/archivelogs

  • 2.b] Restore the spfile from the controlfile backup
 export ORACLE_SID=SHCL1REC
 rman target /
 startup nomount
 restore spfile from '/u02/oracle/shcl1/flashbacklog/SHCL1DR/autobackup/2009_07_23/o1_mf_s_692991347_56j874gd_.bkp';

[Make sure that you have enough memory for the SGA as that of the Source DB, else you cannot mount using this
spfile as its a clone of the source spfile. If not enough memory, then copy the initSHCL1DR2.ora to initSHCL1REC.ora]

  • 2.c] Modify the initSHCL1REC.ora file

Change the path for controlfiles,*dumps,archive_logs.
Comment the cluster parameters
Change the db_unique_name,service_names and domain
Change the SGA and PGA
Comment/change those parameters that refer the RAC instances.

  • 2.d] Using this new init.ora file, start the instance in nomount mode.
  • 2.e] Restore the controlfile from the backup

export ORACLE_SID=SHCL1REC
 rman target /    
 restore controlfile from '/u02/oracle/shcl1/flashbacklog/SHCL1DR/autobackup/2009_07_23/o1_mf_s_692991347_56j874gd_.bkp';
 alter database mount;
RMAN> restore controlfile from '/u02/oracle/shcl1/flashbacklog/SHCL1DR/autobackup/2009_07_22/o1_mf_s_692897986_56ff1mk7_.bkp';
Starting restore at 22-JUL-09
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=647 devtype=DISK
channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:04
output filename=/u02/oracle/shcl1rec/control1
output filename=/u02/oracle/shcl1rec/control2
output filename=/u02/oracle/shcl1rec/control3
Finished restore at 22-JUL-09
RMAN>
RMAN> alter database mount;
database mounted
released channel: ORA_DISK_1
RMAN>
 

Confirm that the control files are created under /u02/oracle/shcl1rec/.

  • 2.f] Create the password file for the new instance.

RMAN need to connect to the new instance as sysdba, so create the password file.
For simplicity copy the password file of the source.

 cp $ORACLE_HOME/dbs/orapwSHCL1DR2 $ORACLE_HOME/dbs/orapwSHCL1REC
  • 2.g] Create the tns entry

RMAN would need dedicated connection, so if dispatchers are configured, then make sure you have SERVER=DEDICATED
embedded in the tnsenrty.

SHCL1REC =
 (DESCRIPTION =
 (ADDRESS = (PROTOCOL = TCP)(HOST=10.28.19.6)(PORT= 1521))
 (CONNECT_DATA = (SERVICE_NAME = SHCLREC.s.com) (SERVER = DEDICATED))
)   
  • 2.h] Configure the persistant parameters for the new instance

Configure the rman persistant parameter (to change the connection string)

 CONFIGURE CHANNEL 1 DEVICE TYPE DISK FORMAT '/u04/RMAN_BACKUPS/%d_%I_%U' connect 'sys/pasd@SHCL1REC';
 CONFIGURE CHANNEL 2 DEVICE TYPE DISK FORMAT '/u04/RMAN_BACKUPS/%d_%I_%U' connect 'sys/pasd@SHCL1REC';
 CONFIGURE CHANNEL 3 DEVICE TYPE DISK FORMAT '/u04/RMAN_BACKUPS/%d_%I_%U' connect 'sys/pasd@SHCL1REC';
 CONFIGURE CHANNEL 4 DEVICE TYPE DISK FORMAT '/u04/RMAN_BACKUPS/%d_%I_%U' connect 'sys/pasd@SHCL1REC';
 CONFIGURE CHANNEL 5 DEVICE TYPE DISK FORMAT '/u04/RMAN_BACKUPS/%d_%I_%U' connect 'sys/pasd@SHCL1REC';
 CONFIGURE CHANNEL 6 DEVICE TYPE DISK FORMAT '/u04/RMAN_BACKUPS/%d_%I_%U' connect 'sys/pasd@SHCL1REC';    
  • 2.i] Prepare the RMAN restore script and restore it.

Since we are using a different path for datafiles, we need to specify it using the ‘SET NEWNAME’ and rename the
redo log files.

I used the below pl/sql to generate the script.

sqlplus / as sysdba 
set head off
set feedback off
set pages 1000
set lines 160
set serveroutput on
--The below plsql is for creating script for renaming the datafile
declare
 dfile varchar2(100);
 fileno varchar2(100);
 begin
 for d_path in (select file#,name from v\$datafile)
 loop
 dfile :=SUBSTR(d_path.name, INSTR(d_path.name,'/', 1, 5)+1);
 fileno := d_path.file#;
 dbms_output.put_line('set newname for datafile '||fileno||' to ''/u02/oracle/shcl1rec/'||dfile||''';');
 end loop;
 end;
/
--The below plsql is for creating script for renaming the log files
declare
 rlog varchar2(100);
 begin
 for l_path in (select member from v\$logfile)
 loop
 rlog :=SUBSTR(l_path.member, INSTR(l_path.member,'/', 1, 5)+1);
 dbms_output.put_line('sql "alter database rename file '''''||l_path.member||''''' to ''''/u02/oracle/shcl1rec/'||rlog||''''' ";');
 --dbms_output.put_line(rlog);
 end loop;
 end;
/

Below is the script that i used

T02[SHCL1DR2]$ cat /export/home/oraprd/restore.sh        
#!/bin/ksh
rman target / <<EOF    
set newname for datafile 1 to '/u02/oracle/shcl1rec/system01.dbf';
set newname for datafile 2 to '/u02/oracle/shcl1rec/undo01.dbf';
set newname for datafile 3 to '/u02/oracle/shcl1rec/sysaux01.dbf';
set newname for datafile 4 to '/u02/oracle/shcl1rec/undo02.dbf';
sql "alter database rename file ''/u04/oracle/shcl1/onlinelog/redo1_1.log'' to ''/u02/oracle/shcl1rec/redo1_1.log'' ";
sql "alter database rename file ''/u03/oracle/shcl1/onlinelog/redo1_2.log'' to ''/u02/oracle/shcl1rec/redo1_2.log'' ";
sql "alter database rename file ''/u04/oracle/shcl1/onlinelog/redo2_1.log'' to ''/u02/oracle/shcl1rec/redo2_1.log'' ";
sql "alter database rename file ''/u03/oracle/shcl1/onlinelog/redo2_2.log'' to ''/u02/oracle/shcl1rec/redo2_2.log'' ";
sql "alter database rename file ''/u04/oracle/shcl1/onlinelog/redo3_1.log'' to ''/u02/oracle/shcl1rec/redo3_1.log'' ";
sql "alter database rename file ''/u03/oracle/shcl1/onlinelog/redo3_2.log'' to ''/u02/oracle/shcl1rec/redo3_2.log'' ";
sql "alter database rename file ''/u04/oracle/shcl1/onlinelog/redo4_1.log'' to ''/u02/oracle/shcl1rec/redo4_1.log'' ";
sql "alter database rename file ''/u03/oracle/shcl1/onlinelog/redo4_2.log'' to ''/u02/oracle/shcl1rec/redo4_2.log'' ";
sql "alter database rename file ''/u04/oracle/shcl1/onlinelog/redo5_1.log'' to ''/u02/oracle/shcl1rec/redo5_1.log'' ";
sql "alter database rename file ''/u03/oracle/shcl1/onlinelog/redo5_2.log'' to ''/u02/oracle/shcl1rec/redo5_2.log'' ";
sql "alter database rename file ''/u04/oracle/shcl1/onlinelog/redo6_1.log'' to ''/u02/oracle/shcl1rec/redo6_1.log'' ";
sql "alter database rename file ''/u03/oracle/shcl1/onlinelog/redo6_2.log'' to ''/u02/oracle/shcl1rec/redo6_2.log'' ";
sql "alter database rename file ''/u04/oracle/shcl1/onlinelog/redo7_1.log'' to ''/u02/oracle/shcl1rec/redo7_1.log'' ";
sql "alter database rename file ''/u03/oracle/shcl1/onlinelog/redo7_2.log'' to ''/u02/oracle/shcl1rec/redo7_2.log'' ";
sql "alter database rename file ''/u04/oracle/shcl1/onlinelog/redo8_1.log'' to ''/u02/oracle/shcl1rec/redo8_1.log'' ";
sql "alter database rename file ''/u03/oracle/shcl1/onlinelog/redo8_2.log'' to ''/u02/oracle/shcl1rec/redo8_2.log'' ";
sql "alter database rename file ''/u04/oracle/shcl1/dataguard/standby_redo01.log'' to ''/u02/oracle/shcl1rec/standby_redo01.log'' ";
sql "alter database rename file ''/u04/oracle/shcl1/dataguard/standby_redo02.log'' to ''/u02/oracle/shcl1rec/standby_redo02.log'' ";
sql "alter database rename file ''/u04/oracle/shcl1/dataguard/standby_redo03.log'' to ''/u02/oracle/shcl1rec/standby_redo03.log'' ";
sql "alter database rename file ''/u04/oracle/shcl1/dataguard/standby_redo04.log'' to ''/u02/oracle/shcl1rec/standby_redo04.log'' ";
sql "alter database rename file ''/u04/oracle/shcl1/dataguard/standby_redo05.log'' to ''/u02/oracle/shcl1rec/standby_redo05.log'' ";
sql "alter database rename file ''/u04/oracle/shcl1/dataguard/standby_redo06.log'' to ''/u02/oracle/shcl1rec/standby_redo06.log'' ";
sql "alter database rename file ''/u04/oracle/shcl1/dataguard/standby_redo07.log'' to ''/u02/oracle/shcl1rec/standby_redo07.log'' ";
sql "alter database rename file ''/u04/oracle/shcl1/dataguard/standby_redo08.log'' to ''/u02/oracle/shcl1rec/standby_redo08.log'' ";
sql "alter database rename file ''/u04/oracle/shcl1/dataguard/standby_redo09.log'' to ''/u02/oracle/shcl1rec/standby_redo09.log'' ";
sql "alter database rename file ''/u04/oracle/shcl1/dataguard/standby_redo10.log'' to ''/u02/oracle/shcl1rec/standby_redo10.log'' ";
sql "alter database rename file ''/u04/oracle/shcl1/dataguard/SHCL1_2srl0.f'' to ''/u02/oracle/shcl1rec/SHCL1_2srl0.f'' ";
sql "alter database rename file ''/u04/oracle/shcl1/dataguard/SHCL1_2srl1.f'' to ''/u02/oracle/shcl1rec/SHCL1_2srl1.f'' ";
sql "alter database rename file ''/u04/oracle/shcl1/dataguard/SHCL1_2srl2.f'' to ''/u02/oracle/shcl1rec/SHCL1_2srl2.f'' ";
sql "alter database rename file ''/u04/oracle/shcl1/dataguard/SHCL1_2srl3.f'' to ''/u02/oracle/shcl1rec/SHCL1_2srl3.f'' ";
sql "alter database rename file ''/u04/oracle/shcl1/dataguard/SHCL1_2srl4.f'' to ''/u02/oracle/shcl1rec/SHCL1_2srl4.f'' ";
sql "alter database rename file ''/u04/oracle/shcl1/dataguard/SHCL1_1srl0.f'' to ''/u02/oracle/shcl1rec/SHCL1_1srl0.f'' ";
sql "alter database rename file ''/u04/oracle/shcl1/dataguard/SHCL1_1srl1.f'' to ''/u02/oracle/shcl1rec/SHCL1_1srl1.f'' ";
sql "alter database rename file ''/u04/oracle/shcl1/dataguard/SHCL1_1srl2.f'' to ''/u02/oracle/shcl1rec/SHCL1_1srl2.f'' ";
restore database;switch datafile all;
recover database;
exit;
EOF
exit    
T02[SHCL1DR2]$                
T02[SHCL1DR2]$ nohup /export/home/oraprd/restore.sh > /export/home/oraprd/restore.log 2>&1 &

If you are applying the archive logs to recover to a point in time, you might want to disable ‘Block Change Tracking’ before ‘recover’ if it is enabled.

SQL> ALTER DATABASE DISABLE BLOCK CHANGE TRACKING

  • 2.j] Open the database using RESETLOGS
 rman target /
 alter database open resetlogs;
 Opening the database would create the redologs, but not the standby logs.

  • 2.k] Remove the standby redologs

Since the source db contained standby redo logs, either we should create it or should drop them, else we would
get ORA-00313 errors as the files are not created along with the redologs.

 Errors in file /u01/app/oracle/admin/SHCL1REC/bdump/shcl1rec_arc2_12529.trc:
 ORA-00313:

 *** SERVICE NAME:(SYS$BACKGROUND) 2009-07-24 17:59:53.687
 *** SESSION ID:(631.5) 2009-07-24 17:59:53.687
 *** 2009-07-24 17:59:53.687 2561 kcrf.c
 tkcrf_clear_srl: Started clearing Standby Redo Logs   
 ORA-00312: /u02/oracle/shcl1rec/standby_redo01.log'
 SVR4 Error: 2: No such file or directory
 Additional information: 3                              
 ORA-00312: /u02/oracle/shcl1rec/standby_redo02.log'
 SVR4 Error: 2: No such file or directory
 SQL> select group#,status,type from v$logfile;

 GROUP# STATUS                TYPE
---------- --------------------- ---------------------
 1                       ONLINE
 1                       ONLINE
 2                       ONLINE
 2                       ONLINE
 3                       ONLINE
 3                       ONLINE
 4                       ONLINE
 4                       ONLINE
 5                       ONLINE
 5                       ONLINE
 6                       ONLINE
 6                       ONLINE
 7                       ONLINE
 7                       ONLINE
 8                       ONLINE
 8                       ONLINE
 9                       STANDBY
 10                       STANDBY
 11                       STANDBY
 12                       STANDBY
 13                       STANDBY
 14                       STANDBY
 15                       STANDBY
 16                       STANDBY
 17                       STANDBY
 18                       STANDBY
 19                       STANDBY
 20                       STANDBY
 21                       STANDBY
 22                       STANDBY
 23                       STANDBY
 24                       STANDBY
 25                       STANDBY
 26                       STANDBY

34 rows selected.

 alter database drop standby logfile group 9
 alter database drop standby logfile group 10
 alter database drop standby logfile group 11
 alter database drop standby logfile group 12
 alter database drop standby logfile group 13
 alter database drop standby logfile group 14;
 alter database drop standby logfile group 15;
 alter database drop standby logfile group 16;
 alter database drop standby logfile group 17;
 alter database drop standby logfile group 18;
 alter database drop standby logfile group 19;
 alter database drop standby logfile group 20;
 alter database drop standby logfile group 21;
 alter database drop standby logfile group 22;
 alter database drop standby logfile group 23;
 alter database drop standby logfile group 24;
 alter database drop standby logfile group 25;
 alter database drop standby logfile group 26;

  • 2.l] Disable the redo thread(unused)

Typically, an oracle instance would have only 1 redo thread. An n node RAC would have n redo threads.
Since we restored the backup of a 2 node RAC database to a single instance, whilst startup of the single instnace
Oracle would consider one of the thread as Private to the instance and the other as Public.
A peep into the alert.log says, this instance has mounted redo thread 1.

 :
 Mon Jul 27 13:45:56 2009
 Successful mount of redo thread 1, with mount id 1863696975
 Mon Jul 27 13:45:56 2009
 Database mounted in Exclusive Mode
 Completed: ALTER DATABASE   MOUNT
 :

 SQL> select group#,thread#,sequence#,status from v$log;

 GROUP#    THREAD#  SEQUENCE# STATUS
 ---------- ---------- ---------- ------------------------------------------------
 1          1          5 INACTIVE
 2          1          6 ACTIVE
 3          1          7 CURRENT
 4          1          4 INACTIVE
 5          2          1 INACTIVE
 6          2          2 INACTIVE
 7          2          3 INACTIVE
 8          2          4 CURRENT

 8 rows selected.

Groups 1-4 belong to the Thread 1, which is private to this instance and 5-8 belong to Thread 2, which is public.
Means, this instance would write the commit/rollback changes only to thread 1, but in case of recovery it would use
thread 2 also.

A look into the archivelog destination says,

 -rw-r-----   1 oraprd   oinstall    1024 Jul 27 14:03 SHCL1REC_2_2_693078959.arch
 -rw-r-----   1 oraprd   oinstall 4768768 Jul 27 14:03 SHCL1REC_1_5_693078959.arch
 -rw-r-----   1 oraprd   oinstall    1024 Jul 27  2009 SHCL1REC_2_3_693078959.arch
 -rw-r-----   1 oraprd   oinstall 1798144 Jul 27  2009 SHCL1REC_1_6_693078959.arch

The size of the archive logs created by Thread 2 are much small when compared to those created by Thread 1.
I used the logminer utility to confirm that the Thread 2 does not contain any Undo/Rollback data.

–Mining archvielog from Thread 1

 EXECUTE DBMS_LOGMNR.ADD_LOGFILE( LOGFILENAME => '/u02/oracle/shcl1rec/archivelogs/SHCL1REC_1_6_693078959.arch', OPTIONS => DBMS_LOGMNR.NEW);
 EXECUTE DBMS_LOGMNR.START_LOGMNR( OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG);
 SQL> select count(8) from V$LOGMNR_CONTENTS;
 COUNT(8)
 ----------
 5449
 EXECUTE DBMS_LOGMNR.END_LOGMNR();

–Mining archvielog from Thread 2

 EXECUTE DBMS_LOGMNR.ADD_LOGFILE( LOGFILENAME => '/u02/oracle/shcl1rec/archivelogs/SHCL1REC_2_3_693078959.arch', OPTIONS => DBMS_LOGMNR.NEW);
 EXECUTE DBMS_LOGMNR.START_LOGMNR( OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG);
 SQL>  select count(8) from V$LOGMNR_CONTENTS;
 COUNT(8)
 ----------
 0
 EXECUTE DBMS_LOGMNR.END_LOGMNR();

No data is being written to the thread 2 ( log groups# 5,6,7 and 8 ), so we can disable it using:

 ALTER DATABASE DISABLE THREAD 2;

 SQL>  select group#,thread#,sequence#,status from v$log;

 GROUP#    THREAD#  SEQUENCE# STATUS
 ---------- ---------- ---------- ------------------------------------------------
 1          1          5 INACTIVE
 2          1          6 INACTIVE
 3          1          7 CURRENT
 4          1          4 INACTIVE
 5          2          1 INACTIVE
 6          2          2 INACTIVE
 7          2          3 INACTIVE
 8          2          4 INACTIVE

 8 rows selected.

Since Group# 8 was the CURRENT(of Thread 2) before disabling, archive it.

 SQL> alter system archive log group 8;
 System altered.

Now we can drop the groups that belonged to Thread 2.

 ALTER DATABASE DROP LOGFILE GROUP 5;
 ALTER DATABASE DROP LOGFILE GROUP 6;
 ALTER DATABASE DROP LOGFILE GROUP 7;
 ALTER DATABASE DROP LOGFILE GROUP 8;
SQL>  select group#,thread#,sequence#,status from v$log;
 
 GROUP#    THREAD#  SEQUENCE# STATUS
 ---------- ---------- ---------- ------------------------------------------------
 1          1          5 INACTIVE
 2          1          6 INACTIVE
 3          1          7 CURRENT
 4          1          4 INACTIVE

3 thoughts on “Restore the RMAN backup of a RAC to a Single Instance

    • The “db_unique_name” says it all. It is unique. One scenario where in you would need this is, if you plan to have your standby on the same server as the primary (though its a stupid decision..but when some shop run out of money.. they keep ’em together.), the db_name would be same, but the db_unique_name should be different. A lock file would be created under $ORACLE_HOME/dbs based on the db_unique_name. If the db_unique_name=INSYS and db_name=INSYSDB, then once you start the instance the lock file will be created and it would be lkINSYS.

      Hope this helps

  1. Pingback: Other DBA Related « Center Point for Oracle DBA & Kuwait Info

Leave a reply to ngeth Cancel reply