Oracle Rolling Patch Procedure - Single Instance

This procedure is for Single Instance systems only (not RAC).
It describes how to perform a rolling point release upgrade of Oracle on a single instance environment running 10g on a Windows server.


Thoroughly read the file README.html contained in the Oracle patch.
It will detail the prerequisites, upgrade steps, and post upgrade steps.

You need to RDP into the server as an administrative session.

Copy the upgrade binaries to the server into a standard location like an "Install" folder.

You need to check the version of OPatch and display patches already applied.
You may need to upgrade OPatch if the upgrade instructions specify an minimum required version.

Oracle Home       : e:\some\oracle\path\database
Central Inventory : C:\Program Files\Oracle\Inventory
   from           : n/a
OPatch version    : 10.n.n.n.n
OUI version       : 10.n.n.n.n
OUI location      : e:\some\oracle\path\database\oui


Backup the Oracle %ORACLE_HOME% directory.

Copy the %ORACLE_HOME% directory to a safe temporary location.
Copy the directory C:\Program Files\oracle\ to a safe temporary location.

Stopping Oracle

Perform a clean shutdown of all Oracle services (databases, Oracle listeners, and so on.) that run from the Oracle Home where you install the patch.

Stop ALL Oracle services running in the following order:

Explicitly stop the Distributed Transaction Coordinator service (a Windows service) if it is running.

Check Services to see if there any other services starting with "Oracle" which is still running and stop them.


Set your Oracle Home

Add the location of OPatch to the PATH:

Go to the Oracle patch location:

Before patching, OPatch will prompt for user input. At this point please make sure that all the Oracle services are stopped.

Email address/User Name: [Enter]
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
Is the local system ready for patching? [y|n] Y
Backing up files...
Verifying the update...
Patches nnnnnnnnnn,nnnnnnnnnn successfully applied.
Log file location: /diskN/Oracle/xxxxxx/cfgtoollogs/opatch/opatchYYYY-MM-DD_HH-MM-SSAM_1.log

OPatch succeeded.

Review the Oracle alert log file for issues.


Restart the server and start Oracle if it does not start automatically.
Check Oracle alert log for errors.
Ensure that all is working correctly before proceeding.

Database Patching

Now, you need to apply various database patches and registration of patches applied.
In this example we are running catcpu.sql however you may not need to do this.
Thoroughly read the file README.html contained in the Oracle patch.
Oracle's documentation will be more specific about what steps are needed.

Connect to the database using SQL*Plus as SYSDBA and run catcpu.sql as follows:

Check the log file for any errors. The log file is found in %ORACLE_HOME%\cfgtoollogs\catbundle and is named catbundle_WINBUNDLE__APPLY_.log, where TIMESTAMP is of the form YYYYMMMDD_HH_MM_SS.

Check the Oracle alert log for issues.
That's it.


Review the Oracle documentation (README.html) for back out procedures.
If there are errors, refer to the section called "Known Issues".

If catcpu.sql reports any Invalid Objects, compile the invalid objects as follows.

(For large numbers of objects, this compilation step can take some time. If you are applying this patch through the Oracle Enterprise Manager console, you will be prompted to run this compilation script.)

To check for invalid objects, execute the following statement: