Skip Headers
Oracle® OPatch User's Guide
Release 12.1 for Windows and UNIX

E39376-04
Go to Documentation Home
Home
Go to Book List
Book List
Go to Table of Contents
Contents
Go to Index
Index
Go to Master Index
Master Index
Go to Feedback page
Contact Us

Go to previous page
Previous
Go to next page
Next
PDF · Mobi · ePub

3 Patch Orchestration Using OPatchauto

Patch orchestration is the automated execution of the patching steps, such as the execution of pre-patch checks, stopping services, applying the binary patches, and starting the services. Patch orchestration for Oracle Database 12c applies the patch to the GI/RAC configuration on that machine, including all of its databases. The OPatchauto patch orchestration utility has been made available with version 12.1 of the OPatch utility.

This chapter covers the following topics:

Important:

This chapter applies to Oracle Database 12c only.

3.1 OPatch Automation (OPatchauto)

With OPatchauto, you can automatically patch the typical Grid Infrastructure (GI) and RAC home directories with minimal intervention. Figure 3-1 shows an overview flow of the patch process using OPatchauto.

OPatchauto performs many of the pre-patch checks (see "Using OPatch") as well as the post-patch verification. The power of OPatchauto lies in its ability to perform end-to-end configuration patching. Configuration patching is the process of patching a GI or RAC home based on its configuration. By incorporating the configuration information into the patch process, OPatchauto streamlines patching tasks by automating most of the steps.

OPatchauto uses your GI/RAC configuration and, from that information, automatically generates patching instructions specific to your site configuration. OPatchauto then uses OPatch to implement these instructions and perform the actual application of the patch.

3.1.1 Supported Patch Format

Beginning with Oracle Database 12c, patches have been converted to a System patch format in order to support patch automation.

What is a System Patch?

A System patch contains several sub-patches whose locations are determined by a file called bundle.xml in the top level directory of the patch. The sub-patches are intended for different sub-systems of a system that correspond with the database home organization.

A typical System patch format is organized as follows:

<System patch location - directory>
|_____ Readme.txt (or) Readme.html
       bundle.xml
       automation
               |_____ apply_automation.xml
              rollback_automation.xml
       Sub-patch1
                |_____  etc/config/inventory.xml
                |_____ etc/config/actions.xml
                |_____ files/Subpatch1 &rsquor;payload'
       Sub-patch2
                |_____  etc/config/inventory.xml
                |_____ etc/config/actions.xml
                |_____ files/Subpatch1 &rsquor;payload'

Notes:

  • For database releases prior to 12c, OPatchauto is not supported for the released one-off patches. For older releases, you must use OPatch and follow the patch README instructions.

  • OPatchauto and System patches are only supported by Oracle Database 12c and above.

3.1.2 Supported Target Configurations

OPatchauto can be applied to the following general configurations:

  • GI Home Shared

  • GI Home Not Shared

  • RAC Home Shared

  • RAC Home Not Shared

  • Single-Instance High Availability (SIHA) Home (single node)

3.1.2.1 Shared Versus Non-Shared (GI or RAC) Homes

In a shared GI/RAC home, all nodes in the cluster use the same physical copy of the software. This simplifies configuration and management of many database operations because there is a single Home location rather than separate Homes on each node.

When a GI Home or RAC Home is shared, individual nodes within the GI or RAC environments share a single file system and utilize a cluster file system such as Oracle Cluster File System 2 (OCFS2), in addition to sharing the same Home. Although this configuration is more disk space-efficient, the process of patching becomes a bit more complicated as the different nodes are utilizing the same resources/disk space.

Note:

GI shared home installations can be patched only in nonrolling mode

In a non-shared GI/RAC home, sometimes referred to as Private GI/RAC home, each node in the cluster maintains a complete copy of the Oracle software tree on local storage. This is the most common way in which Oracle Grid Infrastructure and Real Application Clusters are installed.

