1

I have to migrate one database.

I have exact server replica. (Same directory structure on target as well as source database)

Previously I have performed DB migration using export/import datapump (As we don't have access to any tools). I want to ask : Whether I can create replica using Cold backup method ?

DB Details : Oracle 10.2.0.3 (On Both Source & target)

DB is currently running in no archive mode.

Steps I am going to follow :

  1. create pfile from spfile
  2. shutdown normal on source db
  3. Copy pfile to target server $ORACLE_HOME/dbs
  4. Copy all the dbf , ctl , rdo files to target server (Using binary mode FTP) (select name from v$datafile; select member from v$logfile; select name from v$controlfile)
  5. startup pfile='<path>' on target server

Doubts :

Can cold backup can be used to create replica/ DB migration ?

If I tried above process , shall I am able to start the db on target server without any errors ?

As I don't have any archive logs , will that create any problem here ?

EDIT

This has been done perfectly fine with no oracle errors.

Few points :

  • Even you can change the directory of the dbf file while using this method. All u need to do is :

startup mount pfile='pfilepath'

alter database rename file '/flowsystem/oracle/SYSTEM01.DBF' to '/flowsystem/oracle/oradata/SYSTEM01.DBF';

shutdown

startup

  • If you have done changes in directory structure of controlfile , log file then edit the pfile before startup & then startup using pfile (Not Tried)

Information Source : http://www.adp-gmbh.ch/ora/admin/backup_recovery/cold_backup.html

  • Just try doing this. – Raj Nov 25 '15 at 15:18
1

Should work when the directory structure is the same. Check you $ORACLE_HOME/dbs directory to see if you have other SID related files. If your database does not need recovery then no archivelogs are needed. Do not forget to change at least the DBID if you need to integrate the database in the RMAN backup process.

If you use RMAN for backups then you can also clone your database to another server. This way you can place the files in a different location and the DBID (and DBNAME) will be changed during the cloning.

1

YES, your plan can work since your structure is an exact copy. No recovery needed nor possible since your DB is currently running in no archive mode. Don't forget the listener.ora, tnsnames.ora, sqlnet.ora and orapw{$ORACLE_SID} files.

Also check your dba_directories view for any references to your local server filesystem from within the database.

If this really is a migration, remove the source database when all is up and running. If it is intended as a copy, change the DBID to prevent an accidental mixup of databases in backup/recovery operations.

If this is a prod database, change to ARCHIVELOG mode and use RMAN for regular backups.

1

While your proposed solution might work, I would look into the RMAN duplicate database command here: http://docs.oracle.com/cd/B19306_01/backup.102/b14191/rcmdupdb.htm#BRADV010

Using this method, you let RMAN take care of the details. However, since the source DB is running in NOARCHIVELOG mode, downtime will still be needed on the source DB.

A simple example (from your newdb):

modify TNS to point to both newdb and olddb, then:

c:\> rman target sys/<pass>@olddb auxiliary sys/<pass>@newdb
rman> DUPLICATE TARGET DATABASE TO newdb;
  • DB is currently running in no archive mode. So no zero downtime. – ik_zelf Nov 27 '15 at 12:16
  • @ik_zelf Ah, you're right... since duplicate essentially takes an RMAN backup, inconsistent (i.e. on-line) backups are not possible while running in NOARCHIVELOG mode, so a cold backup is the only way. Fixed my answer, and thank you for the correction. – Kris Johnston Nov 27 '15 at 17:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.