Cloning an Oracle Home


Cloning an Oracle home involves creating a copy of the Oracle home and then configuring it for a new environment. If you are performing multiple Oracle Database installations, then you may want to use this method to create each Oracle home, because copying files from an existing Oracle Database installation takes less time than creating a new version of them. This method is also useful if the Oracle home that you are cloning has had patches applied to it. When you clone the Oracle home, the new Oracle home has the patch updates.

When you clone Oracle homes using release 11.2 Database Control, you must update the exclude file list. This file list specifies files that need not be included when the source Oracle home is archived because these files are not required for the cloning operation. Do not include the following files in the archive:

sqlnet.ora
tnsnames.ora
listener.ora
oratab

Note:
In addition to cloning an Oracle home, you can clone individual Oracle Database installations by using Oracle Enterprise Manager Database Control. Oracle Database Administrator’s Guide provides detailed information about cloning Oracle Database installations and Oracle homes.
This appendix includes information about the following topics:

Cloning an Oracle Home
Configuring Oracle Configuration Manager in a Cloned Oracle Home
B.1 Cloning an Oracle Home

Perform the following to clone an Oracle home:

Verify that the installation of Oracle Database to clone is successful.

You can do this by reviewing the installActionsdate_time.log file for the installation session, which is typically located in the /orainventory_location/logs directory.

If you install patches, then check their status using the following:

$ cd $ORACLE_HOME/OPatch
Include $ORACLE_HOME/OPatch in $PATH

$ opatch lsinventory
Stop all processes related to the Oracle home. See Chapter 7, “Removing Oracle Database Software” for more information about stopping the processes for an Oracle home.

Create a ZIP file with the Oracle home (but not the Oracle base) directory.

For example, if the source Oracle installation is in the /u01/app/oracle/product/11.2.0/dbhome_1, then you zip the dbhome_1 directory by using the following command:

# zip -r dbhome_1.zip /u01/app/oracle/product/11.2.0/dbhome_1
Do not include the admin, fast_recovery_area, and oradata directories that are under the Oracle base directory. These directories are created in the target installation later, when you create a new database there.

Copy the ZIP file to the root directory of the target computer.

Extract the ZIP file contents by using the following command:

# unzip -d / dbhome_1.zip
Repeat steps 4 and 5 for each computer where you want to clone the Oracle home, unless the Oracle home is on a shared storage device.

On the target computer, change the directory to the unzipped Oracle home directory, and remove all the .ora (*.ora) files present in the unzipped $ORACLE_HOME/network/admin directory.

From the $ORACLE_HOME/clone/bin directory, run the clone.pl file for the unzipped Oracle home. Use the following syntax:

$ORACLE_HOME/perl/bin/perl clone.pl ORACLE_BASE=”target_oracle_base” ORACLE_HOME=”target_oracle_home”
OSDBA_GROUP=OSDBA_privileged_group OSOPER_GROUP=OSOPER_privileged_group -defaultHomeName
For example:

$ORACLE_HOME/perl/bin/perl clone.pl ORACLE_BASE=”/u01/app/oracle/” ORACLE_HOME=”/u01/app/oracle/product/11.2.0/dbhome_1″
OSDBA_GROUP=dba OSOPER_GROUP=oper -defaultHomeName
Oracle Universal Installer starts, and then records the cloning actions in the cloneActionstimestamp.log file. This log file is typically located in /orainventory_location/logs directory.

To configure the connection information for the new database, run Net Configuration Assistant:

$ cd $ORACLE_HOME/bin
$ ./netca
To create a new database for the newly cloned Oracle home, run Database Configuration Assistant:

$ cd $ORACLE_HOME/bin
$ ./dbca
See Also:
Oracle Universal Installer and OPatch User’s Guide for Windows and UNIX for detailed information about using Oracle Universal Installer to clone an Oracle Database home

Oracle Database Administrator’s Guide for information about cloning Oracle databases and cloning an Oracle Database home

B.2 Configuring Oracle Configuration Manager in a Cloned Oracle Home

Perform the following to configure Oracle Configuration Manager for a cloned Oracle home:

Run the following command from $ORACLE_HOME/ccr/state:
$ rm -rf *.ll*
Run the following command from $ORACLE_HOME/ccr/inventory:
$ cp core.jar pending
Run the following commands from $ORACLE_HOME/ccr/bin:
$ ./emSnapshotEnv
$ ./deployPackages
Run the following command from $ORACLE_HOME/ccr/bin and provide the proper credentials:
$ ./configCCR
If Oracle Configuration Manager was manually configured using setupCCR, then perform the following in the cloned Oracle home:

Delete all the subdirectories of the $ORACLE_HOME/ccr/hosts directory to remove previously configured hosts.

Run the following command from $ORACLE_HOME/ccr/bin:

$ ./configCCR -a
If you installed Oracle Configuration Manager in the original Oracle home but have not configured it, then run the following command in the cloned Oracle home:

$ setupCCR

下面给个范例:

[oracle@rac03 bin]$ /data/oracle/product/11203/db1/perl/bin/perl clone.pl ORACLE_BASE=”/data/oracle” ORACLE_HOME=”/data/oracle/product/11203/db1″ OSDBA_GROUP=dba -defaultHomeName
./runInstaller -clone -waitForCompletion “ORACLE_BASE=/data/oracle” “ORACLE_HOME=/data/oracle/product/11203/db1” “oracle_install_OSDBA=dba” -defaultHomeName -defaultHomeName -silent -noConfig -nowait
Starting Oracle Universal Installer…

Checking swap space: must be greater than 500 MB. Actual 129576 MB Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2012-02-14_02-44-44PM. Please wait …Oracle Universal Installer, Version 11.2.0.3.0 Production
Copyright (C) 1999, 2011, Oracle. All rights reserved.

You can find the log of this install session at:
/home/oracle/oraInventory/logs/cloneActions2012-02-14_02-44-44PM.log
………………………………………………………………………………………. 100% Done.

Installation in progress (Tuesday, February 14, 2012 2:44:54 PM CST)
……………………………………………………………………. 79% Done.
Install successful

Linking in progress (Tuesday, February 14, 2012 2:45:00 PM CST)
Link successful

Setup in progress (Tuesday, February 14, 2012 2:45:51 PM CST)
Setup successful

End of install phases.(Tuesday, February 14, 2012 2:46:14 PM CST)
WARNING:A new inventory has been created in this session. However, it has not yet been registered as the central inventory of this system.
To register the new inventory please run the script ‘/home/oracle/oraInventory/orainstRoot.sh’ with root privileges.
If you do not register the inventory, you may not be able to update or patch the products you installed.
The following configuration scripts need to be executed as the “root” user.
/home/oracle/oraInventory/orainstRoot.sh
/data/oracle/product/11203/db1/root.sh
To execute the configuration scripts:
1. Open a terminal window
2. Log in as “root”
3. Run the scripts

The cloning of OraHome1 was successful.
Please check ‘/home/oracle/oraInventory/logs/cloneActions2012-02-14_02-44-44PM.log’ for more details.

可见oracle clone 自动进行了relink 和 oraInventory 创建,完全可以代替relink 进行数据库soft的迁移工作。