The configuration differences between shared and non-shared Homes come into play when determining the patching mode in which OPatchauto is used. See Section 3.1.2.2, "Patch Application Modes."

3.1.2.2 Patch Application Modes

OPatchauto supports two modes of patching a GI or RAC Home - Rolling and Non-rolling. When a patching session is started off (on the first node), the stack has to be up and running on this node. This applies to both rolling and non-rolling modes of patching.

Rolling Mode (Default Mode): When performing patching in Rolling mode, a node is shut down, the patch is applied, then the node is brought back up again. This process is repeated for each node in the GI or RAC environment until all nodes are patched. This is the most efficient mode of applying an interim patch to an Oracle RAC setup because this results in no downtime. Not all patches can be applied using Rolling mode. Whether or not a patch can be applied in this way generally specified in the patch metadata. The node (GI Home) from which the opatchauto command is executed is considered the LOCAL node and all other nodes are considered REMOTE nodes.

When you begin a rolling mode session, at least 1 remote node has to be up and running.

OPatchauto applies patches in rolling mode by default.

Non-rolling Mode: Prior to 12c, a non-rolling upgrade was defined as shutting down Oracle processes on all nodes. Beginning with 12c, non-rolling patching requires the GI stack to be up on local node. The patching operation on first and last node have special steps to perform hence the operation needs to be handled separately but not in parallel with other nodes. The non-rolling patching can ve described as three phases:

Beginning with 12c, non-rolling patching occurs in three phases:

  1. Patch Node 1

  2. Patch Node 2 through n-1

  3. Patch Node n

When you start a non-rolling mode session none of the remote nodes can up and running: All nodes must be stopped.

As shown in the following figure, given n nodes, you begin the non-rolling patch session by patching a single node, then patch nodes two through n-1 in parallel, and finally patch node n to finish the patching session.

non-rolling mode

To run OPatchauto in non-rolling mode, you must explicitly specify the -nonrolling option.

Prerequisites: Node Availaibility During Patching (Rolling vs. Non-rolling)

In order to start a new patching session, the following conditions must be met.

  • Local node must be up for both Rolling and Non-rolling modes.

  • At least one of the remote nodes must be up in order to start a Rolling mode session.

  • ALL the remote nodes must be down in order to start a Non-rolling session.

Patch Application Mode Conflict

As mentioned earlier, OPatchauto applies patches in rolling mode by default. If the patch is applied in rolling mode but the patch content is not rollable (content does not support application in rolling mode), OPatchauto will error out when attempting to run rootcrs.pl -prepatch.

3.2 Running OPatchauto on a Single Node

To ensure successful patching, Oracle recommends that a patching session always consist of the four following steps:

  1. Run opatch lsinventory

    When to run: During cluster uptime.

    Before you begin a new patching session you must ensure that all nodes of the cluster are at the same patch level.

    $GRID_HOME/OPatch/opatch lsinventory
    

    Example Output

    ==============================================================
    Patch level status of Cluster nodes :
    Patching Level           Nodes--------------           -----12345678                 node123, node456
    
  2. Run opatchauto apply -analyze

    When to run: During cluster uptime.

    The apply -analyze command simulates an opatchauto apply session by running all prerequisite checks, when possible, without making changes to the system (either bits or configurations).

  3. Run opatchauto apply

    When to run: During cluster downtime.

    The apply command applies all patches within a specified system patch to the GI or RAC home from which opatchauto is command is run.

  4. Run opatch lsinventory

    When to run: During cluster uptime.

    After successfully running opatchauto apply on each individual node, you must run opatch lsinventory on that node to confirm that the patch level has been correctly updated.

3.2.1 Patching Session Output

The following patching session output examples illustrate successful OPatchauto apply and rollback sessions.

Example 3-1 OPatchauto Apply Session in Analyze Mode

OPatch Automation Tool
Copyright (c) 2013, Oracle Corporation.  All rights reserved.

OPatchauto version : 12.1.0.1.2
OUI version        : 12.1.0.1.0
Running from       : /scratch/aime_ordb_adc00fao/crso1/crshome_crso1
 
