Patching all my environments with the Oct 2019 Patch Bundles

Yesterday I blogged about the Oct 2019 Patch Bundles being available for download. And while I wrote this blog post, I downloaded all of them for my environments. Here I’d like to share with you the most simple path to apply them. As I have no cluster or ASM, I don’t have to patch Grid Infrastructure. And I don’t even have OJVM in any of my databases right now. Due to space constraints in my lab environment I will apply the patches in-place. You shouldn’t do this but instead use always a new home you patch. This allows you a quick fallback and is much faster as you prepare the new patched home while your databases are still using the previous home.

Patching all my environments with the Oct 2019 Patch Bundles

Patching all my environments with the Oct 2019 Patch Bundles – Photo by Piron Guillaume on Unsplash

Let’s start.

Oracle Database 19.5.0

I downloaded:

  • Database Update 19.5.0.0.191015 Patch 30125133 for UNIX
    • Readme
    • Opatch 12.2.0.1.17 minimum required

Quick check for the installed opatch version:

$ $ORACLE_HOME/OPatch/opatch version
OPatch Version: 12.2.0.1.17

OPatch succeeded.

Fine, I’m good to go.

I unzip the patch and run the patch precheck just mentioned in the readme.

$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./
Oracle Interim Patch Installer version 12.2.0.1.17
Copyright (c) 2019, Oracle Corporation.  All rights reserved.

PREREQ session

Oracle Home       : /u01/app/oracle/product/19
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/oracle/product/19/oraInst.loc
OPatch version    : 12.2.0.1.17
OUI version       : 12.2.0.7.0
Log file location : /u01/app/oracle/product/19/cfgtoollogs/opatch/opatch2019-10-16_19-21-55PM_1.log

Invoking prereq "checkconflictagainstohwithdetail"

Prereq "checkConflictAgainstOHWithDetail" passed.

OPatch succeeded.

This looks promising. I will apply 19.5.0 to my environment after stopping the database services. I cut out a portion of the log information.

$ $ORACLE_HOME/OPatch/opatch apply
Oracle Interim Patch Installer version 12.2.0.1.17
Copyright (c) 2019, Oracle Corporation.  All rights reserved.


Oracle Home       : /u01/app/oracle/product/19
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/oracle/product/19/oraInst.loc
OPatch version    : 12.2.0.1.17
OUI version       : 12.2.0.7.0
Log file location : /u01/app/oracle/product/19/cfgtoollogs/opatch/opatch2019-10-16_19-26-21PM_1.log

Verifying environment and performing prerequisite checks...

--------------------------------------------------------------------------------
Start OOP by Prereq process.
Launch OOP...

Oracle Interim Patch Installer version 12.2.0.1.17
Copyright (c) 2019, Oracle Corporation.  All rights reserved.


Oracle Home       : /u01/app/oracle/product/19
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/oracle/product/19/oraInst.loc
OPatch version    : 12.2.0.1.17
OUI version       : 12.2.0.7.0
Log file location : /u01/app/oracle/product/19/cfgtoollogs/opatch/opatch2019-10-16_19-26-36PM_1.log

Verifying environment and performing prerequisite checks...
OPatch continues with these patches:   30125133  

Do you want to proceed? [y|n]
Y (auto-answered by -silent)
User Responded with: Y
All checks passed.

Please shutdown Oracle instances running out of this ORACLE_HOME on the local system.
(Oracle Home = '/u01/app/oracle/product/19')


Is the local system ready for patching? [y|n]
Y (auto-answered by -silent)
User Responded with: Y
Backing up files...
Applying interim patch '30125133' to OH '/u01/app/oracle/product/19'
ApplySession: Optional component(s) [ oracle.network.gsm, 19.0.0.0.0 ] , [ oracle.rdbms.ic, 19.0.0.0.0 ] , [ oracle.network.cman, 19.0.0.0.0 ] , [ oracle.net.cman, 19.0.0.0.0 ] , [ oracle.options.olap.awm, 19.0.0.0.0 ] , [ oracle.oraolap.mgmt, 19.0.0.0.0 ] , [ oracle.assistants.usm, 19.0.0.0.0 ] , [ oracle.assistants.asm, 19.0.0.0.0 ] , [ oracle.tfa, 19.0.0.0.0 ]  not present in the Oracle Home or a higher version is found.

Patching component oracle.rdbms, 19.0.0.0.0...

...cutout...

Patching component oracle.precomp.common, 19.0.0.0.0...

Patching component oracle.precomp.lang, 19.0.0.0.0...
Patch 30125133 successfully applied.
Sub-set patch [29517242] has become inactive due to the application of a super-set patch [30125133].
Please refer to Doc ID 2161861.1 for any possible further required actions.
Log file location: /u01/app/oracle/product/19/cfgtoollogs/opatch/opatch2019-10-16_19-26-36PM_1.log

OPatch succeeded.

Final task is to run datapatch with all PDBs open:

$ $ORACLE_HOME/OPatch/datapatch -verbose
SQL Patching tool version 19.5.0.0.0 Production on Wed Oct 16 19:40:28 2019
Copyright (c) 2012, 2019, Oracle.  All rights reserved.

Log file for this invocation: /u01/app/oracle/cfgtoollogs/sqlpatch/sqlpatch_8582_2019_10_16_19_40_28/sqlpatch_invocation.log

Connecting to database...OK
Gathering database info...done

Note:  Datapatch will only apply or rollback SQL fixes for PDBs
       that are in an open state, no patches will be applied to closed PDBs.
       Please refer to Note: Datapatch: Database 12c Post Patch SQL Automation
       (Doc ID 1585822.1)

Bootstrapping registry and package to current versions...done
Determining current state...done

Current state of interim SQL patches:
  No interim patches found

Current state of release update SQL patches:
  Binary registry:
    19.5.0.0.0 Release_Update 190909180549: Installed
  PDB CDB$ROOT:
    Applied 19.3.0.0.0 Release_Update 190410122720 successfully on 28-APR-19 12.51.36.895975 AM
  PDB PDB$SEED:
    Applied 19.3.0.0.0 Release_Update 190410122720 successfully on 28-APR-19 12.51.37.670858 AM

Adding patches to installation queue and performing prereq checks...done
Installation queue:
  For the following PDBs: CDB$ROOT PDB$SEED
    No interim patches need to be rolled back
    Patch 30125133 (Database Release Update : 19.5.0.0.191015 (30125133)):
      Apply from 19.3.0.0.0 Release_Update 190410122720 to 19.5.0.0.0 Release_Update 190909180549
    No interim patches need to be applied

Installing patches...
Patch installation complete.  Total patches installed: 2

Validating logfiles...done
Patch 30125133 apply (pdb CDB$ROOT): SUCCESS
  logfile: /u01/app/oracle/cfgtoollogs/sqlpatch/30125133/23151502/30125133_apply_CDB2_CDBROOT_2019Oct16_19_41_08.log (no errors)
Patch 30125133 apply (pdb PDB$SEED): SUCCESS
  logfile: /u01/app/oracle/cfgtoollogs/sqlpatch/30125133/23151502/30125133_apply_CDB2_PDBSEED_2019Oct16_19_41_54.log (no errors)
SQL Patching tool complete on Wed Oct 16 19:42:20 2019

Done with 19.5.0 patching.

Just a final check I’d like to do for new parameters and underscores since 19.4.0:

_bug29302220_tcpinfo_statistics_save_atexit
_bug29903454_ksws_enable_alb
_session_modp_list

These are new in 19.5.0.

Oracle Database 18.8.0

I downloaded:

  • Database Update 18.8.0.0.191015 Patch 30112122 for UNIX
    • Readme
    • Opatch 12.2.0.1.17 minimum required

Quick check for the current opatch version in my home:

$ $ORACLE_HOME/OPatch/opatch version
OPatch Version: 12.2.0.1.17

OPatch succeeded.

According to the patches Readme, this is sufficient.

Then I unpack the downloaded zip and check for conflicts:

$ cd 30112122

$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./
Oracle Interim Patch Installer version 12.2.0.1.17
Copyright (c) 2019, Oracle Corporation.  All rights reserved.

PREREQ session

Oracle Home       : /u01/app/oracle/product/18
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/oracle/product/18/oraInst.loc
OPatch version    : 12.2.0.1.17
OUI version       : 12.2.0.4.0
Log file location : /u01/app/oracle/product/18/cfgtoollogs/opatch/opatch2019-10-16_17-09-11PM_1.log

