Call now: 252-767-6166  
Oracle Training Oracle Support Development Oracle Apps

 
 Home
 E-mail Us
 Oracle Articles
New Oracle Articles


 Oracle Training
 Oracle Tips

 Oracle Forum
 Class Catalog


 Remote DBA
 Oracle Tuning
 Emergency 911
 RAC Support
 Apps Support
 Analysis
 Design
 Implementation
 Oracle Support


 SQL Tuning
 Security

 Oracle UNIX
 Oracle Linux
 Monitoring
 Remote s
upport
 Remote plans
 Remote
services
 Application Server

 Applications
 Oracle Forms
 Oracle Portal
 App Upgrades
 SQL Server
 Oracle Concepts
 Software Support

 Remote S
upport  
 Development  

 Implementation


 Consulting Staff
 Consulting Prices
 Help Wanted!

 


 Oracle Posters
 Oracle Books

 Oracle Scripts
 Ion
 Excel-DB  

Don Burleson Blog 


 

 

 


 

 

 

 
 

Oracle patching secrets with $ORACLE_HOME cloning

Oracle Database Tips by Donald Burleson

Use Oracle home Gold copy Cloning to Make Patches/Upgrades Easy, Quicker, Safer, and With Less Downtime

By John Adolph Palinski

This article describes benefits and techniques of using Oracle home gold copies and clones of these homes.  A gold copy Oracle Home is a master Oracle home whose function is to be copied and deployed to other places for use as an Oracle home.  Patching is done on the gold copy rather than in-place production Oracle homes.  Using a gold Oracle home and cloning of the gold home can reduce the amount of time DBA's spend applying quarterly critical patch updates (CPU's) and bug patches.  Most importantly cloning helps the DBA by reducing database downtime, easing the task of scheduling outages, and eliminating the effect of problems that occur when applying patches in-place.

A common DBA task is to patch Oracle homes and databases.  These patches can be one of the many bug fixes or the quarterly CPU.  Regardless of the reason, the following must be done for every database the DBA is responsible for:

 

1.     The DBA must move the patch software to the server and unzip the file.

2.     Make sure the environment is setup properly to run Opatch.

3.     Shutdown the listener and database.

4.     Patch the Oracle home.

5.     Restart the database and listener

6.     Run Catcpu.sql.

7.     Run Utlrp.sql to compile PL/SQL.

Step 4 is often a time consuming and risky task.  There are many possibilities that can cause the Oracle home patch to fail.  Some reasons are: incorrect patch versions, the environment is not set up properly for Opatch, or a failure to stop some processes using the Oracle home.  Step 4 is performed when the database is down and unavailable for the users.  Thus, it is very important to the DBA that this step NOT FAIL.  If any problems occur in this step, the database outage is increased and the DBA's stress and anxiety begin to grow geometrically.  The DBA has to try to identify the problem/solution or decide whether the patch should be rolled back.  This is where gold copy Oracle home cloning becomes the tool of choice since the step is eliminated by cloning. 

Gold copy Oracle home cloning allows the DBA to patch a cloned Oracle home that is NOT USED by a running database.  If problems occur, the running database is not affected.  Only AFTER the cloned gold copy Oracle home is patched is it moved to the proper location and the database brought down and pointed to the new Oracle home.  If any problems occur, the original Oracle home is still available allowing the DBA to retreat and point the database back to the original home and if necessary restore the database from backup.

In addition, Oracle home cloning offers you the possibly of eliminating Steps 1, 2, and 4.  This can be a time saver, reduce outage time, and eliminate scheduling problems.  It is possible to create an Oracle home gold copy on a server in a compressed state and move the gold copy to a target server.  Patching a gold copy and moving this copy to a target server can be a very effective tool.  Let's look at some scenarios.

In the first scenario, four Oracle homes exist on different servers, each containing a single database.  The DBA must perform all of the seven steps listed above.  Four outages need to be planned and the DBA has to take the risk of patching an Oracle home in-place four times.  Scheduling is easy since each Oracle home patch is independent of the others.  If the DBA uses a cloned gold copy and moves the gold copy to each server, time can be saved.  FTPing a compressed gold copy to the target server and uncompressing the gold copy usually takes less time than performing steps 1, 2, 3, and 4 on each home.  More important, once the gold copy is uncompressed, you have a valid Oracle home.  You do not have to patch the Oracle home during the outage.  You don't have to run Opatch since it was done on the gold copy.  All that is necessary is to shut down the database, register the Oracle home with the Oracle inventory, run Catcpu.sql, change the environment to point to the new Oracle home, and start the database and listener.  This will positively result in less risk and shorter outages.  

Scenario 2 is a common Oracle home that supports a number of databases.  This type of installation is often used on data servers that support remote applications.  A single Oracle home is used in order to save disk space since one Oracle home takes far less disk space that multiple Oracle homes.

Having a single Oracle home makes patches/upgrades easier since only a single home must be modified.  The arrangement is prone to scheduling problems.  It is often difficult to gain an outage on a single database let alone four databases.  Cloning makes this type of environment effective by easing scheduling processes.  If the DBA only has to point the database toward the new cloned Oracle home and run Catcpu.sql against the database, each database can be scheduled separately.  Cloning makes this possible.  In addition, the cloning has the benefits discussed earlier.  Figure 3 depicts the pointing of databases to the new cloned Oracle home while an existing Oracle home still supports databases. 

Now that you have seen the benefits and reasons for using cloned gold Oracle homes for patches and upgrades, how do you create an Oracle home gold copy and clone an Oracle home?  Actually it is very easy.  If you have Oracle Enterprise Manager Grid Control there is an option on the Deployments page.  However, this function is disabled unless you purchase one of the add-on packages.  If you don't have OEM Grid Control, take heart, it is very easy to clone an Oracle home from the command line.  The next section describes how this can be done. 

 

Creating, Cloning, and Deploying an Oracle home Gold Copy

 

Note that the steps and commands in this section pertain to Oracle10g homes only.

 

  1. Make the initial Oracle home gold copy.  Download the appropriate Oracle database product, launch the Oracle Universal Installer, and create an Oracle home.  Do not create a database.  This Oracle home is the original gold copy version. It is only used for patching and upgrading.

 

  1. Apply all appropriate patches to initial Oracle home gold copy.

 

To clone or make a new variation of the Oracle home gold copy, perform the following:

 

1.  Create another gold copy Oracle home.

 

a)   Navigate to the gold copy Oracle home parent directory.  In our case we will call this directory /u01/app/oracle/clones.  This directory contains the gold Oracle homes.  The example gold Oracle home is called 10.2.0.2.jan07.

 

      cd /u01/app/oracle/clones

 

b)   Make a CPIO archive of the target gold Oracle home.  Again, the target is a directory called 10.2.0.2.jan07.  Replace this gold Oracle home directory reference with yours.  The below CPIO command makes a CPIO file of the 10.2.0.2.jan07 Oracle home.

      find ./10.2.0.2.jan07 -depth | cpio -voB > ./10.2.0.2.jan07.cpio

c)   Make a directory in the /u01/app/oracle/clones directory to unpack the 10.2.0.2.jan07.cpio file created in step b.

      mkdir /u01/app/oracle/clones/tmp

d)   Unpack the 10.2.0.2.jan07.cpio file into the /u01/app/oracle/clones/tmp directory.  First navigate into the tmp directory and issue a Cpio command.  The commands are:

      cd /tmp   or cd /u01/app/oracle/clones/tmp

      cpio  -invd < ../10.2.0.2.jan07

e)   Step D created a /u01/app/oracle/clones/tmp/10.2.0.2.jan07 directory.  You need to rename the 10.2.0.2.jan07 and move it down a directory.  Use this command:

      mv /u01/app/oracle/clones/tmp/10.2.0.2.jan07 /u01/app/oracle/clones/10.2.0.2.jan07b

f)   Step E creates an unregistered Oracle home locate in /u01/app/oracle/clones/10.2.0.2.jan07b.  This step registers the new home with Oracle inventory.  Run these commands:

 

      export ORACLE_HOME=/u01/app/oracle/clones/10.2.0.2.jan07b

      export PATH=${ORACLE_HOME}:${PATH}

      perl $ORACLE_HOME/clone/bin/prepare_clone.pl

      perl $ORACLE_HOME/clone/bin/clone.pl   \

            ORACLE_HOME=/u01/app/oracle/clones/10.2.0.2.jan07b  \

            ORACLE_HOME_NAME=10_2_0_2_jan07b

 

g)   Run /u01/app/oracle/clones/10.2.0.2.jan07b/root.sh. 

 

You now have a cloned, renamed replica of the original Oracle gold copy home (10.2.0.2.jan07).  If you run Oracle Universal Installer, you will see that the clone is registered.  You can now add patches to this home without affecting the original gold home.  After patching, you may want to create a CPIO archive, compress the archive, and delete the actual Oracle home.  This will save space.  The CPIO?d gold copy can be restored at any point for further cloning and moved to other servers for use.  You might note that all of the work was done remotely and does not affect an operating database.

 

To move a gold copy Oracle home to another location, perform the following: 

1.   Create a compressed CPIO archive of the Oracle home gold copy (Steps A and B above)

2.  FTP the compressed CPIO archive to the new server.  Place the file in the Oracle homes parent directory (i.e. /u01/app/oracle/product). 

3.   Uncompress and unpack the CPIO gold copy version:

      Uncompress 10.2.0.2.jan07b.cpio.Z

             cpio -imvd < 10.2.0.2.jan07b.cpio

 

4.   Register the database with Oracle Inventory.  Perform Step e.   If this is the first Oracle Home on the server, you must install an Oracle home with Universal Installer before trying to register the cloned Oracle home.  This will create the inventory.  You can delete the home after creation and use the clone.

 

5.   At this point, the cloned Oracle home is ready to support a database.  You can install a new database for the Oracle home by running Oracle Database Configuration Agent or point an existing database to the new Oracle home.  The following steps can be used to point an existing database to the new Oracle home.

 

a.  Modify the environment file (inst.ksh) so that the environment will point to the new Oracle home.

 

b.  Modify the listener file (listener.ora) to point to the new Oracle home.

 

c.  Modify the Etc/oratab file

 

d.  Shutdown the database.  Change the environment to the new Oracle home and reload the listener.

 

e.  Move the old database's pfile/spfile to the location used by the new Oracle home.

 

f.  Start the database

 

g.  If this Oracle home is a patched version run Catcpu.sql.

 

h.  Create a new password file

 

i.   Check out the upgraded database.

In this article I discussed the benefits of using a gold copy Oracle home and cloning in place of patching an Oracle home in place.  You will find that this practice reduces the patching complexities, risk, and time.  Using a cloned gold copy will also result in less outage time.  Cloning can be done through Oracle Enterprise Manager Grid Control.  If this tool is unavailable, the article describes a set of simple commands that will enable you to create and deploy cloned Oracle homes.  I believe that employment of the techniques discussed in this article will make you life as a DBA easier.

About the author

John Adolph Palinski is a former adjunct faculty member at the University of Nebraska at Omaha and Iowa Western Community College. He is the author of the "Oracle Database Construction Kit", Que, 1997, the "Oracle SQL and PL/SQL Handbook: A Guide for Data Administrators, Developers, and Business Analysts", Addison Wesley Longman, 2002, and "Oracle 9i Developer: Developing Web Applications With Forms Builder", Course Technology, 2003. He has also written numerous articles for periodicals such as Oracle Internals and Oracle Professional. He provides Oracle training and consulting services. One of his passions is to help customers set up logical business models to improve information efficiency and effectiveness. John also works as an instructor and consultant for Burleson Enterprises.   

 
If you like Oracle tuning, see the book "Oracle Tuning: The Definitive Reference", with 950 pages of tuning tips and scripts. 

You can buy it direct from the publisher for 30%-off and get instant access to the code depot of Oracle tuning scripts.


 

 

��  
 
 
Oracle Training at Sea
 
 
 
 
oracle dba poster
 

 
Follow us on Twitter 
 
Oracle performance tuning software 
 
Oracle Linux poster
 
 
 

 

Burleson is the American Team

Note: This Oracle documentation was created as a support and Oracle training reference for use by our DBA performance tuning consulting professionals.  Feel free to ask questions on our Oracle forum.

Verify experience! Anyone considering using the services of an Oracle support expert should independently investigate their credentials and experience, and not rely on advertisements and self-proclaimed expertise. All legitimate Oracle experts publish their Oracle qualifications.

Errata?  Oracle technology is changing and we strive to update our BC Oracle support information.  If you find an error or have a suggestion for improving our content, we would appreciate your feedback.  Just  e-mail:  

and include the URL for the page.


                    









Burleson Consulting

The Oracle of Database Support

Oracle Performance Tuning

Remote DBA Services


 

Copyright © 1996 -  2020

All rights reserved by Burleson

Oracle ® is the registered trademark of Oracle Corporation.