opatchauto log file: /scratch/aime_ordb_adc00fao/crso1/crshome_crso1/cfgtoollogs/opatchauto/13852018/opatch_gi_2013-10-09_20-59-54_analyze.log
 
NOTE: opatchauto is running in ANALYZE mode. There will be no change to your system.
 
Parameter Validation: Successful
 
Grid Infrastructure home:
/scratch/aime_ordb_adc00fao/crso1/crshome_crso1
RAC home(s):
/scratch/aime_ordb_adc00fao/obase/rachome_raco1
 
Configuration Validation: Successful
 
Patch Location: /tmp/patches/13852018
Grid Infrastructure Patch(es): 17027533 17338387 17338388
RAC Patch(es): 17027533 17338387
 
Patch Validation: Successful
 
Analyzing patch(es) on "/scratch/aime_ordb_adc00fao/obase/rachome_raco1" ...
Patch "/tmp/patches/13852018/17027533" successfully analyzed on "/scratch/aime_ordb_adc00fao/obase/rachome_raco1" for apply.
Patch "/tmp/patches/13852018/17338387" successfully analyzed on "/scratch/aime_ordb_adc00fao/obase/rachome_raco1" for apply.
 
Analyzing patch(es) on "/scratch/aime_ordb_adc00fao/crso1/crshome_crso1" ...
Patch "/tmp/patches/13852018/17027533" successfully analyzed on "/scratch/aime_ordb_adc00fao/crso1/crshome_crso1" for apply.
Patch "/tmp/patches/13852018/17338387" successfully analyzed on "/scratch/aime_ordb_adc00fao/crso1/crshome_crso1" for apply.
Patch "/tmp/patches/13852018/17338388" successfully analyzed on "/scratch/aime_ordb_adc00fao/crso1/crshome_crso1" for apply.
 
SQL changes, if any, are analyzed successfully on the following database(s): raco1
 
Apply Summary:
Following patch(es) are successfully analyzed:
GI Home: /scratch/aime_ordb_adc00fao/crso1/crshome_crso1: 17027533, 17338387, 17338388
RAC Home: /scratch/aime_ordb_adc00fao/obase/rachome_raco1: 17027533, 17338387
 
opatchauto succeeded.

Example 3-2 OPatchauto Apply Session

OPatch Automation Tool
Copyright (c) 2013, Oracle Corporation.  All rights reserved.
 
OPatchauto version : 12.1.0.1.2
OUI version        : 12.1.0.1.0
Running from       : /scratch/aime_ordb_adc00fao/crso1/crshome_crso1
 
opatchauto log file: /scratch/aime_ordb_adc00fao/crso1/crshome_crso1/cfgtoollogs/opatchauto/13852018/opatch_gi_2013-10-09_21-10-46_deploy.log
 
Parameter Validation: Successful
 
Grid Infrastructure home:
/scratch/aime_ordb_adc00fao/crso1/crshome_crso1
RAC home(s):
/scratch/aime_ordb_adc00fao/obase/rachome_raco1
 
Configuration Validation: Successful
 
Patch Location: /tmp/patches/13852018
Grid Infrastructure Patch(es): 17027533 17338387 17338388
RAC Patch(es): 17027533 17338387
 
Patch Validation: Successful
 
Stopping RAC (/scratch/aime_ordb_adc00fao/obase/rachome_raco1) ... Successful
Following database(s) were stopped and will be restarted later during the session: raco1
 
Applying patch(es) to "/scratch/aime_ordb_adc00fao/obase/rachome_raco1" ...
Patch "/tmp/patches/13852018/17027533" successfully applied to "/scratch/aime_ordb_adc00fao/obase/rachome_raco1".
Patch "/tmp/patches/13852018/17338387" successfully applied to "/scratch/aime_ordb_adc00fao/obase/rachome_raco1".
 
Stopping CRS ... Successful
 
