Plan A: Renovate old Apps Server Hardware
If our goal is to perform a Test
run of our disaster recovery procedures, or to permanently move a database to a
new host, then we can use the Restore & Recovery Procedure.
If we use Restore & Recovery
procedure, then the DBID for the restored database will be the same as the DBID
for the original database, so after the restore & recovery procedure
is completed, if we connect to the Test database and the recovery catalog DB,
the recovery catalog will be updated with information about the Test DB that
can interfere with RMAN's ability to restore and recover the source database
(due to same DBID)
If our goal is to create a new
copy of our target database for ongoing use on a new host, then use the RMAN
DUPLICATE command instead of Restore & Recovery procedure. The
DUPLICATE command assigns a new DBID to the database it creates and enabling it
to be registered in the same recovery catalog as the original database.
Caution:
If we are performing recovery
only for TEST purpose, then make sure RMAN is NOT connected to the recovery
catalog, otherwise RMAN records information about resorted database in recovery
catalog. Thus you are not able to Restore and recover the original database in
future with this RMAN.
Scenario:
This scenario assumes that we
have two networked Windows 2003 hosts, DBSERVER and DBSERVER1. A target
database named SADHAN is on DBSERVER and is registered in Recovery catalog
RMAN. You want to TEST the Restore & Recovery of SADHAN on
DBSERVER1, while keeping database SADHAN up and running on DBSERVER. Same
version of Oracle Product needs to be installed with which the RMAN Backup was
taken.
Steps:
- Install Oracle software only with all its patched on destination folder.
- Taking RMAN FULL hotbackup including Datafile, Controlfile, Archivelog and Spfile backup.
- Copy the backup on other host on the same location as per the DBserver.
- Create PFILE from current server and Copy the Destination server location.
- Testing and Validating Listener and RMAN Repository Connection.
- Create Oracle Service for windows on destination server.
- Create password file for new server database.
- Start the database on new host with the pfile and Restore the spfile first.
- Restore Controlfile
- Restore and Recover the whole database
- Validate the Restore & Recovery procedure Correctness
Consider you have copied entire required backup and file on
to the destination server and also you have configured the tnsname and listener
configuration of new db and rman successfully.
5. Create oracle service for windows
C:\>oradim -new -sid SADHAN -intpwd sadhan
cmd> oradim -new -sid SADHAN
-intpwd sys -startmode manual
6. Create relevant folder on destination host.
D:\oracle\admin\SADHAN\bdump, cdump, udump, pfile
D:\oracle\oradata\SADHAN
E:\oracle\Archive
7. Create password for new server database.
CMD>ORAPWD FILE=D:\oracle\ora92\database\PWDsadhan.ora
PASSWORD=oracle entries=5
Now Configure the ORACLE_SID ON destination Host and try
to connect RMAN without catalog.
C:\>SET ORACLE_SID = SADHAN
C:\SQLPLUS /NOLOG
SQL> CONNECT / AS SYSDBA
Connected to an idle instance.
8. Set the DBID and start the database instance using PFILE
and restore the spfile.
SQL>STARTUP FORCE NOMOUNT
PFILE='D:\oracle\ora92\dbs\sadhan.sql';
RMAN> CONNECT TARGET / NOCATALOG
RMAN:\>SET DBID 63198018;
RMAN> RESTORE SPFILE FROM AUTOBACKUP;
-or- optional method
RMAN> RESTORE spfile from
"H:\oraback\C-1103102985-20100216-02";
RMAN> restore controlfile from
"H:\ORABACK\C-1103102985-20100216-02";
You must bounce back the database to make sure spfile is
restored.
RMAN> SHUTDOWN IMMEDIATE;
RMAN> STARTUP NOMOUNT;
9. Restore the Controlfile from autobackup and then Mount
the database.
RMAN> RESTORE CONTROLFILE FROM AUTOBACKUP;
RMAN> ALTER DATABASE MOUNT;
10. Restore and Recover the database with the full backup.
You must store the
backup on the same location as on DBSERVER otherwise you have to catalog the
new backup location with CATALOG START WITH 'H:\oraback' command.
RMAN> RESTORE DATABASE;
If archive log is not available (in case of Cold Backup)
change the command as:
RMAN> RECOVER DATABASE NOREDO;
Restore the database in case of hotbackup to perform
media recovery.
RMAN> RECOVER DATABASE;
Note: Do not panic if recovery fail askig for current
redolog files, as you have full backup, no problem just exit RMAN relogin and
open the database with resetlogs option.
RMAN> ALTER DATABASE OPEN;
-OR- ALTER DATABASE OPEN RESETLOGS;
RMAN> sql 'alter database open resetlogs';
Verify the Database:
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination E:\oracle
Oldest online log
sequence 0
Next log sequence to
archive 1
Current log sequence 1
SQL> select name,dbid
from v$database;
NAME DBID
--------- ----------
SADHAN 63198018
Connect Identifier of Database:
Ping this connect identifier before performing actual
restore and recovery process. You can validate it manually and can use Net
Manager for the same. Later we can add the other database information in the
tnsname.ora. This is just for security purpose not to connect any other
database by mistake.
tnsname.ora:
RMAN.AL-SADHAN.COM
=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(PROTOCOL = TCP)(HOST = rmanbackup)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER =
DEDICATED)
(SERVICE_NAME =
RMAN)
)
)
SADHAN.WORLD =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(PROTOCOL =
TCP)
(HOST =
192.168.14.222)
(PORT = 1521)
)
)
(CONNECT_DATA =
(SID = sadhan)
)
)
Listener.ora:
# TNSNAMES.ORA Network Configuration File:
D:\oracle\ora92\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
SADHAN.AL-SADHAN.COM
=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST =
192.168.14.222)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER =
DEDICATED)
(SERVICE_NAME =
SADHAN.WORLD)
)
)
Sqlnet.ora:
# SQLNET.ORA Network Configuration File:
D:\oracle\ora92\network\admin\sqlnet.ora
# Generated by Oracle configuration tools.
NAMES.DEFAULT_DOMAIN = al-sadhan.com
SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)