Summary
This blog provides a visual, easy-to-follow guide for upgrading Oracle Database from 12c to 19c using the Database Upgrade Assistant (DBUA). You’ll learn about pre-upgrade tasks, GUI-based upgrade steps, and post-upgrade validations to ensure a successful migration.
Table of contents
Introduction
Oracle Database 19c is a long-term support version offering improved performance, stability, and security. Upgrading to 19c ensures extended support and compatibility with modern features. This post walks through upgrading your Oracle 12c database to 19c using DBUA, complete with visual placeholders.
Environment Setup
| Parameter | Value | 
| Hostname | <Your HostName> | 
| Database Name | <Your DBName> | 
| Current Version | 12.2.0.1 | 
| Oracle Home | /u01/app/oracle/product/12.2.0/db_1 | 
| Datafile Location | /path/to/oradata/CID | 
| Target Version | 19.4.0.0.0 | 
| Target Oracle Home | /u01/app/oracle/product/19.0.0/db_1 | 
Oracle 19c Database Upgrade from 12c Step-by-Step
1. Pre-Upgrade Tasks
💡Tip: Always perform a complete RMAN backup before upgrading.
rman target /
backup database plus archivelog;Backup Configuration Files
These files are critical for network and database connectivity.
Run the following commands:
cd /u01/app/oracle/product/12.2.0/db_1/network/admin/
cp -p listener.ora sqlnet.ora tnsnames.ora /u01/backup/
ls -ltr /u01/backup/*.ora
cd /u01/app/oracle/product/12.2.0/db_1/dbs/
cp -p spfileoracle12c.ora orapworacle12c /u01/backup/Run the 19c Pre-Install Package
Ensure all OS-level prerequisites are met:
yum install -y oracle-database-preinstall-19c
yum update -yEnable Xming and X11 forwarding to open the DBUA GUI.
Verify Tablespace Sizes
Check available free space in SYSTEM and SYSAUX tablespaces:
set line 1000
set pages 5000
col tablespace_name for a30
col file_name for a80
select c.tablespace_name,a.file_name,a.total_space,b.free_space, round(b.free_space/a.total_space *100,2) "Free%" from dba_data_files
 a, dba_free_space b where a.file_id=b.file_id(+) order by tablespace_name;Check for Invalid Objects
SELECT COUNT(*) FROM dba_objects WHERE status='INVALID';Gather Dictionary Stats
EXECUTE DBMS_STATS.GATHER_DICTIONARY_STATS;Create Flashback Restore Point
ALTER SYSTEM SET db_recovery_file_dest_size=10G;
CREATE RESTORE POINT pre_upgrade GUARANTEE FLASHBACK DATABASE;2. Install Oracle 19c Software
🧱 Step 1: Create Oracle 19c home and set permissions:
mkdir -p /u01/app/oracle/product/19.3/db_home
chown -R oracle:oinstall /u01/app/oracle🧩 Step 2: Download and unzip the software:
cd /u01/app/oracle/product/19.3/db_home
unzip -qo /tmp/LINUX.X64_193000_db_home.zip🛠️ Step 3: Run a silent install:
./runInstaller -ignorePrereq -waitforcompletion -silent \
-responseFile ${ORACLE_HOME}/install/response/db_install.rsp \
ORACLE_HOME=/u01/app/oracle/product/19.3/db_home \
ORACLE_BASE=/u01/app/oracle DECLINE_SECURITY_UPDATES=true3. Upgrade Using Database Upgrade Assistant (DBUA)
Launch DBUA from the 19c home:
cd /u01/app/oracle/product/19.3.0/db_home/bin
./dbuaStep 1: Select the database and provide SYSDBA credentials.

Step 2: Wait for prerequisite checks and resolve any issues.

Step 3: Choose upgrade and recovery options.


Step 4: Configure listener and network settings.

Step 5: Review the summary and start the upgrade.

Step 6: Wait for DBUA to complete the upgrade.

Step 7: Review the results, then click Close.

4. Post-Upgrade Tasks
📂 Verify /etc/oratab reflects the new 19c home:
cat /etc/oratab | grep -i prodCheck Database Components
SELECT COMP_ID, COMP_NAME, VERSION, STATUS FROM dba_registry;Drop Restore Point
DROP RESTORE POINT PRE_UPGRADE;Set COMPATIBLE Parameter
⚠️ Note: Only change this after confirming stability.
ALTER SYSTEM SET COMPATIBLE = '19.0.0' SCOPE=SPFILE;
SHUTDOWN IMMEDIATE;
STARTUP;Conclusion
Using DBUA for your Oracle upgrade provides an intuitive graphical interface that automates many manual tasks. After completion, always validate database status, check invalid objects, and run datapatch to apply the latest SQL patches.
Check out our Oracle Database Administration and Support Services.
Contact us for any questions.
 
				