Applying patch(es) to "/scratch/aime_ordb_adc00fao/crso1/crshome_crso1" ...
Patch "/tmp/patches/13852018/17027533" successfully applied to "/scratch/aime_ordb_adc00fao/crso1/crshome_crso1".
Patch "/tmp/patches/13852018/17338387" successfully applied to "/scratch/aime_ordb_adc00fao/crso1/crshome_crso1".
Patch "/tmp/patches/13852018/17338388" successfully applied to "/scratch/aime_ordb_adc00fao/crso1/crshome_crso1".
 
Starting CRS ... Successful
 
Starting RAC (/scratch/aime_ordb_adc00fao/obase/rachome_raco1) ... Successful
 
SQL changes, if any, are applied successfully on the following database(s): raco1
 
Apply Summary:
Following patch(es) are successfully installed:
GI Home: /scratch/aime_ordb_adc00fao/crso1/crshome_crso1: 17027533, 17338387, 17338388
RAC Home: /scratch/aime_ordb_adc00fao/obase/rachome_raco1: 17027533, 17338387
 
opatchauto succeeded.

Example 3-3 OPatchauto Rollback Session in Analyze Mode

OPatch Automation Tool
Copyright (c) 2013, Oracle Corporation.  All rights reserved.
 
OPatchauto version : 12.1.0.1.2
OUI version        : 12.1.0.1.0
Running from       : /scratch/aime_ordb_adc00fao/crso1/crshome_crso1
 
opatchauto log file: /scratch/aime_ordb_adc00fao/crso1/crshome_crso1/cfgtoollogs/opatchauto/13852018/opatch_gi_2013-10-09_21-43-36_analyze.log
 
NOTE: opatchauto is running in ANALYZE mode. There will be no change to your system.
 
Parameter Validation: Successful
 
Grid Infrastructure home:
/scratch/aime_ordb_adc00fao/crso1/crshome_crso1
RAC home(s):
/scratch/aime_ordb_adc00fao/obase/rachome_raco1
 
Configuration Validation: Successful
 
Patch Location: /tmp/patches/13852018
Grid Infrastructure Patch(es): 17027533 17338387 17338388
RAC Patch(es): 17027533 17338387
 
Patch Validation: Successful
 
Analyzing patch(es) on "/scratch/aime_ordb_adc00fao/obase/rachome_raco1" ...
Patch "17027533,17338387" successfully analyzed on "/scratch/aime_ordb_adc00fao/obase/rachome_raco1" for rollback.
 
Analyzing patch(es) on "/scratch/aime_ordb_adc00fao/crso1/crshome_crso1" ...
Patch "17027533,17338387,17338388" successfully analyzed on "/scratch/aime_ordb_adc00fao/crso1/crshome_crso1" for rollback.
 
SQL changes, if any, are analyzed successfully on the following database(s): raco1
 
Rollback Summary:
Following patch(es) are successfully analyzed:
GI Home: /scratch/aime_ordb_adc00fao/crso1/crshome_crso1: 17027533, 17338387, 17338388
RAC Home: /scratch/aime_ordb_adc00fao/obase/rachome_raco1: 17027533, 17338387
 
opatchauto succeeded.

Example 3-4 OPatchauto Rollback Session

OPatch Automation Tool
Copyright (c) 2013, Oracle Corporation.  All rights reserved.
 
OPatchauto version : 12.1.0.1.2
OUI version        : 12.1.0.1.0
Running from       : /scratch/aime_ordb_adc00fao/crso1/crshome_crso1
 
opatchauto log file: /scratch/aime_ordb_adc00fao/crso1/crshome_crso1/cfgtoollogs/opatchauto/13852018/opatch_gi_2013-10-09_21-52-51_deploy.log
 
Parameter Validation: Successful
 
Grid Infrastructure home:
/scratch/aime_ordb_adc00fao/crso1/crshome_crso1
RAC home(s):
/scratch/aime_ordb_adc00fao/obase/rachome_raco1
 
Configuration Validation: Successful
 
