New preupgrade.jar and changes in MOS Note:884522.1

We read and listen to your comments. And that’s why my team mate Byron has added a new preupgrade.jar and changes to MOS Note:884522.1. One reader commented that MOS Note:884522.1 (How to Download and Run Oracle’s Database Pre-Upgrade Utility) does not explain how to “run” the preupgrade tool even though it mentions this in the note’s title.

New preupgrade.jar and changes in MOS Note:884522.1

New preupgrade.jar and changes in MOS Note:884522.1

With MOS Note:884522.1 you can download always the most recent versions of the Oracle 18c and 12.2 preupgrade.jar tools, of the Oracle preupgrd.sql and utluppkg.sql. And you’ll even find the last utlu112i.sql for upgrades to Oracle

You should always download the most recent version of the preupgrade tool for your database version from MOS Note:884522.1. The version you get with a patch set or base release is usually much older than the version you can download as the installed default version has been built before a code freeze date. But the version available on MOS gets updated usually every other month.

New preupgrade.jar and changes in MOS Note:884522.1

New and improved instructions

Based on customer’s feedback Byron has adjusted the instructions to make it more clear on how to use each tool – and added links to the respective documentation pages. This way you’ll find now the correct information on how to use the tool for each version.

Download Instructions

See the table in MOS Note:884522.1 to determine which version of the pre-upgrade script you need.  It will depend on which version you are upgrading from, and which version you are upgrading to.

For upgrade-to version 12.1.*, save the zipfile to a directory that will be accessible when you connect to your upgrade-from database and then unzip the file.

If the upgrade-to version is 12.2 or higher, then save the file to your target $ORACLE_HOME/rdbms/admin directory and then unzip the file. It could be your source or target $ORACLE_HOME.

And finally, for upgrade-to version or earlier, copy all of the download files to some directory that will be accessible when you connect to your upgrade-from database.

Script Execution Steps

To execute the preupgrade tool itself, see the Database Upgrade Guide for your upgrade-to version:

Further Information

For a complete list of preupgrade checks execute by each tool see:



Share this:

8 thoughts on “New preupgrade.jar and changes in MOS Note:884522.1

  1. Helo Mike,
    I’m confused: I HAVE TO unzip the zip file in 12.2 ORACLE_HOME ( so I have to have 12.2 OH installed)
    or (from doc 12.2 databases see: Upgrade guide to 12.2 ) I “can also copy the preupgrade.jar binaries to a path of your choosing. For example: /tmp/preupgrade.jar” – and I don’t need 12.2 binaries installed

    I it is important because we want to check db 2-3 weeks before upgrade and plan to install binaries is 1 week before upgrade.
    Thank you,

    • Leszek,

      Byron changed the note’s content overnight again. You – of course – don’t need a 12.2 or whatever home on your source. It will work with your old home’s JAVA installation and you can copy and unzip it anywhere. I adjust the blog post to match with the note’s recent changes.
      For convenience reasons I would unzip it into the ?/rdbms/admin of your source – makes life easier.

      Sorry for the confusion!


  2. Mike,
    Does the latest preupgrade.jar work for upgrade to 18c?
    Is there a MOS note identifying manual upgrade checklist to 18c (like MOS note 2173141.1 or is this note good enough for 18c)?
    Is there any documentation on what checks the preupgrade.jar performs? I am going through the manual upgrade checklist MOS Note 2173141.1 and there are many checks. For example, does preupgrade.jar check for materialized views?


  3. Hi
    preupgrade fail if a PDB is open in Read Only even if this PDB is not included in the “-c” argument. Looks like the script runs on all PDBs and ignore the -C.

    $ORACLE_HOME/jdk/bin/java -jar /u01/app/oracle/product/ TERMINAL TEXT -C ‘PDB2’

    File: dir_preUpgrade_catCon1.log Line: 73 –> error: ORA-16000: database or pluggable database open for read-only access

    File: dir_preUpgrade_catCon1.log Line: 74 –> error: ORA-06512: at line 1
    ERROR – Unable to run the preupgrade due to: please see the log files for further information.

    • Ned,

      please try:
      java -jar $OH18/rdbms/admin/preupgrade.jar -C “PDB2” TEXT TERMINAL

      I tried it in your order as well – and it still works for me.
      I use it against an database with 3 PDBs, one opened read-only, the others read-write.

      If that does not work for you, could you try the Oracle 18c preupgrade.jar please?

      Thanks and sorry for the inconvenience!

      PS: This is from my CDB:

      Connected to:
      Oracle Database 12c Enterprise Edition Release – 64bit Production
      With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

      SQL> show pdbs

      ———- —————————— ———- ———-

  4. Hi Mike,

    The 18c preupgrade.jar work if there is a Read Only PDB, but the script still runs for all PDBs (including PDB$SEED, it re-open it in RW) even when we use -C arg.
    It takes long time when there are over 200 PDBs in the CDB.
    Can it be changed to run for 1 PDB?



Leave a Reply

Your email address will not be published. Required fields are marked *

* Checkbox to comply with GDPR is required


I agree

This site uses Akismet to reduce spam. Learn how your comment data is processed.