Invoking prereq "checkconflictagainstohwithdetail"

Prereq "checkConflictAgainstOHWithDetail" passed.
OPatch succeeded.

Then I’m going forward to apply the patch. This is just an excerpt of the messages opatch displays:

$ $ORACLE_HOME/OPatch/opatch apply
Oracle Interim Patch Installer version 12.2.0.1.17
Copyright (c) 2019, Oracle Corporation.  All rights reserved.


Oracle Home       : /u01/app/oracle/product/18
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/oracle/product/18/oraInst.loc
OPatch version    : 12.2.0.1.17
OUI version       : 12.2.0.4.0
Log file location : /u01/app/oracle/product/18/cfgtoollogs/opatch/opatch2019-10-16_17-25-16PM_1.log

Verifying environment and performing prerequisite checks...

--------------------------------------------------------------------------------
Start OOP by Prereq process.
Launch OOP...

Oracle Interim Patch Installer version 12.2.0.1.17
Copyright (c) 2019, Oracle Corporation.  All rights reserved.


Oracle Home       : /u01/app/oracle/product/18
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/oracle/product/18/oraInst.loc
OPatch version    : 12.2.0.1.17
OUI version       : 12.2.0.4.0
Log file location : /u01/app/oracle/product/18/cfgtoollogs/opatch/opatch2019-10-16_17-25-30PM_1.log

Verifying environment and performing prerequisite checks...
OPatch continues with these patches:   30112122  

Do you want to proceed? [y|n]
Y (auto-answered by -silent)
User Responded with: Y
All checks passed.

Please shutdown Oracle instances running out of this ORACLE_HOME on the local system.
(Oracle Home = '/u01/app/oracle/product/18')

Is the local system ready for patching? [y|n]
Y (auto-answered by -silent)
User Responded with: Y
Backing up files...
Applying interim patch '30112122' to OH '/u01/app/oracle/product/18'
ApplySession: Optional component(s) [ oracle.assistants.server.oui, 18.0.0.0.0 ] , [ oracle.has.crs, 18.0.0.0.0 ] , [ oracle.network.gsm, 18.0.0.0.0 ] , [ oracle.rdbms.tg4db2, 18.0.0.0.0 ] , [ oracle.network.cman, 18.0.0.0.0 ] , [ oracle.crs, 18.0.0.0.0 ] , [ oracle.assistants.usm, 18.0.0.0.0 ] , [ oracle.tfa, 18.0.0.0.0 ] , [ oracle.rdbms.tg4tera, 18.0.0.0.0 ] , [ oracle.rdbms.tg4msql, 18.0.0.0.0 ] , [ oracle.rdbms.tg4ifmx, 18.0.0.0.0 ] , [ oracle.assistants.asm, 18.0.0.0.0 ] , [ oracle.rdbms.tg4sybs, 18.0.0.0.0 ] , [ oracle.ons.daemon, 18.0.0.0.0 ] , [ oracle.options.olap, 18.0.0.0.0 ] , [ oracle.net.cman, 18.0.0.0.0 ]  not present in the Oracle Home or a higher version is found.

Patching component oracle.rdbms.rsf, 18.0.0.0.0...

Patching component oracle.rdbms, 18.0.0.0.0...
...
Patching component oracle.precomp.common, 18.0.0.0.0...

Patch 30112122 successfully applied.
Sub-set patch [29301631] has become inactive due to the application of a super-set patch [30112122].
Sub-set patch [27908644] has become inactive due to the application of a super-set patch [30112122].
Please refer to Doc ID 2161861.1 for any possible further required actions.
Log file location: /u01/app/oracle/product/18/cfgtoollogs/opatch/opatch2019-10-16_17-25-30PM_1.log

OPatch succeeded.

Finally, I need to run datapatch on my databases with all PDBs being up.

$ $ORACLE_HOME/OPatch/datapatch -verbose
SQL Patching tool version 18.0.0.0.0 Production on Wed Oct 16 17:38:46 2019
Copyright (c) 2012, 2019, Oracle.  All rights reserved.

Log file for this invocation: /u01/app/oracle/cfgtoollogs/sqlpatch/sqlpatch_5075_2019_10_16_17_38_46/sqlpatch_invocation.log

Connecting to database...OK
Gathering database info...done

Note:  Datapatch will only apply or rollback SQL fixes for PDBs
       that are in an open state, no patches will be applied to closed PDBs.
       Please refer to Note: Datapatch: Database 12c Post Patch SQL Automation
       (Doc ID 1585822.1)

Bootstrapping registry and package to current versions...done
Determining current state...done

Current state of interim SQL patches:
Interim patch 27923415 (OJVM RELEASE UPDATE: 18.3.0.0.180717 (27923415)):
  Binary registry: Installed
  PDB CDB$ROOT: Applied successfully on 25-JUL-18 03.20.20.172886 PM
  PDB PDB$SEED: Applied successfully on 25-JUL-18 03.20.21.628515 PM

Current state of release update SQL patches:
  Binary registry:
    18.8.0.0.0 Release_Update 1909032123: Installed
  PDB CDB$ROOT:
    Applied 18.3.0.0.0 Release_Update 1806280943 successfully on 25-JUL-18 03.20.20.166046 PM
  PDB PDB$SEED:
    Applied 18.3.0.0.0 Release_Update 1806280943 successfully on 25-JUL-18 03.20.21.623225 PM

Adding patches to installation queue and performing prereq checks...done
Installation queue:
  For the following PDBs: CDB$ROOT PDB$SEED
    No interim patches need to be rolled back
    Patch 30112122 (Database Release Update : 18.8.0.0.191015 (30112122)):
      Apply from 18.3.0.0.0 Release_Update 1806280943 to 18.8.0.0.0 Release_Update 1909032123
    No interim patches need to be applied

Installing patches...
Patch installation complete.  Total patches installed: 2

Validating logfiles...done
Patch 30112122 apply (pdb CDB$ROOT): SUCCESS
  logfile: /u01/app/oracle/cfgtoollogs/sqlpatch/30112122/23124066/30112122_apply_CDB2_CDBROOT_2019Oct16_17_39_11.log (no errors)
Patch 30112122 apply (pdb PDB$SEED): SUCCESS
  logfile: /u01/app/oracle/cfgtoollogs/sqlpatch/30112122/23124066/30112122_apply_CDB2_PDBSEED_2019Oct16_17_40_36.log (no errors)
SQL Patching tool complete on Wed Oct 16 17:41:41 2019

Looks good.

Oracle Database 12.2.0.1.0 with Oct 2019 RU

I downloaded:

  • Database Oct 2019 Update 12.2.0.1.191015 Patch 30138470 for UNIX
    • Readme
    • Opatch 12.2.0.1.17 minimum required

At first, I check for the correct opatch version in this home as well.

$ $ORACLE_HOME/OPatch/opatch version
OPatch Version: 12.2.0.1.17

OPatch succeeded.

That is more or less obvious as the opatch tools labeled 19c, 18c and 12.2.0.1 are all the same, just with different download tags on the MOS page. But as all these releases are from the same family, it makes sense to have the identical opatch tool, and not three different ones. If only MOS would show this clearly …

Next task: I will unpack the patch and run the conflict check.

$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./
Oracle Interim Patch Installer version 12.2.0.1.17
Copyright (c) 2019, Oracle Corporation.  All rights reserved.

PREREQ session

Oracle Home       : /u01/app/oracle/product/12.2.0.1
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/oracle/product/12.2.0.1/oraInst.loc
OPatch version    : 12.2.0.1.17
OUI version       : 12.2.0.1.4
Log file location : /u01/app/oracle/product/12.2.0.1/cfgtoollogs/opatch/opatch2019-10-16_19-57-38PM_1.log

Invoking prereq "checkconflictagainstohwithdetail"

Prereq "checkConflictAgainstOHWithDetail" passed.

OPatch succeeded.

Then I apply the patch bundle – and I cut some of the output to shorten it:

$ $ORACLE_HOME/OPatch/opatch apply
Oracle Interim Patch Installer version 12.2.0.1.17
Copyright (c) 2019, Oracle Corporation.  All rights reserved.


