Monday, July 7, 2008

Patches

Types of Patches:
===============

Standalone/Oneoff patches :

This is used to define patch created to fix single/particular problem.

Mini Pack :

This is group of oneoff patches for a particular product like INV, GL, AP and named like 11i.GL.E ( means this group of patches contain fix for 11i GL product (General Ledger till time E is released ) This is cummutative which means it will include 11i.GL.A, 11i.GL.B ….11iGL.D till 11i.GL.E earlier in 10.7 it used to called as patchset.

Family Pack :

Group of mini packs in one family buldeled together is called as family pack. they are usually named as 11i_PF. Few example of falilies are SCM ( 11i.SCM_PF.G ), ATG ( 11i.ATG_PF.H ) _PF indicate Product Family Pack

Maintenance Pack :

Group of family pack together is called as maintenance pack. So if you say your Verison is 11.5.10 then its maintenance pack 10 ( 3rd digit is maintenance pack )

Special Patches
=======================

Consolidated patch:

This is a collection of one-off fixes for a Family Pack or Maintenance Pack; Oracle Applications 11.5.10 Consolidated Update 2 (CU2) is an example of a consolidated patch.

Interoperability patch:

This is a patch that is required for Oracle Applications to function with a newer version of a technology stack component; for example, you would apply an interoperability patch when upgrading the database to version 10g.

NLS patch:

This is a patch that updates language-specific information for multi-language installations.

Rollup patch:

This is a collection of one-off patches that update code levels for particular products.

Legislative patch:

This is a special patch for HR Payroll customers; it contains legislative data for multiple countries.



Drivers – c,d,g & u
============================

1. cXXXXXXX.drv - c stands for copy driver file , used to update the file system with new file versions

2. dXXXXXXX.drv - d stand for Database driver & used to update database level code and objects

3. gXXXXXXX.drv – g stands for generate driver and is used to generate forms, PL/SQL libraries, reports, and menus

4. uXXXXXXX.drv – merged or unified driver which combines the c,d and/or g drivers

Patch Reporting Tools :
=============================

1. Using the adphrept.sql script
2. Executing the patchsets.sh utility
3. Querying the database
4. Using Oracle Application Manager (OAM)



1. Using adphrept.sql
=========================

Location :
========

$AD_TOP/patch/115/sql/adphrept.sql

Generates a XML report [adfilerep.xml]

Execute as

$sqlplus apps/apps_password 1 ALL ALL ALL ALL ALL ALL ALL ALL ALL N N N N N

Copy the xml file to OA_HTML to view in browser

Note : adphrept.sql options
============================

Query_depth 1—Lists details of patches only
2—Lists details of patches and their bug fixes only
3—Lists details of patches, their bug fixes, and bug actions
Bug_number Lists details for one bug number or ALL
Bug_product Lists details for one product or ALL
End_date_from Lists start date for a date range or ALL
End_date_to Lists end date for a date range or ALL
Patchname Lists details for a patch name or ALL
Patchtype Lists details for a patch type or ALL
Level Lists details for a patch level or ALL
Language Lists details for a language or ALL
Appltop Lists details for a specific APPL_TOP or ALL
Limit to forms server Limits the list’s scope (Y/N)
Limit to web server Limits the list’s scope (Y/N)
Limit to node server Limits the list’s scope (Y/N)
Limit to admin server Limits the list’s scope (Y/N)
Only patches that change db Limits the list’s scope (Y/N)

2. Using patchsets.sh
==========================

Note:139684.1
ftp://ftp.oracle.com/support/outgoing/PATCHSET_COMPARE_TOOL/patchsets.sh
$patchsets.sh connect=apps/apps_password

patchsets.sh –h à give options

Sample Output :




3.Querying the Database for Patches
==========================================

SELECT bug_number
FROM ad_bugs
WHERE bug_number IN ('patch_number', 'patch_number', . . .)
ORDER BY bug_number DESC;

Adpatch - option:
==========================

options=noautoconfig

If you are applying number of patches out of which 4-5 patches run autoconfig then use this option & run autoconfig in last patch or manually (This will save your patching timing , first patch performance tip )

compiledb(def) or nocompiledb

Use no compiledb if you have multiple patch then compile database objects in last patch

compilejsp(def) or nocompilejsp

Use no compilejsp if you have multiple patch then compile jsp in last patch

copyportion

Tells adpatch whether to run commands normally found in a copy driver.

databaseporion

Tells adpatch whether to run commands normally found in a database driver.

generateportion

Tells adpatch whether to run commands normally found in a generate driver

hotpatch

Tells AutoPatch to apply a patch regardless of whether the Oracle Applications system is in maintenance mode.


integrity

Tells adpatch whether to perform patch integrity checking, which verifies that the version of each file referenced in a copy action matches the version present in the patch (There are overheads with this)

maintainmrc

Tells adpatch whether to automatically maintain the MRC schema after running actions normally found in the database driver. The MRC schema is only maintained if the MRC feature is enabled

prereq

Tells adpatch whether to perform prerequisite patch checking prior to running patch driver files that contain actions normally found in the copy driver. (With lateset AD patch , default behaviour is changed from prereq to noprereq)

forcecopy

The forcecopy command copies the files in a patch to the Applications file system without comparing the version number of the patch files with existing files


About Maintenance Mode:
=======================

As of ADI – Maintenance Mode must be enabled.

To Enable :
========

adadmin

$AD_TOP/patch/115/sql/adsetmmd.sql ENABLE

To Disable:
========

adadmin

$AD_TOP/patch/115/sql/adsetmmd.sql DISABLE

Note :

We can also go to adadmin and follow the option to enable and disable Maintanance Mode.

adpatch - options

Option Purpose

novalidate Prevents adpatch from validating all schema connections
noprereq Prevents adpatch from checking the existence of prerequisite patches
nocompiledb Prevents adpatch from compiling database objects
nocompilejsp Prevents adpatch from compiling JSP objects
noautoconfig Prevents adpatch from running autoconfig after the patch has completed
nogenerateportion Prevents adpatch from compiling forms, menus, and plls
hidepw Prevents passwords from being displayed in log files
hotpatch Allows adpatch to be run when the instance is not in maintenance mode

Eg: adpatch options=nocompiledb,novalidate


AD Merge :

This utility is to merge the patch inorder to reduce the timings

Applying a group of similar patches

Similar patches unbundled in same folder
./admrgpch /source_dir /target_dir

Generates
u_merged.drv
admrgpch.log

Note 228779.1, “How to Merge Patches Using admrgpch.”


AD Control :
==========

This Utility is used when we are running the patch, we can see all the details about the patch . ie) All about workers etc.,
This will work till the both tables drop.

That is FND_INSTALL_PROCESSES and
AD_DEFFERED_JOBS

These are the two tables created while the patch starts and it will be dropped when the patch is applied or completed.
Note : Adctrl options about workers will works till the above two tables is in use .

Command Used : adctrl



Note : While the patch is running and if it fails in the middle and if we want to ignore it there is also a 8th option but is will not be listed above. The 8th option is

8. Enter the worker number(s)/range(s) (or) all for all workers.

These is to kill that particular worker. (to ignore)


DB Patches:
==========
Eg: patch 2617419

$export PATH=$PATH:/[path_of_2617419]/Opatch
$export PERL5LIB=[path_of_PERL]/lib
$opatch lsinventory
$opatch apply

Note :

If the opatch fails :

There may be a patch_locked file located under the hidden directory $ORACLE_HOME/.patch_storage.

The opatch utility may not be executed until the patch_locked file is removed.

1 comment:

Unknown said...

I think that you may be interested in another application that quickly eliminates data corruption issues in database files, please take a look at best mssql recovery tool and let me know what do you think