Step by step guide to apply CPU patch on Oracle 19c database home

 


In this post I will be showing step by step guide to apply CPU patch on oracle database 19c. I will be applying CPU patch for December 2023(Patch no :- 35643107)




Activity Steps:

1. Check Opatch Tool Version:

  • Verify the current version of the Opatch tool. As per read me of Patch 35643107 , minimum required Opatch version should be 12.2.0.1.37 or later

 

2.Download Opatch Tool (if needed):

  • Upgrade the Opatch utility if the current version is outdated.  Download Opatch latest version or as mentioned in patch readme. In this case I will be installing 12.2.0.1.40 (Patch no 6880880)


3. Install Opatch Tool :

Take backup of existing Opatch directory before installing Opatch

[oracle@ocisoumya ~]$ cd $ORACLE_HOME

[oracle@ocisoumya dbhome_1]$ mv OPatch/ OPatch_bkp

[oracle@ocisoumya u01]$ cp -r p6880880_190000_Linux-x86-64.zip $ORACLE_HOME

[oracle@ocisoumya dbhome_1]$ unzip p6880880_190000_Linux-x86-64.zip

[oracle@ocisoumya dbhome_1]$ cd OPatch

[oracle@ocisoumya OPatch]$ ./opatch version

OPatch Version: 12.2.0.1.40

 

OPatch succeeded.

 

 

3. Backup ORACLE_HOME and orainventory:

  • Take a comprehensive backup of the ORACLE_HOME directory and orainventory.

[oracle@ocisoumya 19.3.0]$ cd /u01/app/oracle/19.3.0

[oracle@ocisoumya 19.3.0]$ zip -r oracle_19c_home.zip /u01/app/oracle/19.3.0/dbhome_1

[oracle@ocisoumya 35643107]$ cd /u01/app/

[oracle@ocisoumya app]$ ls

admin  audit  cfgtoollogs  checkpoints  diag  oracle  oradata  oraInventory

[oracle@ocisoumya app]$ cp -r oraInventory/ oraInventory_bkp

 

 

4. Shutdown Database and Listener:

  • Safely shut down the database and listener associated with the ORACLE_HOME to be patched.

[oracle@ocisoumya ~]$ sqlplus / as sysdba

 

SQL*Plus: Release 19.0.0.0.0 - Production on Sun Jan 14 08:02:02 2024

Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

Connected to:

Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

Version 19.3.0.0.0

 

SQL> shu immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> exit

 

[oracle@ocisoumya ~]$ lsnrctl stop

 

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 14-JAN-2024 08:02:40

 

Copyright (c) 1991, 2019, Oracle.  All rights reserved.

 

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))

The command completed successfully

 

5. Apply PSU Patch:

  • Apply the CPU patch 35643107  to the specified ORACLE_HOME.

Navigate to patch directory and check for conflict using following

[oracle@ocisoumya ~]$ export PATH=/u01/app/oracle/19.3.0/dbhome_1/OPatch:$PATH

[oracle@ocisoumya ~]$ cd /u01/35643107/

 

[oracle@ocisoumya 35643107]$ opatch prereq CheckConflictAgainstOHWithDetail -ph ./

Oracle Interim Patch Installer version 12.2.0.1.40

Copyright (c) 2024, Oracle Corporation.  All rights reserved.

 

PREREQ session

 

Oracle Home       : /u01/app/oracle/19.3.0/dbhome_1

Central Inventory : /u01/app/oraInventory

   from           : /u01/app/oracle/19.3.0/dbhome_1/oraInst.loc

OPatch version    : 12.2.0.1.40

OUI version       : 12.2.0.7.0

Log file location : /u01/app/oracle/19.3.0/dbhome_1/cfgtoollogs/opatch/opatch2024-01-14_08-11-35AM_1.log

 

Invoking prereq "checkconflictagainstohwithdetail"

 

Prereq "checkConflictAgainstOHWithDetail" passed.

 

OPatch succeeded.

 

Install Patch

[oracle@ocisoumya 35643107]$ opatch apply

Oracle Interim Patch Installer version 12.2.0.1.40

Copyright (c) 2024, Oracle Corporation.  All rights reserved.

 

 

