Notes for the Oracle PSU for 12.1 (check carefully - very easy to download the 12.2 version). This is for a RAC one node server, please check the patch info when using RAC / Dataguard, as this process will differ.
See ➊ at bottom of post when using replication, will expand later.
Make sure you are using the latest Opatch, i.e. p6880880). See here :
Unzip the
p6880880 patch (check latest patch downloaded) - ensure you have a valid backup of the Opatch directory :
ORA01:+ASM:gridhome>unzip p6880880_122010_Linux-x86-64.zip
This will create a new OPatch directory with new versions of OPatchauto and OPatch:
Do this on both the GI and rdbms home otherwise you will hit opatch mis-match errors when running combo patches.
Check the version is as expected - i.e. run $./opatch version
Now run opatch with the analyze option to confirm everything ok :
OPatch>./opatchauto
apply /u99/media/29176115 -analyze
If the analyze completes ok against the GI and DB home then apply the patch :
Initially, I ran against the GI and then the DB Home but running against both homes is the better option.
Check you don't have any apps running. We had to shutdown Oracle Golden Gate and the EM Agent on this server; otherwise you will hit errors if processes are connection to Oracle and this will stop the patch in it's tracks.
++++++++++++++
ORA01::OPatch>./opatchauto apply
/u99/media/29176115
OPatchauto session is initiated at Thu Jun 6 01:05:19 2019
System initialization log file is
/u01/app/oracle/grid/12.1.0.2/gridhome/cfgtoollogs/opatchautodb/systemconfig2019-06-06_01-05-21AM.log.
Session log file is apr*
/u01/app/oracle/grid/12.1.0.2/gridhome/cfgtoollogs/opatchauto/opatchauto2019-06-06_01-05-33AM.log
The id for this session is M521
Executing OPatch prereq operations to verify patch
applicability on home /u01/app/oracle/product/12.1.0.2/dbhome
Patch applicability verified successfully on home
/u01/app/oracle/product/12.1.0.2/dbhome
Verifying SQL patch applicability on home
/u01/app/oracle/product/12.1.0.2/dbhome
SQL patch applicability verified successfully on home
/u01/app/oracle/product/12.1.0.2/dbhome
Executing OPatch prereq operations to verify patch
applicability on home /u01/app/oracle/grid/12.1.0.2/gridhome
Patch applicability verified successfully on home
/u01/app/oracle/grid/12.1.0.2/gridhome
Preparing to bring down database service on home
/u01/app/oracle/product/12.1.0.2/dbhome
Successfully prepared home
/u01/app/oracle/product/12.1.0.2/dbhome to bring down database service
Bringing down database service on home
/u01/app/oracle/product/12.1.0.2/dbhome
Following database has been stopped and will be restarted
later during the session: oradb1,oradb2
Database service successfully brought down on home
/u01/app/oracle/product/12.1.0.2/dbhome
Bringing down CRS service on home
/u01/app/oracle/grid/12.1.0.2/gridhome
Prepatch operation log file location:
/u01/app/oracle/grid/12.1.0.2/gridhome/cfgtoollogs/crsconfig/hapatch_2019-06-06_01-08-58AM.log
CRS service brought down successfully on home
/u01/app/oracle/grid/12.1.0.2/gridhome
Start applying binary patch on home
/u01/app/oracle/product/12.1.0.2/dbhome
Binary patch applied successfully on home
/u01/app/oracle/product/12.1.0.2/dbhome
Start applying binary patch on home
/u01/app/oracle/grid/12.1.0.2/gridhome
Binary patch applied successfully on home
/u01/app/oracle/grid/12.1.0.2/gridhome
Starting CRS service on home
/u01/app/oracle/grid/12.1.0.2/gridhome
Postpatch operation log file location:
/u01/app/oracle/grid/12.1.0.2/gridhome/cfgtoollogs/crsconfig/hapatch_2019-06-06_01-17-34AM.log
CRS service started successfully on home
/u01/app/oracle/grid/12.1.0.2/gridhome
Starting database service on home
/u01/app/oracle/product/12.1.0.2/dbhome
Database service successfully started on home
/u01/app/oracle/product/12.1.0.2/dbhome
Preparing home /u01/app/oracle/product/12.1.0.2/dbhome after
database service restarted
No step execution required.........
Trying to apply SQL patch on home
/u01/app/oracle/product/12.1.0.2/dbhome
SQL patch applied successfully on home /u01/app/oracle/product/12.1.0.2/dbhome
OPatchAuto successful.
--------------------------------Summary--------------------------------
Patching is completed successfully. Please find the summary
as follows:
Host:ora01
SIDB Home:/u01/app/oracle/product/12.1.0.2/dbhome
Version:12.1.0.2.0
Summary:
==Following patches were SKIPPED:
Patch: /u99/media/29176115/26983807
Reason: This patch is not applicable to this specified
target type - "oracle_database"
Patch: /u99/media/29176115/29217637
Reason: This patch is not applicable to this specified
target type - "oracle_database"
==Following patches were SUCCESSFULLY applied:
Patch: /u99/media/29176115/29141015
Log:/u01/app/oracle/product/12.1.0.2/dbhome/cfgtoollogs/opatchauto/core/opatch/opatch2019-06-06_01-09-21AM_1.log
Patch: /u99/media/apr2019_patches/29176115/29141168
Log:/u01/app/oracle/product/12.1.0.2/dbhome/cfgtoollogs/opatchauto/core/opatch/opatch2019-06-06_01-09-21AM_1.log
Host:ora01
SIHA Home:/u01/app/oracle/grid/12.1.0.2/gridhome
Version:12.1.0.2.0
Summary:
==Following patches were SKIPPED:
Patch: /u99/media/29176115/26983807
Reason: This patch is already been applied, so not going to
apply again.
==Following patches were SUCCESSFULLY applied:
Patch: /u99/media/29176115/29141015
Log:/u01/app/oracle/grid/12.1.0.2/gridhome/cfgtoollogs/opatchauto/core/opatch/opatch2019-06-06_01-11-21AM_1.log
Patch: /u99/media/29176115/29141168
Log:/u01/app/oracle/grid/12.1.0.2/gridhome/cfgtoollogs/opatchauto/core/opatch/opatch2019-06-06_01-11-21AM_1.log
Patch: /u99/media/29176115/29217637
Log:/u01/app/oracle/grid/12.1.0.2/gridhome/cfgtoollogs/opatchauto/core/opatch/opatch2019-06-06_01-11-21AM_1.log
OPatchauto session completed at Thu Jun 6 01:25:25 2019
Time taken to complete the session 20 minutes, 6 seconds
+++++++++++++++++++
Ran this sql to confirm the patch had completed :
select patch_id, status, action_time, description from dba_registry_sqlpatch
PATCH_ID STATUS ACTION_TIME DESCRIPTION
29141015 SUCCESS 06-JUN-19 01.20.44.735844 AM DATABASE PATCH SET UPDATE 12.1.0.2.190416
So far so good, next ran the patch 29251241: OJVM PSU Patch
Run from the 29251241 patch directory.
+++++++++++++++++++
ORA01:29251241>$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/dbhome
Central
Inventory : /u01/app/oraInventory
from :
/u01/app/oracle/product/12.1.0.2/dbhome/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/dbhome/cfgtoollogs/opatch/opatch2019-06-06_01-47-07AM_1.log
Verifying
environment and performing prerequisite checks...
OPatch
continues with these patches: 29251241
Do you want
to proceed? [y|n]
y
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/dbhome')
Is the local
system ready for patching? [y|n]
y
User
Responded with: Y
Backing up
files...
Applying
interim patch '29251241' to OH '/u01/app/oracle/product/12.1.0.2/dbhome'
ApplySession:
Optional component(s) [ oracle.sqlj, 12.1.0.2.0 ] not present in the Oracle Home or a higher
version is found.
Patching
component oracle.javavm.server, 12.1.0.2.0...
Patching
component oracle.javavm.server.core, 12.1.0.2.0...
Patching
component oracle.rdbms.dbscripts, 12.1.0.2.0...
Patching
component oracle.rdbms, 12.1.0.2.0...
Patching
component oracle.javavm.client, 12.1.0.2.0...
Patching
component oracle.dbjava.jdbc, 12.1.0.2.0...
Patching
component oracle.dbjava.ic, 12.1.0.2.0...
Patch
29251241 successfully applied.
Sub-set patch
[27475603] has become inactive due to the application of a super-set patch
[29251241].
Please refer
to Doc ID 2161861.1 for any possible further required actions.
Log file
location:
/u01/app/oracle/product/12.1.0.2/dbhome/cfgtoollogs/opatch/opatch2019-06-06_01-47-07AM_1.log
OPatch
succeeded.
+++++++++++++++++++
Checked the dba_registry_sqlpatch table (see above) but nothing was reported for the OJVM patch.
However, ran $./opatch lsinventory and the patch was listed - needed further investigation.
COL DBMS_JAVA.LONGNAME('OK') FORMAT a9
SELECT dbms_java.longname('OK') FROM dual;
-- OK Example Output
DBMS_JAVA
---------
OK
-- Not OK Example Output
ORA-29548: Java system class reported: release of Java system classes in the database
(12.1.0.2.181016 1.6) does not match that of the oracle executable (12.1.0.2.180717 1.6)
We hit the ORA-29548 issue - if you search on the web you will see instruction on rebuilding java and lots of other stuff - in this situation ignore!
The patch had worked on other environments without issue so knew it worked.
The oracle executable on the o/s is different to that on the database - as in the error.
So we ran the a ./datapatch verbose command from the OPatch directory for each of the databases in that home and et voilla!!
The java in the database was ok - SELECT dbms_java.longname('OK') FROM dual;
DBMS_JAVA.LONGNAME('OK')
OK✔
and the dba_registry_sqlpatch was reporting correctly :
PATCH_ID
STATUS
ACTION_TIME
DESCRIPTION
29141015
SUCCESS 06-JUN-19
01.20.44.735844 AM DATABASE PATCH SET UPDATE 12.1.0.2.190416 ✔
29251241
SUCCESS 06-JUN-19
03.59.27.168461 AM Database PSU 12.1.0.2.190416, Oracle JavaVM
Component (APR2019) ✔
There is a good note here :
For standby first patching (see section1.25 in the link below) :
Patch the standby binaries but not the data patch.
Patch the primary , but not the data patch.
Start replication.
Apply the data patch to the primary , and this will get replicated to the standby.
++++++++++++++