Database and Binary Cloning


Most organizations need at least two identical databases for testing and production deployments. Cloning refers to creating an identical copy of a database. After you have successfully installed a database, it can be cloned to create an identical database for testing or training purposes.

A database can be cloned or re-created from another database by several methods, the most notable ones being hot or cold backups, copying the datafiles, and export/import processes. When you clone a database, do not keep it in mounted stage during the copy process because it will cause database corruption. Recovery Manager (RMAN) can be used as well for making a duplicate copy of the database. For more details on using RMAN for cloning a database, refer to Oracle Database Backup and Recovery Advanced User's Guide.

Can Database Block Size Be Different in a Clone?

One of the important points to be remembered in any database cloning effort is to have an identical db_block_size value in the cloned database as in the original database. If you use a different block size than that of the database being cloned, you will get ORA-600 errors. Remember to specifically set this value, or the database will assume the default block size of 2,048 bytes and the database copy will fail.


The following are the common steps for cloning any database, regardless of its data content and platform:

1.

Perform a full backup of the database.

2.

Back up the control file to trace. The trace file will be created in user_dump_dest:

 SQL> alter database backup controlfile to trace resetlogs; SQL> select name, value from v$parameter where name='user_dump_dest'; 

3.

Find the latest trace file (with the extension.trc) and rename it clone_db.sql.

4.

Get a list of all data files and redo log files to be copied over to the new database:

 SQL> select name from v$datafile; SQL> select member from v$logfile; 

5.

Perform a clean shutdown of the database.

6.

Create directories on the target server to hold the cloned database file. Copy all data and redo log files from step 4 to the newly created directories.

7.

If you are planning to use the init.ora parameter file for the cloned database, make a copy of the host's file and rename it to init<clone>.ora file. Edit the init<clone>.ora file to have new values (paths) for the target database. This step will include paths for control_files, user_dump_dest, background_dump_dest, and so on.

8.

Make a copy of the trace file (clone_db.sql) on the target machine. This file has the commands for creating the control file for the original database.

9.

Delete the header information and the comments in the copied file on the target machine.

10.

Modify the startup command statement to include the new initclone.ora parameter file:

 SQL> startup nomount pfile= <new location/initclone.ora> 

11.

Modify the control file command statement as follows:

 SQL> create controlfile set database "clone_db" resetlogs noarchivelog; 

12.

Modify the data and redo filenames to point to the names of the appropriate files on the new server.

13.

Remove the lines containing the RECOVER DATABASE command and its associated comments.

14.

Set the Oracle environments (ORACLE_HOME and ORACLE_SID) to the new database.

15.

Edit tnsnames.ora and listener.ora to include the new database instance information.

16.

Stop and restart the listener.

17.

In UNIX systems, add an entry for the cloned database in the oratab file.

18.

Run the script on the target database server. Mount and open the database.

19.

Change the global name of the new cloned database as follows:

 SQL> alter database rename global_name to <clone_db_name>; 

Can Databases Be Cloned Independent of Platforms?

Nowadays Linux servers are very affordable; hence, some organizations may want to keep their training environments in Linux or Windows platforms instead of the costly production environments on UNIX platforms. For cloning databases independent of platforms, export/import of the source database to its lower-end clone is the best option. Before you take the export of the source database, remember to perform a Shutdown Immediate operation followed by Startup Restrict command to keep all user activities out of the database. The actual modus operandi of the export/import process will be explained later in this section.




    Oracle Database 10g Insider Solutions
    SUSE LINUX Enterprise Server 9 Administrators Handbook
    ISBN: 672327910
    EAN: 2147483647
    Year: 2006
    Pages: 214

    flylib.com © 2008-2017.
    If you may any questions please contact us: flylib@qtcs.net