Oracle Home       : /u01/app/oracle/19.3.0/dbhome_1

Central Inventory : /u01/app/oraInventory

   from           : /u01/app/oracle/19.3.0/dbhome_1/oraInst.loc

OPatch version    : 12.2.0.1.40

OUI version       : 12.2.0.7.0

Log file location : /u01/app/oracle/19.3.0/dbhome_1/cfgtoollogs/opatch/opatch2024-01-14_08-13-23AM_1.log

 

Verifying environment and performing prerequisite checks...

OPatch continues with these patches:   35643107

 

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/19.3.0/dbhome_1')

 

 

Is the local system ready for patching? [y|n]

y

User Responded with: Y

Backing up files...

Applying interim patch '35643107' to OH '/u01/app/oracle/19.3.0/dbhome_1'

ApplySession: Optional component(s) [ oracle.network.gsm, 19.0.0.0.0 ] , [ oracle.pg4mq, 19.0.0.0.0 ] , [ oracle.rdbms.ic, 19.0.0.0.0 ] , [ oracle.rdbms.tg4db2, 19.0.0.0.0 ] , [ oracle.tfa, 19.0.0.0.0 ] , [ oracle.rdbms.tg4msql, 19.0.0.0.0 ] , [ oracle.ons.cclient, 19.0.0.0.0 ] , [ oracle.rdbms.tg4sybs, 19.0.0.0.0 ] , [ oracle.options.olap.api, 19.0.0.0.0 ] , [ oracle.network.cman, 19.0.0.0.0 ] , [ oracle.sdo.companion, 19.0.0.0.0 ] , [ oracle.xdk.companion, 19.0.0.0.0 ] , [ oracle.rdbms.tg4tera, 19.0.0.0.0 ] , [ oracle.net.cman, 19.0.0.0.0 ] , [ oracle.ons.eons.bwcompat, 19.0.0.0.0 ] , [ oracle.oid.client, 19.0.0.0.0 ] , [ oracle.rdbms.tg4ifmx, 19.0.0.0.0 ] , [ oracle.options.olap, 19.0.0.0.0 ] , [ oracle.jdk, 1.8.0.191.0 ]  not present in the Oracle Home or a higher version is found.

 

Patching component oracle.rdbms.util, 19.0.0.0.0...

 

Patching component oracle.rdbms.rsf, 19.0.0.0.0...

 

Patching component oracle.rdbms, 19.0.0.0.0...

 

 

Patching component oracle.assistants.acf, 19.0.0.0.0...

 

Patching component oracle.assistants.deconfig, 19.0.0.0.0...

 

Patching component oracle.assistants.server, 19.0.0.0.0...

 

Patching component oracle.blaslapack, 19.0.0.0.0...

 

Patching component oracle.buildtools.rsf, 19.0.0.0.0...

 

Patching component oracle.ctx, 19.0.0.0.0...

 

Patching component oracle.dbdev, 19.0.0.0.0...

 

Patching component oracle.dbjava.ic, 19.0.0.0.0...

 

Patching component oracle.dbjava.jdbc, 19.0.0.0.0...

 

Patching component oracle.dbjava.ucp, 19.0.0.0.0...

 

Patching component oracle.duma, 19.0.0.0.0...

 

Patching component oracle.javavm.client, 19.0.0.0.0...

 

Patching component oracle.ldap.owm, 19.0.0.0.0...

 

Patching component oracle.ldap.rsf, 19.0.0.0.0...

 

Patching component oracle.ldap.security.osdt, 19.0.0.0.0...

 

Patching component oracle.marvel, 19.0.0.0.0...

 

Patching component oracle.network.rsf, 19.0.0.0.0...

 

Patching component oracle.odbc.ic, 19.0.0.0.0...

 

Patching component oracle.ons, 19.0.0.0.0...

 

Patching component oracle.ons.ic, 19.0.0.0.0...

 

Patching component oracle.oracore.rsf, 19.0.0.0.0...

 

Patching component oracle.perlint, 5.28.1.0.0...

 

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

 

Patching component oracle.precomp.rsf, 19.0.0.0.0...

 

