Here are some of the most important considerations before cloning
or duplicating a database:
Same or Different Host Computer?
Cloning a database to the same host as the source requires
specific steps to change the name of the database, as well as the path names of
all files cloned, while cloning to a different host requires you to consider
which method will be used to migrate files to that host. In general, the
source and destination computing systems must be architecturally identical and
must be running essentially identical operating systems.
Same or Different Database Name?
If the database is duplicated to a different host system, you have
a choice of whether or not to rename the database and whether file names will
be identical to or different from those in the source database.
Note: Same database name
and file structure. Be careful you cannot use same RMAN catalog to take the
backup of duplicate database as the DBID is same as of Primary database DBID.
Hot (Online) Backup or Cold (Offline) Backup Clone?
If it is a requirement that the source database be cloned while it
is up (hot cloning), then it is absolutely essential that the source database
be operating in archivelog mode. If the copy is being made from a hot
backup, all applicable archived logs must be accounted for and must be
available on the destination host system.
Sufficient storage?
Very simply, the clone database requires exactly the identical
quantity of storage as its source. The logical storage contiguity (All the
tablespace storage Capacity of Production database) footprint must be adequate
to accommodate each datafile object to be copied.
SELECT SUM(BYTES)/(1024*1024*1024) "SIZE IN GB" FROM DBA_DATA_FILES;
select t.tablespace, t.totalspace as " Totalspace(MB)", round((t.totalspace-fs.freespace),2) as "Used
Space(MB)", fs.freespaceas "Freespace(MB)", round(((t.totalspace-fs.freespace)/t.totalspace)*100,2) as "% Used",round((fs.freespace/t.totalspace)*100,2) as "% Free" from (select round(sum(d.bytes)/(1024*1024)) as totalspace,d.tablespace_name tablespace from dba_data_files d group by d.tablespace_name) t, (select round(sum(f.bytes)/(1024*1024))as freespace, f.tablespace_name tablespace from dba_free_space f group by f.tablespace_name) fs wheret.tablespace=fs.tablespace order by t.tablespace;
The above query will help to estimate the size of primary database:
Specific point-in-time or simply current time?
If it is a requirement that the database copy be “as of” a
specific point in time, consideration must be given to the availability of a
sufficiently old backup and the availability of all archived logs needed to
perform point-in-time recovery.
Source Media?
DUPLICATION can be undertaken from the database itself (either
while running or while down), or it can be performed from full database backups
stored on disk or tape.
Methods or Technique to be used?
Surveyed below are three different techniques for cloning an
Oracle database. Each of them provides the same end result; each of them
can be customized according to specific installation requirements. We can
Select the method as per minimum interaction of original database and more
reliable or secure.
1.
Conventional OS and SQL commands (manual or scripted)
The best way to learn the mechanics of database duplication is to
perform all of the steps using operating system commands and SQL commands
available to DBAs. Initially, you might want to try this with a non-critical
database on a development system. Scripting your work minimizes
typographical errors and promotes functional repeatability.
Advantages
Best way to learn the mechanics of database duplication ability to
implement customized functions, such as partial cloning and merge cloning
ability to implement your choice of host-to-host copying function into scripts
Disadvantages
Requires ongoing maintenance
Might prove to be less reliable than other methods, especially
when used unattended RMAN dup1licate Command, Split Mirror Cloning
2.
RMAN duplicate Command
The Recovery Manager’s DUPLICATE command provides a convenient,
easy-to-use mechanism for database cloning. It is especially advantageous when
the clone is to be made from a backup as of a specific point-in-time (“as of”
clone). RMAN quietly takes care of many details of cloning, including thorough
error checking and changing the database ID (DBID) so that the cloned database
can be registered and managed using an RMAN repository.
Advantages
• Procedure is documented and supported by Oracle Corporation
• Lowest maintenance solution; quickest to implement
• Extensive error checking
Disadvantages
• No built-in capabilities for movement of data from one host
system to another.
• Requires availability of backup media in order to perform the
clone operation.
Purpose of duplicating Database
To use backups (backup sets or image copies) of the target
database to create either of the following:
· A duplicate database, which is a copy of the target
database (or a subset of the target database) with a unique DBID. Because a
duplicate database has a unique DBID, it is entirely independent of the primary
database and can be registered in the same recovery catalog as the primary
database. Typically, duplicate databases are used for testing.
· A standby database, which is a special copy of the
primary database that is updated by applying archived redo logs from the
primary database. A standby database does not get a new DBID.
To create a standby database with the DUPLICATE command you must specify the FOR STANDBY option. The DUPLICATE ... FOR STANDBY command creates the standby database by restoring a standby
control file, mounting the standby control file, and then restoring and
recovering backups of the target datafiles. The standby database is left
mounted after duplication is complete.Note that backups of the standby database
are interchangeable with backups of the primary database.
When duplicating a database that is currently in NOARCHIVELOG mode, recovery occurs with the NOREDO option. Hence, if incremental backups
exist, RMAN applies only these backups to the restored files during recovery.
For databases in ARCHIVELOGmode, DUPLICATE recovers by default up to the last archived redo log generated at
the time the command was executed, or until a time specified with a SET UNTIL clause.
Restrictions and Usage Notes while duplicating Database
These restrictions apply to all uses of the DUPLICATE command (both for creation of a standby database and creation of a
non standby duplicate database):
· The target SCN for
a DUPLICATE command cannot be before the most recent OPEN RESETLOGS.
DUPLICATE to previous incarnations is not supported.
· Issue one or
more ALLOCATE AUXILIARY CHANNEL commands before executing
the DUPLICATE command, or CONFIGURE automatic auxiliary channels. RMAN uses
the channel configuration from the target for auxiliary channels in the
following circumstances:
o You have not manually
allocated auxiliary channels.
o You have not
configured auxiliary channels.
o The automatic target
channels do not have CONNECT strings.
The DUPLICATE command does not require non-AUXILIARY channels (that is, normal target database channels).
· You must be connected
to both the target database and auxiliary instance. The auxiliary instance must
be started with the NOMOUNT option, and the target database must be
mounted or open. The target database cannot be a standby database.
· If you need to
duplicate a database when some backups of the target database do not exist then
you must specify SKIP TABLESPACE. If you do not
specify SKIP
TABLESPACE, then RMAN attempts to duplicate the following:
o All datafiles in
online tablespaces, whether or not the datafiles are online.
o All tablespaces taken
offline with an option other than NORMAL. For example, RMAN attempts to duplicate tablespaces taken
offline with the IMMEDIATE option. You cannot
duplicate OFFLINE NORMAL tablespaces, although you can add these tablespaces manually after
duplication.
If no valid backups exist of any tablespace or file, then the DUPLICATE command fails.
· You can skip all
tablespaces in the target database except the SYSTEM tablespace, undo
tablespaces, and tablespaces containing rollback segments. RMAN does not check
for completeness. For example, you can duplicate a data tablespace but not the
tablespace containing the index for the data, or duplicate a tablespace that
contains only one partition of a partitioned table.
· If the target and
duplicate databases reside on the same host, set the CONTROL_FILES parameter appropriately so that
the DUPLICATE command does not generate an error because the target
control file is in use.
· If the target and
duplicate databases share the same host, set all *_PATH and
*_DEST initialization parameters appropriately so that the target database
files are not overwritten by the duplicate database files.
· You cannot set
the DB_NAME parameter in the duplicate parameter file to a value
different from the database name specified in the DUPLICATE command.
· You cannot use the
same database name for the target and duplicate databases when the duplicate
database resides in the same Oracle home as the target. Note that if the
duplicate database resides in a different Oracle home from the target, then its
database name just has to differ from other database names in that same Oracle
home.
· If the target and
duplicate databases reside on different hosts, then you must do one
of the following tasks for duplication to be successful:
o Move backups and disk
copies from the target host to the duplicate host to the same location as the
target host so that the path names are identical
o Move backups and disk
copies from the target host to the duplicate host to a new location (so that
the path names are different), and then CATALOG them.
o Make sure that all
backups and copies (disk or sbt) on the target host
are remotely accessible from the duplicate host. Make sure that the archived
redo logs are available in the expected location in the new host.
· Duplication must be
done to the same platform as the source database.
· You cannot recover
the duplicate database to the current point in time, that is, the most recent
SCN. RMAN recovers the duplicate database up to or before the most recent
available archived log: it cannot recover into the online redo logs.
· Specify new filenames
or convert target filenames for the datafiles and online redo logs when the
duplicate filenames must be different from the target filenames (as when
duplicating to the same host as the primary). If you do not specify filenames
for duplicate online redo logs and datafiles, then RMAN reuses the target
datafile names.
· If you want the
duplicate filenames to be the same as the target filenames, and if the
databases are in different hosts, then you must specify NOFILENAMECHECK.
· If duplicating a
database on the same host as the target database, do not specify the NOFILENAMECHECK option. Otherwise, RMAN may signal this
error:
RMAN-10035: exception
raised in RPC: ORA-19504: failed to create file
"/oracle/dbs/tbs_01.f"
ORA-27086: skgfglk:
unable to lock file - already in use
SVR4 Error: 11: Resource
temporarily unavailable
Additional information:
8
RMAN-10031: ORA-19624
occurred during call to
DBMS_BACKUP_RESTORE.RESTOREBACKUPPIECE
1 comment:
Very Nicely explained . . . !!
Post a Comment