Patch Location: /tmp/patches/13852018
Grid Infrastructure Patch(es): 17027533 17338387 17338388
RAC Patch(es): 17027533 17338387
 
Patch Validation: Successful
 
Stopping RAC (/scratch/aime_ordb_adc00fao/obase/rachome_raco1) ... Successful
Following database(s) were stopped and will be restarted later during the session: raco1
 
Rolling back patch(es) from"/scratch/aime_ordb_adc00fao/obase/rachome_raco1" ...
Patch "17027533,17338387" successfully rolled back from "/scratch/aime_ordb_adc00fao/obase/rachome_raco1".
 
Stopping CRS ... Successful
 
Rolling back patch(es) from"/scratch/aime_ordb_adc00fao/crso1/crshome_crso1" ...
Patch "17027533,17338387,17338388" successfully rolled back from "/scratch/aime_ordb_adc00fao/crso1/crshome_crso1".
 
Starting CRS ... Successful
 
Starting RAC (/scratch/aime_ordb_adc00fao/obase/rachome_raco1) ... Successful
 
SQL changes, if any, are rolled back successfully on the following database(s): raco1
 
Rollback Summary:
Following patch(es) are successfully rolled back:
GI Home: /scratch/aime_ordb_adc00fao/crso1/crshome_crso1: 17027533, 17338387, 17338388
RAC Home: /scratch/aime_ordb_adc00fao/obase/rachome_raco1: 17027533, 17338387
 
opatchauto succeeded.

3.3 OPatchauto Apply

When you run OPatchauto's apply command, numerous operations are performed to implement the complete patch application cycle. These operations vary depending on the environment to be patched. The following environment is representative of the vast majority of patching environments in which OPatchauto is used. For example, a typical patching environment would be one GI Home managing two RAC Homes. When you run opatchauto apply, OPatchauto will perform the operations shown in Figure 3-1, "Patching with OPatchauto: Process Flow".

Figure 3-1 Patching with OPatchauto: Process Flow

Opatchauto process flow

3.3.1 OPatchauto: System Reboot Request

Depending on the patch or the home directory configuration, you may encounter a request to reboot the system. After a reboot during the patching process, you need to invoke the opatchauto utility again so that it seamlessly continues with rest of the patch apoplication process..

Typically an error message, as shown in the following example, will be displayed when a problem arises.

Example 3-5 OPatchauto Console Error

# OPatch/opatchauto apply /scratch/aime/sh/RDBMS_12.1.0.1.0_LINUX.X64_130418/patches/v2/nosql/gipsu/11111111 -ocmrf /tmp/ocm.rsp 
OPatch Automation Tool
Copyright (c) 2013, Oracle Corporation.  All rights reserved.
 ... 
[WARNING] The local database instance 'norcl2' from '/scratch/aime1/DB12N/app/aime1/product/12.1.0/dbhome_1' is not running, the following command will NOT be executed:
/bin/bash -c 'ORACLE_HOME=/scratch/aime1/DB12N/app/aime1/product/12.1.0/dbhome_1 ORACLE_SID=$(/scratch/aime1/DB12N/app/aime1/product/12.1.0/dbhome_1/bin/srvctl status instance -d norcl -n slc00epi | cut -d " " -f 2) /scratch/aime1/DB12N/app/aime1/product/12.1.0/dbhome_1/OPatch/datapatch'.
To apply the SQL changes patch all the nodes, bring up the database instance and run this command manually from any one node (run as aime1).
 
CLSRSC-400: A system reboot is required to continue installing.
 
...

Apply Summary:
Following patch(es) are successfully installed:
GI_HOME=/u01/GI12/app/12.1.0/grid:13852018, 22222222, 123456788
DB_HOME=/scratch/aime/DB12_2/app/aime/product/12.1.0/dbhome_1:13852018, 123456788
DB_HOME=/scratch/aime1/DB12N/app/aime1/product/12.1.0/dbhome_1:13852018, 123456788
 