Oracle Home       : /u01/app/oracle/product/12.2.0.1
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/oracle/product/12.2.0.1/oraInst.loc
OPatch version    : 12.2.0.1.17
OUI version       : 12.2.0.1.4
Log file location : /u01/app/oracle/product/12.2.0.1/cfgtoollogs/opatch/opatch2019-10-16_19-58-47PM_1.log

Verifying environment and performing prerequisite checks...

--------------------------------------------------------------------------------
Start OOP by Prereq process.
Launch OOP...

Oracle Interim Patch Installer version 12.2.0.1.17
Copyright (c) 2019, Oracle Corporation.  All rights reserved.


Oracle Home       : /u01/app/oracle/product/12.2.0.1
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/oracle/product/12.2.0.1/oraInst.loc
OPatch version    : 12.2.0.1.17
OUI version       : 12.2.0.1.4
Log file location : /u01/app/oracle/product/12.2.0.1/cfgtoollogs/opatch/opatch2019-10-16_19-59-01PM_1.log

Verifying environment and performing prerequisite checks...
OPatch continues with these patches:   30138470  

Do you want to proceed? [y|n]
Y (auto-answered by -silent)
User Responded with: Y
All checks passed.

Please shutdown Oracle instances running out of this ORACLE_HOME on the local system.
(Oracle Home = '/u01/app/oracle/product/12.2.0.1')


Is the local system ready for patching? [y|n]
Y (auto-answered by -silent)
User Responded with: Y
Backing up files...
Applying interim patch '30138470' to OH '/u01/app/oracle/product/12.2.0.1'
ApplySession: Optional component(s) [ oracle.oid.client, 12.2.0.1.0 ] , [ oracle.nlsrtl.companion, 12.2.0.1.0 ] , [ oracle.ons.daemon, 12.2.0.1.0 ] , [ oracle.has.crs, 12.2.0.1.0 ] , [ oracle.network.cman, 12.2.0.1.0 ]  not present in the Oracle Home or a higher version is found.

Patching component oracle.network.rsf, 12.2.0.1.0...

...cutout-here...

Patching component oracle.precomp.lang, 12.2.0.1.0...

OPatch found the word "error" in the stderr of the make command.
Please look at this stderr. You can re-run this make command.
Stderr output:
chmod: changing permissions of ‘/u01/app/oracle/product/12.2.0.1/bin/extjobO’: Operation not permitted
make: [iextjob] Error 1 (ignored)

Patch 30138470 successfully applied.
Sub-set patch [29314339] has become inactive due to the application of a super-set patch [30138470].
Please refer to Doc ID 2161861.1 for any possible further required actions.
OPatch Session completed with warnings.
Log file location: /u01/app/oracle/product/12.2.0.1/cfgtoollogs/opatch/opatch2019-10-16_19-59-01PM_1.log

OPatch completed with warnings.

Interesting. I saw this in a previous patch run before. A quick check on MOS tells me two things:

Anyway, my final task is to execute datapatch in my two databases with all PDBs open. I copy only one output here:

$ $ORACLE_HOME/OPatch/datapatch -verbose
SQL Patching tool version 12.2.0.1.0 Production on Wed Oct 16 20:09:24 2019
Copyright (c) 2012, 2019, Oracle.  All rights reserved.

Log file for this invocation: /u01/app/oracle/cfgtoollogs/sqlpatch/sqlpatch_15340_2019_10_16_20_09_24/sqlpatch_invocation.log

Connecting to database...OK
Note:  Datapatch will only apply or rollback SQL fixes for PDBs
       that are in an open state, no patches will be applied to closed PDBs.
       Please refer to Note: Datapatch: Database 12c Post Patch SQL Automation
       (Doc ID 1585822.1)
Bootstrapping registry and package to current versions...done
Determining current state...done

Current state of SQL patches:
Bundle series DBRU:
  ID 191015 in the binary registry and ID 190416 in PDB CDB$ROOT, ID 190416 in PDB PDB$SEED, ID 190416 in PDB PDB3

Adding patches to installation queue and performing prereq checks...
Installation queue:
  For the following PDBs: CDB$ROOT PDB$SEED PDB3
    Nothing to roll back
    The following patches will be applied:
      30138470 (DATABASE OCT 2019 RELEASE UPDATE 12.2.0.1.191015)

