ADOP online Patching utility in R12.2.4

Online patching is the most important new feature in Oracle EBS 12.2. It is the ability to patch a running system without having to take the system down for a significant period of time while the patches are applied. Even you can apply Maintenance Pack 12.2.2 or 12.2.3 or 12.2.4 once you install or upgrade to R12.2.0 base.
  • It will enable R12.2 PATCH Environment.
  • Dependancy on opatches. All Opatches must be applied before enabling ADOP.
  • Missing Opatches will be reported by EBS DB CodeLevel Checker script.
  • All AD_ZD packages should be valid before enabling them.
  • To implement Online Patching Run reports/scripts mentioned in Using the Online Patching Readiness Report in Oracle E-Business Suite Release 12.2 [1531121.1]
  • Once you enable ADOP i.e. Online Patching you cannot apply any patches through ADPATCH.
  • If you still want to apply any patch via adpatch, source ENABLE_ADPATCH=yes. (if oracle recommends)
  • All patches applied using adop utility will be applied to PATCH environment i.e. fs2.
  • When you want to make the patches live you can execute adop using cutover phase. It will switch filesystems.
  • To synchronize both filesystems i.e. fs1 and fs2 you can execute adop using fs_clone phase.
‘adop’ is the utility you use to apply patches in R12.2
Important parameters and commands related to ADOP are documents below.
ADOP PATCHING PARAMETERS DETAILS:
PARAMETER    DEFAULT VALUE   POSSIBLE-VALUES      DESCRIPTION
phase                                    N/A    PHASE=PREPARE          These are the eight phases in which adop can run. It is most important and mandatory parameter that is used with adop.
You can also club multiple phases in single command like ‘PHASE=PREPARE,APPLY’ although abort and fs_clone need to be run alone and can’t be clubbed.Standard phases:
                                                           prepare – Prepare the instance for patch application.
                   PHASE=APPLY            apply – Apply patches (to the patch edition).
                   PHASE=CUTOVER          cutover – Make the patch edition the new run edition.
                   PHASE=CLEANUP          cleanup – Drop obsolete objects and data from old editions. It is run automatically.
                   PHASE=FINALIZE         finalize – Ready the instance for cutover. It is run automatically.
                   PHASE=ACTUALIZE_ALL    actualize_all – Create new copies of all code objects in the patch edition.
                   PHASE=FS_CLONE         fs_clone – Copy the run file system to the patch file system.
                   PHASE=ABORT           abort – Abort the current patching cycle. The abort phase can be run after either the prepare or apply phases have been run, but not after the cutover phase.

                 
 loglevelLOGLEVEL=EVENTLOGLEVEL=STATEMENT
LOGLEVEL=PROCEDURE
LOGLEVEL=EVENT
LOGLEVEL=WARNING
LOGLEVEL=ERROR
LOGLEVEL=UNEXPECTED
 STATEMENT > for debugging.
PROCEDURE > for debugging high level procedures.
EVENT > to capture informational messages in normal processing. (default)
WARNING > to capture any internal error that is handled by the system and does not affect processing.
ERROR > indicates action failed, need to be reviewed, but the system continue processing.
UNEXPECTED > indicates an unrecoverable error, requires user intervention before processing can continue.
 cleanup_modeCLEANUP_MODE=STANDARDCLEANUP_MODE=FULL
CLEANUP_MODE=STANDARD
CLEANUP_MODE=QUICK
Cleanup processing needs to happen after adop finishes the patching work.Quick mode > shortest execution time, skips non-essential actions
Standard mode > All quick mode action + drops covered objects
Full mode > All quick mode action +  remove all unused code, data, and old editions and takes much longer
 finalize_modeFINALIZE_MODE=QUICKFINALIZE_MODE=QUICK