opatchauto failed with error code 1.

When you receive an error like this, follow the reboot instructions specified in the console. The following example shows a system reboot request issued by the user.

3.4 Sample OPatchauto Patching Steps

The following example shows the commands OPatchauto runs during a normal patching sessions. The environment being patched consists of a single GI Home (grid) and a single RAC Home (dbhome_1).

Example 3-6 OPatchauto Commands

/scratch/aime_ordb_adc00fao/obase/rachome_raco1/OPatch/opatch version -oh /scratch/aime_ordb_adc00fao/obase/rachome_raco1 -invPtrLoc /scratch/aime_ordb_adc00fao/crso1/crshome_crso1/oraInst.loc -v2c 12.1.0.1.1
 
/scratch/aime_ordb_adc00fao/crso1/crshome_crso1/OPatch/opatch version -oh /scratch/aime_ordb_adc00fao/crso1/crshome_crso1 -invPtrLoc /scratch/aime_ordb_adc00fao/crso1/crshome_crso1/oraInst.loc -v2c 12.1.0.1.1
 
/scratch/aime_ordb_adc00fao/obase/rachome_raco1/OPatch/opatch prereq CheckComponents -ph /tmp/patches/13852018/17027533 -invPtrLoc /scratch/aime_ordb_adc00fao/crso1/crshome_crso1/oraInst.loc -oh /scratch/aime_ordb_adc00fao/obase/rachome_raco1
 
/scratch/aime_ordb_adc00fao/obase/rachome_raco1/OPatch/opatch prereq CheckComponents -ph /tmp/patches/13852018/17338387 -invPtrLoc /scratch/aime_ordb_adc00fao/crso1/crshome_crso1/oraInst.loc -oh /scratch/aime_ordb_adc00fao/obase/rachome_raco1
 
/scratch/aime_ordb_adc00fao/crso1/crshome_crso1/OPatch/opatch prereq CheckComponents -ph /tmp/patches/13852018/17027533 -invPtrLoc /scratch/aime_ordb_adc00fao/crso1/crshome_crso1/oraInst.loc -oh /scratch/aime_ordb_adc00fao/crso1/crshome_crso1
 
/scratch/aime_ordb_adc00fao/crso1/crshome_crso1/OPatch/opatch prereq CheckComponents -ph /tmp/patches/13852018/17338387 -invPtrLoc /scratch/aime_ordb_adc00fao/crso1/crshome_crso1/oraInst.loc -oh /scratch/aime_ordb_adc00fao/crso1/crshome_crso1
 
/scratch/aime_ordb_adc00fao/crso1/crshome_crso1/OPatch/opatch prereq CheckComponents -ph /tmp/patches/13852018/17338388 -invPtrLoc /scratch/aime_ordb_adc00fao/crso1/crshome_crso1/oraInst.loc -oh /scratch/aime_ordb_adc00fao/crso1/crshome_crso1
 
/scratch/aime_ordb_adc00fao/obase/rachome_raco1/OPatch/opatch prereq CheckConflictAgainstOH -ph /tmp/patches/13852018/17027533 -invPtrLoc /scratch/aime_ordb_adc00fao/crso1/crshome_crso1/oraInst.loc -oh /scratch/aime_ordb_adc00fao/obase/rachome_raco1
 
/scratch/aime_ordb_adc00fao/obase/rachome_raco1/OPatch/opatch prereq CheckConflictAgainstOH -ph /tmp/patches/13852018/17338387 -invPtrLoc /scratch/aime_ordb_adc00fao/crso1/crshome_crso1/oraInst.loc -oh /scratch/aime_ordb_adc00fao/obase/rachome_raco1
 
/scratch/aime_ordb_adc00fao/crso1/crshome_crso1/OPatch/opatch prereq CheckConflictAgainstOH -ph /tmp/patches/13852018/17027533 -invPtrLoc /scratch/aime_ordb_adc00fao/crso1/crshome_crso1/oraInst.loc -oh /scratch/aime_ordb_adc00fao/crso1/crshome_crso1
 