Installing patches...
Patch installation complete.  Total patches installed: 3

Validating logfiles...
Patch 30138470 apply (pdb CDB$ROOT): SUCCESS
  logfile: /u01/app/oracle/cfgtoollogs/sqlpatch/30138470/23136382/30138470_apply_CDB1_CDBROOT_2019Oct16_20_09_49.log (no errors)
Patch 30138470 apply (pdb PDB$SEED): SUCCESS
  logfile: /u01/app/oracle/cfgtoollogs/sqlpatch/30138470/23136382/30138470_apply_CDB1_PDBSEED_2019Oct16_20_10_20.log (no errors)
Patch 30138470 apply (pdb PDB3): SUCCESS
  logfile: /u01/app/oracle/cfgtoollogs/sqlpatch/30138470/23136382/30138470_apply_CDB1_PDB3_2019Oct16_20_10_20.log (no errors)
SQL Patching tool complete on Wed Oct 16 20:11:15 2019

And last but not least, I check for new parameters and unverscores compared to the previous patch bundle (July 2019 RU) but couldn’t find any differences.

Oracle Database 12.1.0.2.0 with Oct 2019 BP

I downloaded:

  • Database Proactive Bundle Patch 12.1.0.2.191015 Patch 30070242 for UNIX

    • Readme
    • Opatch 12.2.0.1.17 minimum required

Unfortunately the Bundle Patch (BP) includes also GI/OCW and other things. Hence, the download package is 3.5GB in size which is huge and actually takes very long to download. The patch I’m going for, is in the subdirectory 29972716. The readme of the 12.1.0.2 Bundle Patches is unfortunately different from the other readmes – and IMHO kind of messy. I use the commands from the other readmes instead.

At first, I’m doing a quick check for my installed opatch version:

$ $ORACLE_HOME/OPatch/opatch version
OPatch Version: 12.2.0.1.17

OPatch succeeded.

I don’t need to update opatch. If I would need to, the patch number is: Patch 6880880.

$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./
Oracle Interim Patch Installer version 12.2.0.1.17
Copyright (c) 2019, Oracle Corporation.  All rights reserved.

PREREQ session

Oracle Home       : /u01/app/oracle/product/12.1.0.2
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/oracle/product/12.1.0.2/oraInst.loc
OPatch version    : 12.2.0.1.17
OUI version       : 12.1.0.2.0
Log file location : /u01/app/oracle/product/12.1.0.2/cfgtoollogs/opatch/opatch2019-10-17_00-07-59AM_1.log

Invoking prereq "checkconflictagainstohwithdetail"

Prereq "checkConflictAgainstOHWithDetail" passed.

OPatch succeeded.

Looks good to me. I can invoke the patch apply. As usual, I cut out a lot of information being displayed.

$ $ORACLE_HOME/OPatch/opatch apply
Oracle Interim Patch Installer version 12.2.0.1.17
Copyright (c) 2019, Oracle Corporation.  All rights reserved.


Oracle Home       : /u01/app/oracle/product/12.1.0.2
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/oracle/product/12.1.0.2/oraInst.loc
OPatch version    : 12.2.0.1.17
OUI version       : 12.1.0.2.0
Log file location : /u01/app/oracle/product/12.1.0.2/cfgtoollogs/opatch/opatch2019-10-17_00-08-44AM_1.log

Verifying environment and performing prerequisite checks...

--------------------------------------------------------------------------------
Start OOP by Prereq process.
Launch OOP...

Oracle Interim Patch Installer version 12.2.0.1.17
Copyright (c) 2019, Oracle Corporation.  All rights reserved.


Oracle Home       : /u01/app/oracle/product/12.1.0.2
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/oracle/product/12.1.0.2/oraInst.loc
OPatch version    : 12.2.0.1.17
OUI version       : 12.1.0.2.0
Log file location : /u01/app/oracle/product/12.1.0.2/cfgtoollogs/opatch/opatch2019-10-17_00-09-12AM_1.log

Verifying environment and performing prerequisite checks...
OPatch continues with these patches:   28259867  28731800  29141038  29496791  29972716  

