Improvements to Data Dictionary Upgrade and Upgrade Status Displays
Oracle Database 12c includes improvements to the upgrade process, and to how upgrade status appears for the upgraded database.
- Upgrading the Data Dictionary in Parallel with Parallel Upgrade Utility
Upgrading the data dictionary in Oracle Database is now done in parallel with the Parallel Upgrade Utility, which speeds up the upgrade process. - Change to Upgrade Status Setting
Starting in Oracle Database 12c release 1 and later releases, the meaning of the UPGRADED status has changed. - Change to Status After Running the Recompilation utlrp.sql Script
To ensure that database users obtain expected performance after upgrades, Oracle recommends that you run theutlrp.sql
script.
Parent topic: Upgrading Oracle Database
Upgrading the Data Dictionary in Parallel with Parallel Upgrade Utility
Upgrading the data dictionary in Oracle Database is now done in parallel with the Parallel Upgrade Utility, which speeds up the upgrade process.
Instead of one SQL process loading the data dictionary, you can now have multiple processes, depending on your server’s CPU capacity. The Parallel Upgrade Utility (catctl.pl
, which you can run from the command line using dbupgrade
on Linux and Unix, and dbupgrade.com
on Windows) loads data into the dictionary as fast as possible, and defers any work that can be done in normal
mode instead of upgrade
mode. Upgrading the database using the Parallel Upgrade Utility reduces overall downtime.
Change to Upgrade Status Setting
Starting in Oracle Database 12c release 1 and later releases, the meaning of the UPGRADED status has changed.
When the upgrade is complete, and if there are no errors during the upgrade, then the status of the Oracle Server, Oracle Multimedia (ORDIM), Spatial (SDO) and XDB are all set to UPGRADED
. This behavior is different from releases earlier than 12.1. In earlier releases, the status of the Oracle Server, Oracle Multimedia (ORDIM), Spatial (SDO) and XDB was set to VALID
after upgrading. In 12.1 and later releases, the UPGRADED
status indicates that the data dictionary has loaded without any errors. If any errors are logged to registry$error
, then the status of the upgrade is set to INVALID
.
When the upgrade is complete and if there are no errors, then the status of the database is set to UPGRADED
. This behavior differs from earlier releases where the status of the database was set to VALID
after upgrading. The UPGRADED
status indicates that the data dictionary has been loaded without any errors. If any errors are logged to registry$error
, then the status of the upgrade is set to INVALID
.
Change to Status After Running the Recompilation utlrp.sql Script
To ensure that database users obtain expected performance after upgrades, Oracle recommends that you run the utlrp.sql
script.
In earlier releases of Oracle Database after upgrading a database, VALID
meant that all objects in the data dictionary have been recompiled and are ready for use. In Oracle Database 12c and later releases, obtaining a VALID
status has a different meaning. Running the utlrp.sql
script in normal mode recompiles data dictionary objects and moves the data dictionary from an UPGRADED
status to a VALID
status.
Oracle cannot guarantee that the database upgrade is valid unless utlrp.sql
has been run after upgrading and before starting the upgraded database for the first time. Not running utlrp.sql
after performing an upgrade forces data dictionary objects to compile during their first access. The first user accessing the database suffers the performance cost for each invalid object accessed during this initial access. After these invalid objects are recompiled, normal processing returns. Running utlrp.sql
ensures that the database is ready for use after upgrading. Any errors found are reported immediately. You can fix them before users of the upgraded database encounter problems.