FINALIZE_MODE=FULL
Quick mode > shortest execution, skips non-essential actions, no gather statistics.
Full mode > Gather statistics, may improve performance after cutover, can take an hour extra to complete.
 input_file N/AINPUT_FILE=<Absolute input_file path> To specify the name of the input_file supplied to adop. (see details on input_file later in this post)
 workers N/A (depends on number of available CPU cores)WORKERS=<User-specified-value>Number of parallel workers used to execute tasks.In earlier released  adpatch used to prompt for number of workers. With adop in R12.2, if you want  to override the default formula that oracle uses now to calculation number of workers, use the WORKERS parameter. Take care that you don’t specify very high number of workers or else adop will fail.
 maxworkers N/A (depends on number of available CPU cores) MAXWORKERS=<User-specified-value>Maximum parallel workers that can be engaged. maxworkers should always be set to greater than the desired number of workers.
 runcontextfile $CONTEXT_FILE RUNCONTEXTFILE=<Absolute context_file path> To specify the non-default context file patch in RUN filesystem
 patchcontextfile Standard context file path in patch FS PATCHCONTEXTFILE=<Absolute context_file path>  To specify the non-default context file patch in PATCH filesystem
 patches N/A PATCHES=<User-specified-value>For Standard Patch:when>patch directory is  a 6- to 8-digit numberPATCHES=<patch_number>

For Non-Standard Patch
when
> patch directory is not a 6- to 8-digit number example NLS patches <patch_number>_<language_code>.
> patch driver files are not named *<patchnum>.drv example merged patchesPATCHES=<patch_number>:<driver_file>.drv
This parameter specifies the patches adop needs to apply.Remember the numbered-only patches (standard) and containing-a-colon categories of patch (non-standard) can be mixed.Like:PATCHES= <patch_number1>,  <patch_number2>:<driver_file2>.drv
 defaultsfile $APPL_TOP/admin/<SID>_patch/adalldefaults.txt DEFAULTSFILE=<Absolute defaults_file path>Default file locations on both the run APPL_TOP and patch APPL_TOP is: $APPL_TOP/admin/<SID>_patch/adalldefaults.txtIn case you have created your own defaults file and want to use that instead, then use this parameter.
 patchtop $NE_BASE/EBSapps/patchPATCHTOP=<Absolute patch_location_file path> Default patch_top location is below.$NE_BASE/EBSapps/patchIf you want to keep your patches in some other lcoation, then you need to use this patrameter to let ADOP know where to search for patches pointed by ‘patches’ parameter.If you have a multi-node environment, you must download and unzip the patches (under $APPL_TOP_NE/EBSapps/patch) on the respective nodes.
 merge MERGE=NOMERGE=NO
MERGE=YES
In R12.2, oracle has integrated patch merging action in the patching command itself. In earlier releases we used to first merge patches using admrgpch command.By using MERGE=YES option ADOP will merge all the unified driver files into a single driver file.
 abandon ABANDON=NOABANDON=YES
ABANDON=NO
If the patch you are applying went into error, you have two option when you start the adop utility again.1) you corrected error and want to continue with previous adop session:ABANDON=NO2) you decided that you don’t want to correct issue for now and want to abandon the previous adop session:ABANDON=YES
 restartRESTART=YESRESTART=NO
RESTART=YES
If the patch you are applying went into error and you corrected the issue and want to restart the previous patching session.It is just the reverse of ABANDON parameter.Remember ABANDON and RESTART will always have opposite value.
 flagsN/AFLAGS=AUTOSKIPUse “flags=autoskip” in conjunction with the “abandon=no” parameter at the command-line to skip a failing patching step to “Continue as if a patch were successful”. You need to review the “autoskip” log that gets generated during the patching cycle in order to make sure that their were no errors and to take required actions in case of any errors
 allnodesALLNODES=NOALLNODES=NO
ALLNODES=YES
This parameter comes into picture when you have multi node setup. If you want to run adop on all nodes then use ALLNODES=YES.
 actionACTION=DBACTION=DB
ACTION=NODB
Use this parameter to specify whether to perform database actions or skip. For example if you are in a multi-node environment and adop has already updated the database so when running on other node just use ACTION=NODB to save time.Remember when you are using ‘allnodes=yes’ in a multi-node ‘action=db’ must be specified.
 apply APPLY=YESAPPLY=YES
APPLY=NO
To run adop in test mode (without applying any patches),specify apply=no
 autoskipAUTOSKIP=YESAUTOSKIP=YES
AUTOSKIP=NO
This parameter control whether the user is prompted about skipping actions in non-interactive patching. This is specifically useful when you are applying patches in multi node setup.
 mtrestartMTRESTART=YESMTRESTART=YES
MTRESTART=NO
This parameter specify whether to restart application tier services after cutover phase or not.
 cm_wait CM_WAIT=INFINITE (will wait forever) CM_WAIT=<user_specified_numberSpecifies the number of minutes to wait until the ICM will be forced down.
 allowcoredump ALLOWCOREDUMP=NOALLOWCOREDUMP=NO
ALLOWCOREDUMP=YES
To specify that a core dump will be generated if adop crashes.
 analyticsANALYTICS=NOANALYTICS=NO
ANALYTICS=YES
To specify that a report will be generated that can help debug certian adop issue.
 preinstallN/APREINSTALL=YThis mode is used only if the patch readme instructs. Generally this mode is used during the upgrade process to update AD utilities, apply pre-upgrade patches, or work around other patching issues.It will Compares version numbers, Copies files, Relinks FND and AD executables, Saves patch information. It also runs autoconfig if required.The dual file system in Release 12.2 means that there is no need to shut down application tier services before running AutoConfig.
 -helpN/AN/AShows the help screen.
 -status-status -detailLatest Session-STATUS (for latest session)
-STATUS <SESSION_ID> (for specific session)
Display status of the latest adop session.Use ‘adop -status -detail’ for detailed info
 -examplesN/AN/ADisplays some commonly used adop ample commnads
 ADOP PATCHING EXAMPLE COMMANDS:
 ‘Complete’ adop patching cycle using parameters input through command line  (INTERACTIVE MODE)
So in R12.2 we have complete patching cycle to follow to apply a patch. These are set of commands which needs to executed in specific order.
You must set the environment by executing the run file system environment file.
$ . <run APPL_TOP path>/APPS<CONTEXT_NAME>.env
1) adop phase=prepare
2) adop phase=apply patches=<patch_number1>,<patch_number2> workers=<number_of_worker>
3) adop phase=finalize workers=<number_of_worker> (called automatically)
4) adop phase=cutover workers=<number_of_worker>
5) adop phase=cleanup (called automatically)
OR
Running all phases in single command:
adop phase=prepare,apply,finalize,cutover,cleanup patches=<patch_number1>,<patch_number2>
All the phases need to be completed and you can’t skip any of these. For example, if you try to skip prepare phase, you may get error message like “Apply phase can only be run while in a patching cycle, i.e. after prepare phase.”
 adop patching cycle in NON-INTERACTIVE mode
During apply phase, Non-interactive patching is a way to save time by avoiding some of the prompts and automating the patching process.You can apply patches in non-interactive way by using a defaults file that contains much of the information you would have supplied at the adop prompts and by creating another file known as input file. Then, when you run adop, you specify the name of the input file. The location of the defaults file will also need to be included in the input file.
$ adop phase=apply input_file=<input_file.txt>
Location of Default file on both the run APPL_TOP and patch APPL_TOP is:
$APPL_TOP/admin/<SID>_patch/adalldefaults.txt
Just in case this file gets corrupted or lost, you can run AutoConfig and it will automatically instantiate a new copy.
NOTE: In R12.2, you don’t need to create this defaults file. The file is already created by oracle process. However you need to create one ‘input file’ to use with adop (The defaults file is not specified on the adop command line. It is the input file.)
The input_file contents should include the following required parameters:
patches=<patch number>
workers=<number of workers>
patchtop=<directory where patches are staged>
defaultsfile=<defaults file on patch APPL TOP>
 To skip specific patching portion or action
During apply phase:
adop phase=apply options=nodatabaseportion, nogenerateportion
In above command we are instructing adop to not run database and generate portion.
Other options can be
options=noactiondetails  — if you do not want the details to be printed.
options=noautoconfig  — if you are applying a number of patches in sequence and want to run
AutoConfig only once in the end.
option=nocheckfile –to turn off the checkfile feature. Using checkfile adop skip some actions which are   already done.
option=nocompiledb –when applying multiple NLS, documentations patches etc
option=nocompilejsp –when applying multiple NLS, documentations patches etc
option=nocopyportion  –for skipping copy portion of the patch
 To apply patch in ‘HOTPATCH’ mode
During apply phase:
# adop phase=apply options=hotpatch

No comments:

ORA-00059: Maximum Number Of DB_FILES Exceeded in 19C database

When I am adding datafile to my 19C database facing the below error. SQL> alter tablespace DATA  add datafile '/u01/data/data15.dbf&#...