/scratch/aime_ordb_adc00fao/crso1/crshome_crso1/OPatch/opatch prereq CheckConflictAgainstOH -ph /tmp/patches/13852018/17338387 -invPtrLoc /scratch/aime_ordb_adc00fao/crso1/crshome_crso1/oraInst.loc -oh /scratch/aime_ordb_adc00fao/crso1/crshome_crso1
 
/scratch/aime_ordb_adc00fao/crso1/crshome_crso1/OPatch/opatch prereq CheckConflictAgainstOH -ph /tmp/patches/13852018/17338388 -invPtrLoc /scratch/aime_ordb_adc00fao/crso1/crshome_crso1/oraInst.loc -oh /scratch/aime_ordb_adc00fao/crso1/crshome_crso1
 
rm -f /scratch/aime_ordb_adc00fao/obase/rachome_raco1/OracleHome-d7a538c0-c05d-42ca-b2a8-84aefb7a797a.stat
 
/scratch/aime_ordb_adc00fao/obase/rachome_raco1/bin/srvctl stop home -o /scratch/aime_ordb_adc00fao/obase/rachome_raco1 -n adc00fao -s /scratch/aime_ordb_adc00fao/obase/rachome_raco1/OracleHome-d7a538c0-c05d-42ca-b2a8-84aefb7a797a.stat
 
echo /tmp/patches/13852018/17027533 > /tmp/OraDB12Home1_patchList
 
echo /tmp/patches/13852018/17338387 >> /tmp/OraDB12Home1_patchList
 
/scratch/aime_ordb_adc00fao/obase/rachome_raco1/OPatch/opatch napply -phBaseFile /tmp/OraDB12Home1_patchList -local  -invPtrLoc /scratch/aime_ordb_adc00fao/crso1/crshome_crso1/oraInst.loc -oh /scratch/aime_ordb_adc00fao/obase/rachome_raco1 -silent -ocmrf /tmp/patches/ocm.rsp
 
/usr/bin/perl /scratch/aime_ordb_adc00fao/crso1/crshome_crso1/crs/install/rootcrs.pl -prepatch
 
echo /tmp/patches/13852018/17027533 > /tmp/OraGI12Home1_patchList
 
echo /tmp/patches/13852018/17338387 >> /tmp/OraGI12Home1_patchList
 
echo /tmp/patches/13852018/17338388 >> /tmp/OraGI12Home1_patchList
 
/scratch/aime_ordb_adc00fao/crso1/crshome_crso1/OPatch/opatch napply -phBaseFile /tmp/OraGI12Home1_patchList -local  -invPtrLoc /scratch/aime_ordb_adc00fao/crso1/crshome_crso1/oraInst.loc -oh /scratch/aime_ordb_adc00fao/crso1/crshome_crso1 -silent -ocmrf /tmp/patches/ocm.rsp
 
/scratch/aime_ordb_adc00fao/crso1/crshome_crso1/rdbms/install/rootadd_rdbms.sh
 
/usr/bin/perl /scratch/aime_ordb_adc00fao/crso1/crshome_crso1/crs/install/rootcrs.pl -postpatch
 
/scratch/aime_ordb_adc00fao/obase/rachome_raco1/bin/srvctl start home -o /scratch/aime_ordb_adc00fao/obase/rachome_raco1 -n adc00fao -s /scratch/aime_ordb_adc00fao/obase/rachome_raco1/OracleHome-d7a538c0-c05d-42ca-b2a8-84aefb7a797a.stat
 
/bin/bash -c 'ORACLE_HOME=/scratch/aime_ordb_adc00fao/obase/rachome_raco1 ORACLE_SID=$(/scratch/aime_ordb_adc00fao/obase/rachome_raco1/bin/srvctl status instance -d raco1 -n adc00fao | cut -d " " -f 2) /scratch/aime_ordb_adc00fao/obase/rachome_raco1/OPatch/datapatch'