Blog

Database upgrade methods to Oracle 19c | Upgrade Oracle 12c to 19c

Written by Vijayganesh Sivaprakasam | Aug 23, 2021 2:30:00 AM

Blog updated Feburary 2024

As a DBA for over two decades, I have learned a few things along the way. One is how to ensure the database has the maximum uptime possible without compromising its performance or integrity. Another is the importance of keeping Oracle database versions up to date with the latest patch fixes. Keeping database versions up to date can sometimes be challenging.
Any update requires you to create a plan including the following factors:
1. Why do we need to upgrade? (covered in Upgrade to 19c on Oracle Standard Edition blog)
2. How long is the current version supported?  (covered in Upgrade to 19c on Oracle Standard Edition blog)
3. Do I need to upgrade it to the latest version and release (RU/RURs or BP) 
4. What upgrade method should I follow if I upgrade from an older version to the newest version?


In this blog, I introduce the different database upgrade methods, considerations to take before upgrading, and upgrading using the Database Upgrade Assistant (DBUA).


Upgrade Oracle database from 10g/11g, 12c, 18c to 19c 

1.0 Do you need to upgrade to the latest version and release?

At Dbvisit, we always recommend customers run our latest versions since they include functionality and stability improvements. But your organization may have a ‘Version -1’ policy for software, including Oracle Databases.


Reasons for a Version -1 Policy
A ‘version -1’ or ‘release -1’ policy can be put in place to reduce risk, have access to more public domain knowledge, and improve application compatibility. There are some reasons why applications may not want the database to be upgraded. These include:

1. The application does not support the latest version or may not have been thoroughly tested yet.
2. There are performance impacts with the latest database versions from an application perspective (this is an extensive topic that is not under our scope and the biggest headache that application and database teams face).

2.0 Determining the right upgrade path for you

The upgrade path available will depend on your version. We know many of our Oracle SE customers are running older versions, such as 10g/11g through to 12c and 18c. Performing an upgrade of Oracle 12c to the 19c database version is recommended. Some of them are easy and direct, while others require more time and effort.

The below table from Oracle explains the direct upgrade methods available:


2.1 Learn about known issues after choosing your upgrade path

Once you have chosen an upgrade path, you should learn about the latest version’s known issues. Oracle support provides these in detail:

Oracle Database 19c Release Update & Release Update Revision January 2024 Known Issues (Doc ID 19202401.9 Oracle Support or Public Document ID 2521164.1

2.2 Learn about the issues fixed in the latest release

Once you have reviewed the known issues, we recommend also checking the issues fixed in the latest release. A few external articles provide details about the latest releases, bug fixes, and known issues. We recommend checking the Oracle support website for the most up-to-date information:

Database 19 Release Updates and Revisions Bugs Fixed Lists (Doc ID 2523220.1)


*Important* Never upgrade your production database directly

We highly recommend you include a test/development environment in your upgrade plan. Always complete the end-to-end application and performance testing before considering the upgrade of the production environment.

Diagram Reference from Oracle Database Upgrade Guide

 

3.0 The different methods of the upgrade process

  1. Database Upgrade Assistant (DBUA)
  2. Manual Command-line Upgrade (dBupgrade)
  3. Transportable Tablespaces
  4. Data Pump export/import
  5. Oracle Golden Gate (outside of our scope)


3.1 Comparison of the different upgrade methods

Most Oracle clients will use DBUA to upgrade as its graphical user interface steps you through the upgrade process. But in cases where you are also moving to new hardware, changing OS, or changing data layout, a different upgrade method will be required. 

The comparison table below from Oracle’s ‘Upgrade and Migrate to Oracle Database 19c’ white paper provides an overview of the methods and their use cases.

Upgrade Method Comparison Table


4.0 Example of upgrading with the database upgrade assistant

Below is an overview of the upgrade process using DBUA.

1 | Backup Your Database

Before the upgrade starts, create a database backup, including archive logs, and ensure that you have enough downtime arranged with the Application team to revert to this backup if the upgrade fails or if you encounter any issues. The downtime should have already been estimated based on the upgrade of your Test/Dev instances.

2 | Empty Recycle Bin & Gather Stats

Before the upgrade process, empty the recycle bin and gather stats. One of the recommendations is to export the stats as well.

Ensure you have enough free space in db_recovery_file_dest and make changes to db_recovery_file_dest_size if needed.

3 | Run Oracle’s Database Pre-Upgrade Utility

Run the pre-upgrade script using the below guide from Oracle support:

How to Download and Run Oracle's Database Pre-Upgrade Utility (Doc ID 884522.1)

The script output will provide you with two additional scripts:

  • preupgrade_fixups.sql (Must be run before the upgrade)
  • postupgrade_fixups.sql (Must be run after the upgrade)

4 | Install the Oracle 19c Database Software

Install the Oracle 19c Database software (You can do this before Step 1 since you must install it in a different Oracle Home location from your Oracle 12c Home.)

5 | Run the DBUA Utility

Run the DBUA utility to upgrade the database. The utility provides options for gathering stats before the upgrade, taking a database backup, creating a restore point, restoring the database to rollback, and creating custom scripts. 

6 | Run Post-Upgrade Script & Restart Database

After the upgrade is complete, run the postupgrade_fixups.sql and restart the database.

After completing the above steps, here are some post-upgrade steps:

  1. Ensure the application connects to the database (Move your SQLNet.ora, Listener.ora). The listener can be reconfigured during the DBUA process itself.
  2. Initiate a full backup of the database along with archive logs. 


5.0 Journey to a high-performance, highly resilient 19c Oracle SE solution

As mentioned above, check out the rest of our blog series outlining the benefits of 19c, the upgrade path for RAC customers, and upgrade methods:

  1. Upgrade to 19c on Oracle Standard Edition
  2. What's the Difference Between Oracle RAC and Oracle SE2HA? (Part 1)
  3. Add Resilience to Oracle SE2HA (or RAC) Clusters with Disaster Recovery (Part 2)
  4. Database Upgrade Methods to Oracle 19c (You're Here)
  5. Why Oracle 19c? 

Alternatively, you can take the next step to create a resilient architecture by taking a Test Drive of our product in your own online Oracle environment. We hope you found this blog helpful! If you have any questions or want to speak to an expert, reach out below.