Patching component oracle.rdbms.crs, 19.0.0.0.0...

 

Patching component oracle.rdbms.dbscripts, 19.0.0.0.0...

 

Patching component oracle.rdbms.deconfig, 19.0.0.0.0...

 

Patching component oracle.rdbms.oci, 19.0.0.0.0...

 

Patching component oracle.rdbms.rsf.ic, 19.0.0.0.0...

 

Patching component oracle.rdbms.scheduler, 19.0.0.0.0...

 

Patching component oracle.rhp.db, 19.0.0.0.0...

 

Patching component oracle.sdo, 19.0.0.0.0...

 

Patching component oracle.sdo.locator.jrf, 19.0.0.0.0...

 

Patching component oracle.sqlplus, 19.0.0.0.0...

 

Patching component oracle.sqlplus.ic, 19.0.0.0.0...

 

Patching component oracle.wwg.plsql, 19.0.0.0.0...

 

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

 

Patching component oracle.ldap.client, 19.0.0.0.0...

 

Patching component oracle.rdbms.dv, 19.0.0.0.0...

 

Patching component oracle.rdbms.install.common, 19.0.0.0.0...

 

Patching component oracle.rdbms.hsodbc, 19.0.0.0.0...

 

Patching component oracle.nlsrtl.rsf, 19.0.0.0.0...

 

Patching component oracle.xdk.rsf, 19.0.0.0.0...

 

Patching component oracle.odbc, 19.0.0.0.0...

 

Patching component oracle.xdk.parser.java, 19.0.0.0.0...

 

Patching component oracle.ctx.atg, 19.0.0.0.0...

 

Patching component oracle.network.listener, 19.0.0.0.0...

 

Patching component oracle.ctx.rsf, 19.0.0.0.0...

 

Patching component oracle.rdbms.hs_common, 19.0.0.0.0...

 

Patching component oracle.dbtoolslistener, 19.0.0.0.0...

 

Patching component oracle.xdk, 19.0.0.0.0...

 

Patching component oracle.rdbms.rman, 19.0.0.0.0...

 

Patching component oracle.rdbms.drdaas, 19.0.0.0.0...

 

Patching component oracle.install.deinstalltool, 19.0.0.0.0...

 

Patching component oracle.ovm, 19.0.0.0.0...

 

Patching component oracle.rdbms.install.plugins, 19.0.0.0.0...

 

Patching component oracle.mgw.common, 19.0.0.0.0...

 

Patching component oracle.xdk.xquery, 19.0.0.0.0...

 

Patching component oracle.network.client, 19.0.0.0.0...

 

Patching component oracle.ldap.ssl, 19.0.0.0.0...

 

Patching component oracle.oraolap.api, 19.0.0.0.0...

 

Patching component oracle.javavm.server, 19.0.0.0.0...

 

Patching component oracle.sdo.locator, 19.0.0.0.0...

 

Patching component oracle.oraolap, 19.0.0.0.0...

 

Patching component oracle.oraolap.dbscripts, 19.0.0.0.0...

 

Patching component oracle.rdbms.lbac, 19.0.0.0.0...

 

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

 

Patching component oracle.precomp.lang, 19.0.0.0.0...

 

Patching component oracle.jdk, 1.8.0.201.0...

Patch 35643107 successfully applied.

Sub-set patch [29517242] has become inactive due to the application of a super-set patch [35643107].

Please refer to Doc ID 2161861.1 for any possible further required actions.

Log file location: /u01/app/oracle/19.3.0/dbhome_1/cfgtoollogs/opatch/opatch2024-01-14_08-13-23AM_1.log

 

OPatch succeeded.

 

 

6. Validate Patch in Inventory:

  • Confirm the successful application of the patch in the inventory.

[oracle@ocisoumya 35643107]$ opatch lsinventory | grep 35643107

Patch  35643107     : applied on Sun Jan 14 08:16:16 GMT 2024

Patch description:  "Database Release Update : 19.21.0.0.231017 (35643107)"

 

7. Startup Database and Listener:

  • Start up the database and listener services associated with the patched Oracle home.

[oracle@ocisoumya ~]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Sun Jan 14 08:23:17 2024