Do you want to proceed? [y|n]
Y (auto-answered by -silent)
User Responded with: Y
All checks passed.

Please shutdown Oracle instances running out of this ORACLE_HOME on the local system.
(Oracle Home = '/u01/app/oracle/product/12.1.0.2')


Is the local system ready for patching? [y|n]
Y (auto-answered by -silent)
User Responded with: Y
Backing up files...
Applying sub-patch '28259867' to OH '/u01/app/oracle/product/12.1.0.2'
ApplySession: Optional component(s) [ oracle.has.crs, 12.1.0.2.0 ]  not present in the Oracle Home or a higher version is found.

Patching component oracle.oracore.rsf, 12.1.0.2.0...

...cutout-here...

Patching component oracle.rdbms.crs, 12.1.0.2.0...

Patching component oracle.ldap.rsf.ic, 12.1.0.2.0...
Composite patch 29972716 successfully applied.
Log file location: /u01/app/oracle/product/12.1.0.2/cfgtoollogs/opatch/opatch2019-10-17_00-09-12AM_1.log

OPatch succeeded.

The last step I need to execute in all my databases with all PDBs been up, is datapatch.

$ $ORACLE_HOME/OPatch/datapatch -verbose
SQL Patching tool version 12.1.0.2.0 Production on Thu Oct 17 00:15:14 2019
Copyright (c) 2012, 2017, Oracle.  All rights reserved.

Log file for this invocation: /u01/app/oracle/cfgtoollogs/sqlpatch/sqlpatch_10717_2019_10_17_00_15_14/sqlpatch_invocation.log

Connecting to database...OK
Note:  Datapatch will only apply or rollback SQL fixes for PDBs
       that are in an open state, no patches will be applied to closed PDBs.
       Please refer to Note: Datapatch: Database 12c Post Patch SQL Automation
       (Doc ID 1585822.1)
Bootstrapping registry and package to current versions...done
Determining current state...done

Current state of SQL patches:
Bundle series DBBP:
  ID 191015 in the binary registry and ID 180717 in PDB CDB$ROOT, ID 180717 in PDB PDB$SEED

Adding patches to installation queue and performing prereq checks...
Installation queue:
  For the following PDBs: CDB$ROOT PDB$SEED
    Nothing to roll back
    The following patches will be applied:
      29972716 (DATABASE BUNDLE PATCH 12.1.0.2.191015)

Installing patches...
Patch installation complete.  Total patches installed: 2

Validating logfiles...
Patch 29972716 apply (pdb CDB$ROOT): SUCCESS
  logfile: /u01/app/oracle/cfgtoollogs/sqlpatch/29972716/23132651/29972716_apply_CDB1_CDBROOT_2019Oct17_00_15_41.log (no errors)
Patch 29972716 apply (pdb PDB$SEED): SUCCESS
  logfile: /u01/app/oracle/cfgtoollogs/sqlpatch/29972716/23132651/29972716_apply_CDB1_PDBSEED_2019Oct17_00_16_09.log (no errors)
SQL Patching tool complete on Thu Oct 17 00:16:33 2019

Done!

Oracle Database 11.2.0.4 with Oct 2019 PSU

I downloaded:

First check again is the opatch version:

$ $ORACLE_HOME/OPatch/opatch version
OPatch Version: 11.2.0.3.21

OPatch succeeded.

That looks good. My installed opatch version is newer than the minum required one.
Now I unzip the patch and run the conflict check according to the readme:

$ cd 29913194/

$ $ORACLE_HOME/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./
Oracle Interim Patch Installer version 11.2.0.3.21
Copyright (c) 2019, Oracle Corporation.  All rights reserved.

PREREQ session

Oracle Home       : /u01/app/oracle/product/11.2.0.4
Central Inventory : /u01/app/oraInventory
   from           : /etc/oraInst.loc
OPatch version    : 11.2.0.3.21
OUI version       : 11.2.0.4.0
Log file location : /u01/app/oracle/product/11.2.0.4/cfgtoollogs/opatch/opatch2019-10-16_21-06-50PM_1.log

Invoking prereq "checkconflictagainstohwithdetail"

Prereq "checkConflictAgainstOHWithDetail" passed.

OPatch succeeded.

