1.
Introduction
Oracle Database 19c is
Oracle’s long-term support (LTS) release, designed to provide enhanced
stability, security, performance, and extended support for enterprise
workloads. Upgrading existing databases from Oracle 12c to Oracle 19c is a
critical step for organizations aiming to maintain vendor support, leverage
modern database capabilities, and ensure long-term operational reliability.
In modern enterprise
environments—where database stability, compatibility, and minimal downtime are
business-critical—performing a controlled and validated upgrade from Oracle 12c
to Oracle 19c ensures:
This document provides a complete
end-to-end implementation guide for upgrading an Oracle Database from version
12c to 19c in a production environment. The upgrade process includes
database preparation, backup and recovery, software compatibility alignment,
dictionary upgrade, and post-upgrade validation to ensure data integrity and
system stability.
2.
Objective
The primary objectives of this upgrade are:
- Upgrade
Oracle Database from 12c to 19c
- Migrate
the database to a new server
- Ensure
data integrity and consistency
- Minimize
downtime and risk
- Align
the database with Oracle-supported long-term releases
3.
Scope
This document covers:
- Single-instance
database upgrade
- Cross-server
migration
- RMAN-based
backup and restore
- Manual
upgrade using catupgrd.sql
This document does not cover:
- Oracle
RAC upgrade
- Multitenant
(CDB/PDB) conversion
- AutoUpgrade
or DBUA-based upgrades
4.
Prerequisites
Before starting the upgrade, ensure the following
prerequisites are met:
- Source
database running on Oracle 12c (12.2.0.1)
- Target
server installed with Oracle Database 19c software
- Sufficient
disk space for datafiles, archivelogs, and backups
- Valid
Oracle user permissions (sysdba)
- RMAN
backup success verification
- Network
connectivity between source and target servers
- Database
in ARCHIVELOG mode
5.
Environment Details
Source Environment (12c)
- Server
Name: srv5
- Database
Name: PROD
- Oracle
Version: 12.2.0.1
- Database
Type: Single Instance
- OS
User: oracle
Target Environment (19c)
- Server
Name: srv6
- Database
Name: PROD
- Oracle
Version: 19.3.0.0.0
- Oracle
Home: /u01/app/oracle/product/19.0.0/dbhome_1
- OS
User: oracle
6.
Upgrade Methodology
The upgrade is performed using the following approach:
1.
Generate PFILE from source SPFILE
2.
Modify initialization parameters for 19c
3.
Take RMAN full backup of source database
4.
Transfer backup to target server
5.
Restore controlfile and database on target
6.
Perform recovery
7.
Start database in UPGRADE mode
8.
Run Oracle upgrade scripts
9.
Perform post-upgrade validation
7.1
Validate Source Database (Oracle 12c) – srv5
This step confirms the health, readiness, and compatibility of the
source database before initiating the upgrade. Performing these checks ensures
the database is in a stable state and that all required components are valid.
7.2 Take
Full RMAN Backup of Source Database (12c) – srv5
A complete RMAN backup is taken to ensure a consistent copy of the
database is available for restore on the target 19c server. This backup
includes datafiles, archivelogs, and the control file.
7.3 Transfer RMAN Backup to Target Server
(srv6) and Prepare Directory Structure
After completing the full
RMAN backup on the source server (srv5), the backup pieces must be securely
transferred to the target 19c server (srv6). This step ensures that all
required backup files—datafiles, archivelogs, and control file—are available
for the restore and upgrade process.
On Source (srv5)
On Target (srv6)
7.4 Create PFILE from
SPFILE and Prepare Initialization Parameters for 19c (Target Server)
Before restoring the
database on the 19c server, the initialization parameters must be aligned with
the new environment. Since the SPFILE from the 12c system cannot be used
directly on the 19c home, a PFILE is generated, reviewed, and transferred to
the target server for modification.
7.5 Modify PFILE for 19c, Start Instance,
and Restore Control File (srv6)
After transferring the
PFILE from the 12c environment, the parameters must be updated to match the 19c
server’s directory structure and compatibility requirements. Once updated, the
instance is started in NOMOUNT mode to allow the control file restore.
7.6 Restore and Recover
the Database Using RMAN (srv6)
With the control file
restored, the next step is to mount the database, catalog the backup pieces,
restore all datafiles, and perform media recovery using the archived logs.
7.7 Perform the Database Upgrade to Oracle
19c
With the database fully
restored and recovered on the 19c server, the next step is to perform the
actual upgrade of the data dictionary and internal database components. Oracle
provides the catupgrd.sql script, executed through the catctl.pl
utility, to automate and parallelize the upgrade process.
The upgrade process
executed all phases from 0 to 107, covering catalog updates, CATPROC rebuilds,
component upgrades, and post‑upgrade tasks. These phases ensure that every
internal database structure is migrated from the 12c format to the 19c data
dictionary model.
7.8 Post‑Upgrade
Validation of Oracle 19c Database (srv6)
After completing the
upgrade using catupgrd.sql, it is essential to verify that the database
has opened successfully in normal mode, all components are upgraded, and the
physical and logical structures remain intact. This step confirms the stability
and readiness of the upgraded 19c environment.
8.
Post-Upgrade Tasks
After the database has been successfully upgraded to Oracle 19c and
validated, several post‑upgrade tasks must be executed to ensure the
environment is fully optimized, stable, and ready for production use. These
tasks finalize the upgrade by recompiling invalid objects, refreshing
dictionary statistics, and confirming the database version
- Recompile
invalid objects:
@?/rdbms/admin/utlrp.sql
- Gather
dictionary statistics:
EXEC
DBMS_STATS.GATHER_DICTIONARY_STATS;
- Validate
database version:
SELECT version FROM
v$instance;
9.
Validation Checklist
- Database
opens successfully
- All
components show status as UPGRADED
- No
invalid system objects
- Application
connectivity tested
- Backup
jobs validated
10.
Risks and Mitigation
|
Risk |
Mitigation |
|
Upgrade failure |
Full RMAN backup available |
|
Missing archivelogs |
RESETLOGS and upgrade mode |
|
Incompatible parameters |
Pre-upgrade validation |
|
Downtime |
Planned maintenance window |
11.
Conclusion
This implementation successfully completes the upgrade
of the Oracle Database from version 12c to 19c, delivering a stable,
secure, and long-term supported database platform suitable for enterprise
environments.
By following a structured and validated upgrade
approach, the database transition was performed while ensuring data
integrity, system consistency, and operational continuity. The upgraded
environment benefits from Oracle 19c’s long-term support model, enhanced
performance optimizations, improved security features, and increased overall
reliability.
This upgrade aligns with enterprise best practices
for:
The successful completion of this upgrade ensures the
database environment is fully prepared to support mission-critical workloads,
meet organizational compliance requirements, and adapt to evolving business and
technology demands.