Version 19.21.0.0.0

Copyright (c) 1982, 2022, Oracle.  All rights reserved.

 

Connected to an idle instance.

 

SQL> startup

ORACLE instance started.

 

Total System Global Area 4949276544 bytes

Fixed Size                  8935296 bytes

Variable Size             889192448 bytes

Database Buffers         4043309056 bytes

Redo Buffers                7839744 bytes

Database mounted.

Database opened.

SQL> exit

 

[oracle@ocisoumya ~]$ lsnrctl start

 

LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 14-JAN-2024 08:25:10

 

Copyright (c) 1991, 2023, Oracle.  All rights reserved.

 

Starting /u01/app/oracle/19.3.0/dbhome_1/bin/tnslsnr: please wait...

 

TNSLSNR for Linux: Version 19.0.0.0.0 - Production

Log messages written to /u01/app/diag/tnslsnr/ocisoumya/listener/alert/log.xml

Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ocisoumya.example.com)(PORT=1521)))

 

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))

STATUS of the LISTENER

------------------------

Alias                     LISTENER

Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production

Start Date                14-JAN-2024 08:25:10

Uptime                    0 days 0 hr. 0 min. 0 sec

Trace Level               off

Security                  ON: Local OS Authentication

SNMP                      OFF

Listener Log File         /u01/app/diag/tnslsnr/ocisoumya/listener/alert/log.xml

Listening Endpoints Summary...

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ocisoumya.example.com)(PORT=1521)))

The listener supports no services

The command completed successfully

 

 

8. Execute Post-installation Steps (datapatch):

  • Run post-installation steps, including the execution of datapatch.

[oracle@ocisoumya ~]$ datapatch -verbose

SQL Patching tool version 19.21.0.0.0 Production on Sun Jan 14 08:26:08 2024

Copyright (c) 2012, 2023, Oracle.  All rights reserved.

 

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

 

Connecting to database...OK

Gathering database info...done

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.21.0.0.0 Release_Update 230930151951: Installed

  SQL registry:

    Applied 19.3.0.0.0 Release_Update 190410122720 successfully on 04-OCT-23 04.48.01.858067 AM

 

Adding patches to installation queue and performing prereq checks...done

Installation queue:

  No interim patches need to be rolled back

  Patch 35643107 (Database Release Update : 19.21.0.0.231017 (35643107)):

    Apply from 19.3.0.0.0 Release_Update 190410122720 to 19.21.0.0.0 Release_Update 230930151951

  No interim patches need to be applied

 

Installing patches...

Patch installation complete.  Total patches installed: 1

 

Validating logfiles...done

Patch 35643107 apply: SUCCESS

  logfile: /u01/app/cfgtoollogs/sqlpatch/35643107/25405995/35643107_apply_ORCL_2024Jan14_08_26_38.log (no errors)

 

Automatic recompilation incomplete; run utlrp.sql to revalidate.

SQL Patching tool complete on Sun Jan 14 08:31:34 2024

 

9. Verify Patch Status from dba_registry_sqlpatch:

  • Check the status of the applied patch in the dba_registry_sqlpatch view.

SQL> COLUMN action_time FORMAT A20

SQL> COLUMN action FORMAT A10

SQL> COLUMN status FORMAT A10

SQL> COLUMN description FORMAT A60

SQL> SELECT TO_CHAR(action_time, 'DD-MON-YYYY HH24:MI:SS') AS action_time,action,status,description,patch_id FROM sys.dba_registry_sqlpatch ORDER by action_time;

 ACTION_TIME          ACTION     STATUS     DESCRIPTION                                                    PATCH_ID

-------------------- ---------- ---------- ------------------------------------------------------------ ----------

04-OCT-2023 04:48:01 APPLY      SUCCESS    Database Release Update : 19.3.0.0.190416 (29517242)           29517242

14-JAN-2024 08:31:33 APPLY      SUCCESS    Database Release Update : 19.21.0.0.231017 (35643107)          35643107





 

10. Run utlrp.sql to validate any invalid objects :

SQL> @?/rdbms/admin/utlrp.sql

 

 

This concludes the PSU patching activity on oracle home.

No comments:

Post a Comment