Ok, I can apply the patch bundle. I had almost forgotten that with the older opatch version I will have to answer these annoying questions:

$ $ORACLE_HOME/OPatch/opatch apply
Oracle Interim Patch Installer version 11.2.0.3.21
Copyright (c) 2019, Oracle Corporation.  All rights reserved.


Oracle Home       : /u01/app/oracle/product/11.2.0.4
Central Inventory : /u01/app/oraInventory
   from           : /etc/oraInst.loc
OPatch version    : 11.2.0.3.21
OUI version       : 11.2.0.4.0
Log file location : /u01/app/oracle/product/11.2.0.4/cfgtoollogs/opatch/opatch2019-10-16_21-07-48PM_1.log

Verifying environment and performing prerequisite checks...
OPatch continues with these patches:   29497421  29913194  

Do you want to proceed? [y|n]
y
User Responded with: Y
All checks passed.
Provide your email address to be informed of security issues, install and
initiate Oracle Configuration Manager. Easier for you if you use your My
Oracle Support Email address/User Name.
Visit http://www.oracle.com/support/policies.html for details.
Email address/User Name: 

You have not provided an email address for notification of security issues.
Do you wish to remain uninformed of security issues ([Y]es, [N]o) [N]:  Y 



Please shutdown Oracle instances running out of this ORACLE_HOME on the local system.
(Oracle Home = '/u01/app/oracle/product/11.2.0.4')


Is the local system ready for patching? [y|n]
y
User Responded with: Y
Backing up files...
Applying sub-patch '29497421' to OH '/u01/app/oracle/product/11.2.0.4'

Patching component oracle.rdbms, 11.2.0.4.0...

Patching component oracle.rdbms.dbscripts, 11.2.0.4.0...

Patching component oracle.rdbms.rman, 11.2.0.4.0...

Patching component oracle.rdbms.rsf, 11.2.0.4.0...

Patching component oracle.ldap.rsf, 11.2.0.4.0...

Patching component oracle.ldap.rsf.ic, 11.2.0.4.0...

Patching component oracle.oracore.rsf, 11.2.0.4.0...

Patching component oracle.ctx, 11.2.0.4.0...
Applying sub-patch '29913194' to OH '/u01/app/oracle/product/11.2.0.4'

Patching component oracle.rdbms, 11.2.0.4.0...

Patching component oracle.rdbms.dbscripts, 11.2.0.4.0...

Patching component oracle.rdbms.rsf, 11.2.0.4.0...

Patching component oracle.network.rsf, 11.2.0.4.0...

Patching component oracle.ldap.rsf, 11.2.0.4.0...

Patching component oracle.ldap.rsf.ic, 11.2.0.4.0...

Patching component oracle.rdbms.util, 11.2.0.4.0...
Composite patch 29913194 successfully applied.
Log file location: /u01/app/oracle/product/11.2.0.4/cfgtoollogs/opatch/opatch2019-10-16_21-07-48PM_1.log

OPatch succeeded.

Afterwards, I need to apply the SQL/PLSQL changes to my two databases once I started them up again.

SQL> @?/rdbms/admin/catbundle.sql psu apply

The output tells a lot about which packages get adjusted.

Final task

As a final task I clean up at least a little bit in my homes with opatch util cleanup. I did this with other homes, too.

$ $ORACLE_HOME/OPatch/opatch util cleanup
Oracle Interim Patch Installer version 12.2.0.1.17
Copyright (c) 2019, Oracle Corporation.  All rights reserved.


Oracle Home       : /u01/app/oracle/product/12.2.0.1
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/oracle/product/12.2.0.1/oraInst.loc
OPatch version    : 12.2.0.1.17
OUI version       : 12.2.0.1.4
Log file location : /u01/app/oracle/product/12.2.0.1/cfgtoollogs/opatch/opatch2019-10-16_20-15-00PM_1.log

Invoking utility "cleanup"
OPatch will clean up 'restore.sh,make.txt' files and 'scratch,backup' directories.
You will be still able to rollback patches after this cleanup.
Do you want to proceed? [y|n]
y
User Responded with: Y

Backup area for restore has been cleaned up. For a complete list of files/directories
deleted, Please refer log file.

OPatch succeeded.

–Mike

Share this: