
{"id":7969,"date":"2019-11-01T13:10:58","date_gmt":"2019-11-01T13:10:58","guid":{"rendered":"https:\/\/rax-stg-wp-aws.com\/blogs\/reminders-for-applying-oracle-cpu-patches\/"},"modified":"2026-11-03T19:29:11","modified_gmt":"2026-11-03T19:29:11","slug":"reminders-for-applying-oracle-cpu-patches","status":"publish","type":"blogs","link":"https:\/\/www.rackspace.com\/de\/blogs\/reminders-for-applying-oracle-cpu-patches\/","title":{"rendered":"Reminders for applying Oracle CPU patches"},"content":{"rendered":"<p><strong>Introduction<\/strong><br \/>\nThis blog reviews the importance of running an ADOP (Application DBA Online Patching Utility) cycle with <em>fs_clone<\/em>&nbsp;after any changes or technology patches&nbsp;are made to the Weblogic Server (WLS) or Oracle\u00a9 Fusion Middleware (FMW)&nbsp;home directories on your patch file system. The blog explores a problem scenario&nbsp;and explains how to handle related issues easily.<\/p>\n<p><strong>The ADOP cycle phases<\/strong><\/p>\n<p>The following image shows the phases of the ADOP cycle:<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26556-body-Picture1_41.png\" alt=\"oracle adop pic 1\" \/><\/p>\n<p><a href=\"https:\/\/docs.oracle.com\/cd\/E26401_01\/doc.122\/e22954\/T202991T531065.htm\"><em>Image Source<\/em><\/a>&nbsp;<\/p>\n<p><strong>Problem history<\/strong><\/p>\n<p>After applying Critical Path Update (CPU) patches to an Oracle version R12.2&nbsp;instance on a patch file system, ADOP completed a full cycle run (prepare, apply,&nbsp;finalize, cutover, and cleanup). After running another ADOP cycle for a different<br \/>\nactivity, the instance was cloned to another server.<\/p>\n<p>However, when applying WLS patches on the new cloned environment, the system&nbsp;encountered a conflict. The patch was pointing to a version mismatch of the WLS.<\/p>\n<p><strong>Analysis<\/strong><\/p>\n<p>Research showed that the CPU patches previously applied to WLS and FMW Web Tier&nbsp;and Oracle common home directories were not included in run and patch file system.&nbsp;On further investigation into the ADOP logfiles, we noticed the prepare file<br \/>\nsynchronized the file system, however we couldn&#8217;t see the changes made to the&nbsp;<strong>Oracle\\_home<\/strong>&nbsp;and <strong>FMW\\_home<\/strong>&nbsp;directories during the patching cycle.<\/p>\n<p><strong>Deduction:<\/strong><\/p>\n<p>From our analysis, we draw the following conclusions:<\/p>\n<p>1. The file synchronization in the prepare phase is only for the <strong>APPL\\_TOP<\/strong>.<\/p>\n<p>&nbsp; &nbsp;The log files we reviewed showed propagating file system changes from run<br \/>\n&nbsp; &nbsp;<strong>APPL\\_TOP<\/strong>&nbsp;to patch <strong>APPL\\_TOP<\/strong>.<\/p>\n<p>2. After Weblogic patches were applied, <em>`fs_clone<\/em>` was not run before initiating&nbsp;the next ADOP cycle. &nbsp;Thus, the new patches don&#8217;t show up in the successive&nbsp;un even after the second ADOP cycle completes, and it was not available in&nbsp;the cloned instance.<\/p>\n<p><strong>Recommendation<\/strong><\/p>\n<p>In the prepare phase, the patch file system is usually synchronized with the run&nbsp;file system by creating a new database edition. This is a default incremental&nbsp;synchronization of files that are changed on the application top.<\/p>\n<p>To synchronize the applied patches, invoke t<em>xkADOPPreparePhaseSynchronize.pl<\/em><br \/>\nto the <strong>$APPL\\_TOP<\/strong> of run file system from the last patching cycle or invoke&nbsp;`<em>fs_clone<\/em>`. In this case, we don&#8217;t call the actual `<em>fs_clone<\/em>`. Instead, we call&nbsp;<em>FsCloneStage<\/em>&nbsp;and `<em>sCloneApply<\/em>&nbsp;for the <strong>$APPL_TOP<\/strong>, which is very unsynchronized.<\/p>\n<p>The file system synchronization method is selected automatically based on the&nbsp;Configuration Change Detector (`<em>adConfigChangeDetector.pl -detectConfigChanges<\/em>`)<\/p>\n<p>\nDifferent file synchronization methods include the following options:<\/p>\n<p><strong>Option 1<\/strong>&nbsp;\u2013 identify patches from the database that were applied in the last&nbsp;ADOP. Merge and apply these silently. This process takes less time because&nbsp;the system applies only the unapplied patches.<\/p>\n<p><strong>Option 2<\/strong>&nbsp;\u2013 Recreate or reclone the run file system <strong>$APPL\\_TOP<\/strong>&nbsp;to<br \/>\nthe patch file system <strong>$APPL\\_TOP<\/strong>. This is extremely unsynchronized and&nbsp;consumes more resources.<\/p>\n<p><strong>Option 3<\/strong> \u2013 Use the third-party software of your choice (such as `<em>rsync<\/em>`) to&nbsp;synchronize the file system.<\/p>\n<p><strong>&nbsp;Parameters passed with prepare<\/strong><\/p>\n<p>`<em>Prepare<\/em>` uses the following parameters:<\/p>\n<p>a) Use the `<em>Skipsyncerror<\/em>` option in the ADOP prepare phase to ignore errors and&nbsp;&nbsp; &nbsp;warnings as a workaround for synchronization errors and failures, which might happen if the patch application failed in a previous patching cycle. The<br \/>\n&nbsp; &nbsp;default value is <strong>NO<\/strong>.<\/p>\n<p>&nbsp; &nbsp;<strong>syntax:<\/strong> `<em>adop phase=prepare skipsyncerror=yes<\/em>`<\/p>\n<p>b) Use the `<em>sync_mode<\/em>` option to specify the method to use to sync the patch file&nbsp;system with a run file system. <strong>Syntax<\/strong> `<em>adop phase=prepare sync_mode=(delta|patch)<\/em>`<\/p>\n<p>&nbsp; &nbsp;<em>sync_mode patch<\/em>&nbsp;\u2013 Reapplies patches which were already applied to run<br \/>\n&nbsp; &nbsp;file system (default mode).<br \/>\n&nbsp; &nbsp;<em>sync_mode delta <\/em>\u2013 Copies all customizations and file changes. This mode<br \/>\n&nbsp; &nbsp;uses the synchronization command from the file <strong>delta\\_sync\\_drv.txt<\/strong>&nbsp;and<br \/>\n&nbsp; &nbsp;is a new feature from `<em>AD-TXK delta 8<\/em>`.<br \/>\n&nbsp;<\/p>\n<p><strong>ADOP fs_clone command<\/strong><\/p>\n<p>&nbsp;The `fs_clone` command recreates or reclones the entire patch file system&nbsp;including setting all configurations and customizations on the patch file&nbsp;system in the same manner as the run file system. Doing this is as resource&nbsp;intensive as taking a full backup of the run file system and then creating a&nbsp;patch file system.<\/p>\n<p>`<em>fs_clone<\/em>` has the following useful commands:<\/p>\n<ul>\n<li>&#8211; `<em>adop phase=fs_clone force=yes<\/em> ` &#8211; Restarts a failed clone from beginning<\/li>\n<li>&nbsp; &nbsp;(default=NO).<\/li>\n<li>&#8211; `<em>adop phase=fs_clone s_fs_backup_count=1<\/em>` &#8211; Sets the number of backups of the<\/li>\n<li>&nbsp; &nbsp;patch file system to be preserved before it can be recreated from the run<\/li>\n<li>&nbsp; &nbsp;file system (default=0 no backups are taken).<\/li>\n<\/ul>\n<p><strong>Key takeaways&nbsp;<\/strong><\/p>\n<p>Even though the prepare phase runs at the start of every patching cycle, the&nbsp;technology stack patches (applied by the `opatch\/Smart update` utility) are not&nbsp;synced in the prepare stage.<\/p>\n<ul>\n<li>Prepare does not synchronize any changes done manually like:<\/li>\n<li>Compiling user-defined JSPs.<\/li>\n<li>Copying third party libraries.<\/li>\n<li>Copying and compiling user-defined concurrent programs.<\/li>\n<li>Copying and generating user-defined forms.<\/li>\n<\/ul>\n<p>You must add the custom patching actions (like those described previously) in the&nbsp;custom synchronization driver, `<em>adop_sync.drv<\/em>`, in the prepare phase.<\/p>\n<p>\nIn the file, `<em>adop_sync.drv<\/em>, the following categories of commands exist:<\/p>\n<ul>\n<li>Run one time only<\/li>\n<li>Run at each file system synchronization<\/li>\n<\/ul>\n<p>To copy customizations and file changes in prepare phase, use the following<br \/>\ncommand:<\/p>\n<p><em>`ADOP phase=prepare sync_mode=(delta|patch)`<\/em><\/p>\n<p>\nIf any patches aborted or any maintenance or Release Update Pack (RUP)&nbsp;patches are applied,<em> `fs_clone` <\/em>must be run at the end to recreate the patch&nbsp;file system as an exact copy of the run file system.<\/p>\n<p><strong>Conclusion<\/strong><\/p>\n<p>Whenever any changes are done to Weblogic Server or Fusion Middleware components&nbsp;of E-Business Suite Release 12.2, it is imperative that database administrators&nbsp;run `<em>fs_clone<\/em>` to ensure that the patch file system is updated with all the&nbsp;latest changes that were performed to WLS or FMW of the run file system.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Reminders for applying Oracle CPU patches<\/p>\n","protected":false},"author":2,"featured_media":7971,"menu_order":0,"comment_status":"open","ping_status":"open","template":"","format":"standard","meta":{"content-type":"","nid":"26556","content_type":"blog","created_by":"10130","authored_on":"2024-01-31T14:10:58+00:00","field_article_industries":"","tag_category":"Technical","field_blog_author_text":"by Rackspace Technology Staff","seo_description":"Discover the Oracle APP_MULTI package, a powerful tool for adding multi-selection functionality to Oracle Forms, enhancing user interaction and productivity.\r\n","field_featured_image":"","insights_image":"\/wp-content\/uploads\/2026\/blog_technical_images\/26556-insights_image-oracle-technical-blog-1-insights_0.jpg","field_partners":"","rxt_platforms":"Oracle","product":"","publisheddate":"2019-11-01T13:10:58","rxt_solutions":"Data, Databases, Data Modernization","opengraph_tag":"","x_tag":"","teaser_flag":"Technical Blog","seo_titile":"Reminders for Applying Oracle CPU Patches | Rackspace Technology","field_topics":"","field_slug":"reminders-for-applying-oracle-cpu-patches","footnotes":""},"categories":[178],"tags":[204],"class_list":["post-7969","blogs","type-blogs","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-technical"],"_links":{"self":[{"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/blogs\/7969","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/blogs"}],"about":[{"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/types\/blogs"}],"author":[{"embeddable":true,"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/comments?post=7969"}],"version-history":[{"count":3,"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/blogs\/7969\/revisions"}],"predecessor-version":[{"id":9794,"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/blogs\/7969\/revisions\/9794"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/media\/7971"}],"wp:attachment":[{"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/media?parent=7969"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/categories?post=7969"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rackspace.com\/de\/wp-json\/wp\/v2\/tags?post=7969"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}