What are things you do to reduce the patch timing?

on Friday 18 May 2012

What are things you do to reduce the patch timing?
To Reduce the Patch timing in apps , defaults file, nocompilejsp , nocompiledb , merge patch 



 You can take advantage of following :
# Merging patches via admrgpch
# Use various adpatch options like nocompiledb or nocompilejsp
# Use defaults file
# Staged APPL_TOP during upgrades
# Increase batch size (Might result into negative )


Reduce the Patching Downtime in Oracle Applications



Following are the various ways to reduce Oracle Application patching downtime.

1. Consolidate Patches
Using AD Merge Patch to merge multiple patches into a single patch that eliminates the time it takes to start a new AutoPatch session.

2. Apply Patches in Non-interactive Mode
You can automate much of the patching process by applying patches in non-interactive mode. In this mode,we store the responses to the patching prompts in a defaults file, and then specify the name of this default file when we run AutoPatch.

3. Skip Database Tasks
We can use AutoPatch options=nocompiledb, nomaintainmrc to skip tasks such as “Compile APPS schema” and “Maintain MRC” until all patches have been applied successfully. Normally AutoPatch automatically compiles the APPS schema and maintains the MRC schema during the patching application of standard patches.

4. Skip upload of Patch Information
Normally AutoPatch uploads patch history information to the database automatically each time it successfully applies a patch. The time required for the upload may be more depending on the size of the patch. We can skip this task during the AutoPatch session and upload the patch history information later.
We will use options=phtofile during the downtime patching session to skip the information upload. After a successfully patch,we will run AutoPatch again with the argument uploadph=y to upload the patch history information from the patch history files to your database. AutoPatch performs the upload and then it quits.
5. Apply patch on a Test System First
To analyze the effects of applying a patch, we should apply it first to a test system. We will check for long-running jobs and phases, which take the longest time in the timing statistics report ($APPL_TOP/admin//out/adt.lst).

6. Implement Shared Application Tier File System
Implementing a multi-node system with a shared application tier file system saves patching time because we apply patches only once, on the primary node.

7. Use Distributed AD
Distributed AD is a parallel processing feature that reduces downtime by efficiently utilizing all the available server resources on a shared application file system.

8. Reduce Resource Related Issues
We should modify rollback segment sizing and temporary segment space to optimize resources during patch application.

9. Impact analysis
We can perform an impact analysis on a patch, without affecting system, by running AutoPatch with the command line option apply=no.
Some patches include only file system changes. Most of the Applications patches do not include database changes.

10. Use AutoPatch options efficiently
Using certain AutoPatch command line options and managing the number of workers can minimize patch application time. We can use options like norevcache, nogenform, nogenrep etc to reduce patching downtime.

11. Merge NLS (Translation) Patches and Apply Them During Uptime
If we have multiple patches for multiple languages, merge all US patches into a single patch. Then, merge the NLS translation patches for each active language in our system into a single patch for each language. Apply the US patches first during downtime. Then, we can apply the merged NLS translation patches during uptime.
12. ADJREOPTS and ADJRIOPTS Paramter
One other small thing which makes a considerable difference is ADJREOPTS and ADJRIOPTS Environment Variable.
During any Patching there are several Framework XML Files, Jar Files etc... which are loaded into the Database using adjava Command, Even Jar Generation Phase of Copy Driver uses ADJREOPTS and ADJRIOPTS Parameters. By Default these Parameters are set to 256Mb or 512Mb Memory, but if i am not wrong during any Production Upgrade, these Systems have tremendous Horsepower in terms of CPU and Memory
You can increase this Parameter to 1Gig HeapSize Comfortably for better patching performance. This Parameter can be fixed in Autoconfig XML File and Run Autoconfig. The two tags are s_adjreopts and s_adjriopts.




You can use defaults file like

adpatch defaultsfile=$APPL_TOP/admin/$SID/defaults.txt logfile=654321.log patchtop=/patches/654321 driver=u654321.drv interactive=no

so if you don’t want adpatch to compile database & jsp with each execution of adpatch you can use options nocompiledb & nocompilejsp

adpatch defaultsfile=$APPL_TOP/admin/$SID/defaults.txt options=nocompilejsp,nocompiledb logfile=654321.log patchtop=/patches/654321 driver=u654321.drv interactive=no

Once your patching is complete and you have applied all patches you can compile jsp & database once.

How to compile database objetcs ?
Use adadmin compile database option else
Use utlrp.sql script on database tier at $ORACLE_HOME/rdbms/admin

How to compile JSP in Apps ?
Use perl script ojspCompile.pl under $JTF_TOP/admin/scripts like
perl ojspCompile.pl –compile

Merge Patches to reduce patch timing

Another option to reduce patch timing is to use ad tool admrgpch, so lets say you have 10 patches to apply you can merge 10 patches & create single patch and apply that single patch. ( Sometime applying patches after merging may fail because of conflict in driver file so check first on test server)

create a directory lets say source_directory & put all patches which you want to merge in that & create another directory where your final single patch will come lets say destination_directory then use

admrgpch source_directory destination_directory
If there is any error in merging patch by default it will be in directory from where you are initiating admrgpch by name admrgpch.log
Apply patch from target directory via normal adpatch way.

If you are Upgrading your apps instance lets say from 11.5.8 or 11.5.9 to 11.5.10 you can use stagged APPL_TOP (ddifferent from shared APPL_TOP)



0 comments:

Post a Comment