**************************************************************** * Description: Procedure of rman restore and recover a database * Compatiablity: RDBMS 11g, 12c * Date: 11:59 AM EST, 05/02/2017 **************************************************************** <1> Drop current database: | |__ SQL> shutdown immediate; SQL> startup exclusive mount restrict; SQL> drop database; <2> Create Oracle Instance Windows Service [MSWIN Platform Only]: | |__ CMD> ORADIM -new -sid <DB_NAME> -SRVC OracleServiceEmeralit -STARTMODE auto -SRVCSTART system -PFILE C:\oracle\product\11.2.0\dbhome_1\database\initEmeralit.ora CMD> ORADIM -DELETE -sid <DB_NAME> <3> Startup Instance into NOMOUNT Mode: | |__ CMD> set ORACLE_SID=emeralit SQL> startup nomount pfile='C:\oracle\product\11.2.0\dbhome_1\database\initEmeralit.ora'; <4> Restore Control File: | |__ CMD> rman target / RMAN> restore controlfile from 'E:\rman_backup_07212016\CONTROLC-1077298371-20160721-00.CTL'; <5> Mount Database: | |__ RMAN> alter database mount; <6> Catalog Start [RMAN will recognize where the backup is]: | |__ RMAN> catalog start with 'E:\rman_backup_07212016'; -- Manual Method CATALOG BACKUPPIECE '/u01/app/oracle/fast_recovery_area/datastore/emeralit_bkp/INC_0_EMERALIT_DB_0bs075s4_11_1'; CATALOG BACKUPPIECE '/u01/app/oracle/fast_recovery_area/datastore/emeralit_bkp/INC_0_EMERALIT_DB_0cs075s4_12_1'; CATALOG BACKUPPIECE '/u01/app/oracle/fast_recovery_area/datastore/emeralit_bkp/INC_0_EMERALIT_DB_0ds075s5_13_1'; CATALOG BACKUPPIECE '/u01/app/oracle/fast_recovery_area/datastore/emeralit_bkp/INC_0_EMERALIT_DB_0es075s5_14_1'; CATALOG BACKUPPIECE '/u01/app/oracle/fast_recovery_area/datastore/emeralit_bkp/INC_0_EMERALIT_DB_0gs077s5_16_1'; CATALOG BACKUPPIECE '/u01/app/oracle/fast_recovery_area/datastore/emeralit_bkp/INC_0_EMERALIT_DB_0fs077s3_15_1'; <7> Start Restore: | |__ CMD> rman target / @E:\rman_script\restore_emeralit.rman log=E:\rman_script\restore_emeralit_1217_07252016.log run { allocate channel c1 type disk; allocate channel c2 type disk; allocate channel c3 type disk; allocate channel c4 type disk; set newname for tempfile 1 to '+DATA'; #Optional set newname for tempfile 2 to '+DATA'; #Optional set newname for tempfile 3 to '+DATA'; #Optional restore database; switch tempfile all; release channel c1; release channel c2; release channel c3; release channel c4; } <8> Start Recovery: | |__ CMD> rman target / @E:\rman_script\recover_emeralit.rman log=E:\rman_script\recover_emeralit_1517_07252016.log run { allocate channel c1 type disk; allocate channel c2 type disk; allocate channel c3 type disk; allocate channel c4 type disk; set until time = "to_date('2015/11/13 22:30:00','YYYY/MM/DD HH24:MI:SS')"; recover database; release channel c1; release channel c2; release channel c3; release channel c4; } <9> Alter database open: | |__ SQL> alter database open resetlogs; #========================================== ADDENDUM ==========================================# <1> If restore database in different drives/mount point, restore needs "SET NEWNAME": | |__ Restore Script: run { #=== Allocating Channel === allocate channel c1 type disk; #=== Restore Data File Target Location === set newname for datafile 1 to 'E:\ORADATA\EMERALIT\SYSTEM01.DBF'; set newname for datafile 2 to 'E:\ORADATA\EMERALIT\SYSAUX01.DBF'; set newname for datafile 3 to 'E:\ORADATA\EMERALIT\UNDOTBS01.DBF'; set newname for datafile 4 to 'E:\ORADATA\EMERALIT\USERS01.DBF'; set newname for datafile 5 to 'E:\ORADATA\EMERALIT\CCS_INDEX01.DBF'; set newname for datafile 6 to 'E:\ORADATA\EMERALIT\CCS_INDEX02.DBF'; set newname for datafile 7 to 'E:\ORADATA\EMERALIT\CCS_DATA01.DBF'; set newname for datafile 8 to 'E:\ORADATA\EMERALIT\LAPPS_DATA01.DBF'; set newname for datafile 9 to 'E:\ORADATA\EMERALIT\FORTIS01.DBF'; set newname for datafile 10 to 'E:\ORADATA\EMERALIT\AGED_DATA01.DBF'; set newname for datafile 11 to 'E:\ORADATA\EMERALIT\QUANTUM01.DBF'; set newname for datafile 12 to 'E:\ORADATA\EMERALIT\CCS_OPAR_DATA01.DBF'; set newname for datafile 13 to 'E:\ORADATA\EMERALIT\CCS_AGED_DATA01.DBF'; set newname for datafile 14 to 'E:\ORADATA\EMERALIT\CCS_AR_DATA01.DBF'; set newname for datafile 15 to 'E:\ORADATA\EMERALIT\LAPPS_INDEX01.DBF'; set newname for datafile 16 to 'E:\ORADATA\EMERALIT\CCS_INVOICING_DATA01.DBF'; set newname for datafile 17 to 'E:\ORADATA\EMERALIT\CCS_COLLECT_DATA01.DBF'; set newname for datafile 18 to 'E:\ORADATA\EMERALIT\LAPPS_LOB_DATA01.DBF'; set newname for datafile 19 to 'E:\ORADATA\EMERALIT\CANON01.DBF'; set newname for datafile 20 to 'E:\ORADATA\EMERALIT\REPLICATED_DATA01.DBF'; set newname for datafile 21 to 'E:\ORADATA\EMERALIT\LAPPS_APP_DATA01.DBF'; set newname for datafile 22 to 'E:\ORADATA\EMERALIT\CCS_LEASES_DATA01.DBF'; set newname for datafile 23 to 'E:\ORADATA\EMERALIT\CCS_DATA02.DBF'; set newname for datafile 24 to 'E:\ORADATA\EMERALIT\CCS_AGED_DATA02.DBF'; #=== Restore Temp File Target Location === set newname for tempfile 1 to 'E:\ORADATA\EMERALIT\TEMP01.DBF'; set newname for tempfile 2 to 'E:\ORADATA\EMERALIT\LAPPS_TEMP01.DBF'; set newname for tempfile 3 to 'E:\ORADATA\EMERALIT\CCS_TEMP01.DBF'; #=== Restoring Database === restore database; #=== Register New Name in Database === switch datafile all; switch tempfile all; #=== Release channel === release channel c1; } <2> If redo log location is different, the log needs to be created physically and renamed BEFORE altering database open: | |__ SQL> ALTER DATABASE RENAME FILE 'D:\DATABASE\ORADATA\EMERALIT\REDO03.LOG' to 'E:\ORADATA\EMERALIT\REDO03.LOG'; SQL> ALTER DATABASE RENAME FILE 'D:\DATABASE\ORADATA\EMERALIT\REDO02.LOG' to 'E:\ORADATA\EMERALIT\REDO02.LOG'; SQL> ALTER DATABASE RENAME FILE 'D:\DATABASE\ORADATA\EMERALIT\REDO01.LOG' to 'E:\ORADATA\EMERALIT\REDO01.LOG';
Your Comments