- Introduction:
- Using DBUA (Database Upgrade Assistant)
- Using Manual method
- Using autoupgrade.jar
In this article we will use autoupgrade.jar method for upgrade.
- 12c binary installed with database.
- 19c binary installed without database.
- Java version should be 8 or later.
- Download latest autoupgrade.jar file. Click here
- Sufficient disk space for tablespace & archive growth.
- Minimum 6 hrs downtime for Production database.
Hostname | devdb.oraeasy.com |
---|---|
Database Name | DEVDB |
Database Version | 12c(12.2.0.1) |
CDB/PDB | Yes, Single Instance |
Oracle Home | /u01/app/oracle/product/12c/db_1 |
Datafile Location | /u01/app/oracle/oradata/devdb |
Database Version | 19c (19.3.0.0.0) |
---|---|
Oracle Home | /u01/app/oracle/product/19c/db_home |
1. Take precheck at source.
First create a table with test user so that data can be validated post upgradation:
SQL> show user
USER is "TEST"
SQL>
SQL> def
DEFINE _DATE = "31-JUL-25" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "DEVDBPDB" (CHAR)
DEFINE _USER = "TEST" (CHAR)
DEFINE _PRIVILEGE = "" (CHAR)
DEFINE _SQLPLUS_RELEASE = "1202000100" (CHAR)
DEFINE _EDITOR = "vi" (CHAR)
DEFINE _O_VERSION = "Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production" (CHAR)
DEFINE _O_RELEASE = "1202000100" (CHAR)
SQL>
SQL> CREATE TABLE COMPANY (EMP_ID INT,NAME VARCHAR(255), COMPANY VARCHAR(255));
Table created.
SQL>
SQL> INSERT INTO COMPANY VALUES (101,'Yash','WIPRO');
1 row created.
SQL>
SQL> INSERT INTO COMPANY VALUES (102,'Vijay','AIRTEL');
1 row created.
SQL> INSERT INTO COMPANY VALUES (103,'Riya','TCS');
1 row created.
SQL> commit;
Commit complete.
SQL> select count(*) from COMPANY;
COUNT(*)
----------
3
SQL> exit
Disconnected from Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
Now take Precheck like Tablespace, Invalid object count & Registery Components:
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 DEVDBPDB READ WRITE NO
SQL> set lines 200 pages 1000
SQL> select t.tablespace, t.totalspace as " Totalspace(MB)",
round((t.totalspace-nvl(fs.freespace,0)),2) as "Used Space(MB)",
nvl(fs.freespace,0) as "Freespace(MB)",
round(((t.totalspace-nvl(fs.freespace,0))/t.totalspace)*100,2) as "%Used",
round((nvl(fs.freespace,0)/t.totalspace)*100,2) as "% Free"
from
(select round(sum(d.bytes)/(1024*1024)) as totalspace,d.tablespace_name tablespace
from dba_data_files d
group by d.tablespace_name) t,
(select round(sum(f.bytes)/(1024*1024)) as freespace,f.tablespace_name tablespace
from dba_free_space f
group by f.tablespace_name) fs
where t.tablespace=fs.tablespace (+)
order by "% Free";
SQL>
TABLESPACE Totalspace(MB) Used Space(MB) Freespace(MB) %Used % Free
------------------------------ --------------- -------------- ------------- ---------- ----------
SYSTEM 800 796 4 99.5 .5
UNDOTBS1 70 66 4 94.29 5.71
SYSAUX 470 442 28 94.04 5.96
USERS 5 1 4 20 80
SQL> select count(*) from dba_objects where status='INVALID';
COUNT(*)
----------
0
SQL> col COMP_ID for a10
SQL> col COMP_NAME for a40
SQL> col VERSION for a15
SQL> set lines 180
SQL> set pages 9998
SQL> select COMP_ID,COMP_NAME,VERSION,STATUS from dba_registry;
COMP_ID COMP_NAME VERSION STATUS
---------- ---------------------------------------- --------------- ---------------
CATALOG Oracle Database Catalog Views 12.2.0.1.0 VALID
CATPROC Oracle Database Packages and Types 12.2.0.1.0 VALID
JAVAVM JServer JAVA Virtual Machine 12.2.0.1.0 VALID
XML Oracle XDK 12.2.0.1.0 VALID
CATJAVA Oracle Database Java Packages 12.2.0.1.0 VALID
APS OLAP Analytic Workspace 12.2.0.1.0 VALID
RAC Oracle Real Application Clusters 12.2.0.1.0 OPTION OFF
XDB Oracle XML Database 12.2.0.1.0 VALID
OWM Oracle Workspace Manager 12.2.0.1.0 VALID
CONTEXT Oracle Text 12.2.0.1.0 VALID
ORDIM Oracle Multimedia 12.2.0.1.0 VALID
SDO Spatial 12.2.0.1.0 VALID
XOQ Oracle OLAP API 12.2.0.1.0 VALID
OLS Oracle Label Security 12.2.0.1.0 VALID
DV Oracle Database Vault 12.2.0.1.0 VALID
15 rows selected.
SQL>
==> For PDB.
SQL> alter session set container=DEVDBPDB;
Session altered.
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
3 DEVDBPDB READ WRITE NO
SQL> set lines 200 pages 1000
SQL> select t.tablespace, t.totalspace as " Totalspace(MB)",
round((t.totalspace-nvl(fs.freespace,0)),2) as "Used Space(MB)",
nvl(fs.freespace,0) as "Freespace(MB)",
round(((t.totalspace-nvl(fs.freespace,0))/t.totalspace)*100,2) as "%Used",
round((nvl(fs.freespace,0)/t.totalspace)*100,2) as "% Free"
from
(select round(sum(d.bytes)/(1024*1024)) as totalspace,d.tablespace_name tablespace
from dba_data_files d
group by d.tablespace_name) t,
(select round(sum(f.bytes)/(1024*1024)) as freespace,f.tablespace_name tablespace
from dba_free_space f
group by f.tablespace_name) fs
where t.tablespace=fs.tablespace (+)
order by "% Free";
SQL>
SQL> select count(*) from dba_objects where status='INVALID';
COUNT(*)
----------
0
SQL> select COMP_ID,COMP_NAME,VERSION,STATUS from dba_registry;
COMP_ID COMP_NAME VERSION STATUS
---------- ---------------------------------------- --------------- -----------------
CATALOG Oracle Database Catalog Views 12.2.0.1.0 VALID
CATPROC Oracle Database Packages and Types 12.2.0.1.0 VALID
JAVAVM JServer JAVA Virtual Machine 12.2.0.1.0 VALID
XML Oracle XDK 12.2.0.1.0 VALID
CATJAVA Oracle Database Java Packages 12.2.0.1.0 VALID
APS OLAP Analytic Workspace 12.2.0.1.0 VALID
RAC Oracle Real Application Clusters 12.2.0.1.0 OPTION OFF
XDB Oracle XML Database 12.2.0.1.0 VALID
OWM Oracle Workspace Manager 12.2.0.1.0 VALID
CONTEXT Oracle Text 12.2.0.1.0 VALID
ORDIM Oracle Multimedia 12.2.0.1.0 VALID
SDO Spatial 12.2.0.1.0 VALID
XOQ Oracle OLAP API 12.2.0.1.0 VALID
OLS Oracle Label Security 12.2.0.1.0 VALID
DV Oracle Database Vault 12.2.0.1.0 VALID
15 rows selected.
2. Now we need to enable flashback log if not enabled. Also set enough FRA size.
SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 10
Next log sequence to archive 12
Current log sequence 12
SQL>
SQL> select flashback_on from v$database;
FLASHBACK_ON
------------------
NO
SQL>
SQL> alter database flashback on;
Database altered.
SQL> select flashback_on from v$database;
FLASHBACK_ON
------------------
YES
SQL> select name,open_mode,log_mode from v$database;
NAME OPEN_MODE LOG_MODE
--------- -------------------- ------------
DEVDB READ WRITE ARCHIVELOG
SQL> show parameter compatible
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
compatible string 12.2.0
noncdb_compatible boolean FALSE
SQL> show parameter recovery
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /u01/app/oracle/fast_recovery_
area/devdb
db_recovery_file_dest_size big integer 5G
db_unrecoverable_scn_tracking boolean TRUE
recovery_parallelism integer 0
remote_recovery_file_dest string
SQL>
SQL>
SQL> alter system set db_recovery_file_dest_size=15G;
System altered.
SQL> show parameter recovery
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /u01/app/oracle/fast_recovery_
area/devdb
db_recovery_file_dest_size big integer 15G
db_unrecoverable_scn_tracking boolean TRUE
recovery_parallelism integer 0
remote_recovery_file_dest string
SQL>
3. Now check the java version and update the latest autoupgrade.jar.
[oracle@devdb ~]$ java -version
openjdk version "1.8.0_102"
OpenJDK Runtime Environment (build 1.8.0_102-b14)
OpenJDK 64-Bit Server VM (build 25.102-b14, mixed mode)
[oracle@devdb ~]$
[oracle@devdb ~]$
[oracle@devdb ~]$ /u01/app/oracle/product/19c/db_home/jdk/bin/java -jar /u01/app/oracle/product/19c/db_home/rdbms/admin/autoupgrade.jar -version
build.version 20190207
build.date 2019/02/07 12:35:56
build.label RDBMS_PT.AUTOUPGRADE_LINUX.X64_190205.1800
[oracle@devdb ~]$ cd /u01/app/oracle/product/19c/db_home/rdbms/admin
[oracle@devdb admin]$ ls -lrth autoupgrade.jar
-rw-r--r--. 1 oracle oinstall 3.3M Feb 9 2019 autoupgrade.jar
[oracle@devdb admin]$
[oracle@devdb admin]$ mv autoupgrade.jar autoupgrade_bkp.jar
[oracle@devdb admin]$ pwd
/u01/app/oracle/product/19c/db_home/rdbms/admin
[oracle@devdb admin]$ ls -lrth autoupgrade*
-rw-r--r--. 1 oracle oinstall 3.3M Feb 9 2019 autoupgrade_bkp.jar
-rw-r--r--. 1 oracle oinstall 2.3M Jul 31 11:55 autoupgrade.jar
[oracle@devdb admin]$ /u01/app/oracle/product/19c/db_home/jdk/bin/java -jar /u01/app/oracle/product/19c/db_home/rdbms/admin/autoupgrade.jar -version
build.hash e84c9c2
build.version 19.10.0
build.date 2020/10/23 10:36:46
build.max_target_version 19
build.supported_target_versions 12.2,18,19
build.type production
[oracle@devdb admin]$
4. Now create the sample config file and edit that file according to our environment.
[oracle@devdb ~]$ mkdir upgrade19c
[oracle@devdb ~]$ cd upgrade19c/
[oracle@devdb upgrade19c]$ pwd
/home/oracle/upgrade19c
[oracle@devdb upgrade19c]$
[oracle@devdb upgrade19c]$ /u01/app/oracle/product/19c/db_home/jdk/bin/java -jar /u01/app/oracle/product/19c/db_home/rdbms/admin/autoupgrade.jar -create_sample_file config
Created sample configuration file /home/oracle/upgrade19c/sample_config.cfg
[oracle@devdb upgrade19c]$
[oracle@devdb upgrade19c]$ cp sample_config.cfg devdb_upg.cfg
[oracle@devdb upgrade19c]$ vi devdb_upg.cfg
[oracle@devdb upgrade19c]$ cat devdb_upg.cfg
#
# sample config file
#
# build version 19.10.0
# build date 2020/10/23 10:36:46
#
#
# Global configurations
#
# This directory will include the following
# (1) AutoUpgrade's global directory
# (2) Any logs, not directly tied to a job
# (3) Config files
# (4) progress.json and status.json
global.autoupg_log_dir=/home/oracle/upgrade19c/upg_logs
#
# Database number 1
#
upg1.dbname=devdb
upg1.start_time=NOW
upg1.source_home=/u01/app/oracle/product/12c/db_1
upg1.target_home=/u01/app/oracle/product/19c/db_home
upg1.sid=devdb
upg1.log_dir=/home/oracle/upgrade19c/upg_logs/devdb
upg1.upgrade_node=devdb.oraeasy.com
upg1.target_version=19
upg1.run_utlrp=yes
upg1.timezone_upg=yes
[oracle@devdb upgrade19c]$
5. Now run the autoupgrade.jar in analyze mode to anlyze the upgrade for any expected issues.
[oracle@devdb upgrade19c]$ export ORACLE_HOME=/u01/app/oracle/product/19c/db_home
[oracle@devdb upgrade19c]$ echo $ORACLE_HOME
/u01/app/oracle/product/19c/db_home
[oracle@devdb upgrade19c]$ ls
devdb_upg.cfg sample_config.cfg
[oracle@devdb upgrade19c]$ $ORACLE_HOME/jdk/bin/java -jar $ORACLE_HOME/rdbms/admin/autoupgrade.jar -config devdb_upg.cfg -mode analyze
AutoUpgrade tool launched with default options
Processing config file ...
+--------------------------------+
| Starting AutoUpgrade execution |
+--------------------------------+
1 databases will be analyzed
Type 'help' to list console commands
upg>
upg> lsj
+----+-------+---------+---------+-------+--------------+--------+----------------------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME| UPDATED| MESSAGE|
+----+-------+---------+---------+-------+--------------+--------+----------------------------+
| 100| devdb|PRECHECKS|PREPARING|RUNNING|25/07/31 12:10|12:10:33|Loading database information|
+----+-------+---------+---------+-------+--------------+--------+----------------------------+
Total jobs 1
upg>
upg> lsj
+----+-------+---------+---------+-------+--------------+--------+----------------------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME| UPDATED| MESSAGE|
+----+-------+---------+---------+-------+--------------+--------+----------------------------+
| 100| devdb|PRECHECKS|PREPARING|RUNNING|25/07/31 12:10|12:10:33|Loading database information|
+----+-------+---------+---------+-------+--------------+--------+----------------------------+
Total jobs 1
upg>
upg> Job 100 completed
------------------- Final Summary --------------------
Number of databases [ 1 ]
Jobs finished successfully [1]
Jobs failed [0]
Jobs pending [0]
------------- JOBS FINISHED SUCCESSFULLY -------------
Job 100 for devdb
[oracle@devdb upgrade19c]$
We can view the logs at the location defined in config file.6. Now run the autoupgrade.jar in deploy mode to start the actual upgrade process.
[oracle@devdb upgrade19c]$ export ORACLE_HOME=/u01/app/oracle/product/19c/db_home
[oracle@devdb upgrade19c]$
[oracle@devdb upgrade19c]$ echo $ORACLE_HOME
/u01/app/oracle/product/19c/db_home
[oracle@devdb upgrade19c]$
[oracle@devdb upgrade19c]$ $ORACLE_HOME/jdk/bin/java -jar $ORACLE_HOME/rdbms/admin/autoupgrade.jar -config devdb_upg.cfg -mode DEPLOY
AutoUpgrade tool launched with default options
Processing config file ...
+--------------------------------+
| Starting AutoUpgrade execution |
+--------------------------------+
1 databases will be processed
Type 'help' to list console commands
upg>
upg> lsj
+----+-------+---------+---------+-------+--------------+--------+----------------------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME| UPDATED| MESSAGE|
+----+-------+---------+---------+-------+--------------+--------+----------------------------+
| 101| devdb|PRECHECKS|PREPARING|RUNNING|25/07/31 12:28|12:28:27|Loading database information|
+----+-------+---------+---------+-------+--------------+--------+----------------------------+
Total jobs 1
upg>
upg> lsj
+----+-------+---------+---------+-------+--------------+--------+-------------+
|Job#|DB_NAME| STAGE|OPERATION| STATUS| START_TIME| UPDATED| MESSAGE|
+----+-------+---------+---------+-------+--------------+--------+-------------+
| 101| devdb|PREFIXUPS|EXECUTING|RUNNING|25/07/31 12:28|12:29:22|Remaining 6/6|
+----+-------+---------+---------+-------+--------------+--------+-------------+
Total jobs 1
7. Now you can view the job status like below and check logs.
upg>
upg> status -job 101
Progress
-----------------------------------
Start time: 25/07/31 12:28
Elapsed (min): 19
End time: N/A
Last update: 2025-07-31T12:47:28.458
Stage: DBUPGRADE
Operation: EXECUTING
Status: RUNNING
Pending stages: 4
Stage summary:
SETUP <1 min
GRP <1 min
PREUPGRADE <1 min
PRECHECKS <1 min
PREFIXUPS 4 min
DRAIN <1 min
DBUPGRADE 13 min (IN PROGRESS)
Job Logs Locations
-----------------------------------
Logs Base: /home/oracle/upgrade19c/upg_logs/devdb/devdb
Job logs: /home/oracle/upgrade19c/upg_logs/devdb/devdb/101
Stage logs: /home/oracle/upgrade19c/upg_logs/devdb/devdb/101/dbupgrade
TimeZone: /home/oracle/upgrade19c/upg_logs/devdb/devdb/temp
Additional information
-----------------------------------
Details:
[Upgrading] is [14%] completed for [devdb-cdb$root]
+---------+---------------+
|CONTAINER| PERCENTAGE|
+---------+---------------+
| CDB$ROOT| UPGRADE [14%]|
| PDB$SEED|UPGRADE PENDING|
| DEVDBPDB|UPGRADE PENDING|
+---------+---------------+
Error Details:
None
upg> /
Progress
-----------------------------------
Start time: 25/07/31 12:28
Elapsed (min): 92
End time: N/A
Last update: 2025-07-31T14:00:17.118
Stage: DBUPGRADE
Operation: EXECUTING
Status: RUNNING
Pending stages: 4
Stage summary:
SETUP <1 min
GRP <1 min
PREUPGRADE <1 min
PRECHECKS <1 min
PREFIXUPS 4 min
DRAIN <1 min
DBUPGRADE 85 min (IN PROGRESS)
Job Logs Locations
-----------------------------------
Logs Base: /home/oracle/upgrade19c/upg_logs/devdb/devdb
Job logs: /home/oracle/upgrade19c/upg_logs/devdb/devdb/101
Stage logs: /home/oracle/upgrade19c/upg_logs/devdb/devdb/101/dbupgrade
TimeZone: /home/oracle/upgrade19c/upg_logs/devdb/devdb/temp
Additional information
-----------------------------------
Details:
[Compiling] is [88%] completed for [devdb-cdb$root] objects remaining is [347]
+---------+---------------+
|CONTAINER| PERCENTAGE|
+---------+---------------+
| CDB$ROOT| COMPILE [88%]|
| PDB$SEED|UPGRADE PENDING|
| DEVDBPDB|UPGRADE PENDING|
+---------+---------------+
Error Details:
None
upg>
upg> /
Progress
-----------------------------------
Start time: 25/07/31 12:28
Elapsed (min): 117
End time: N/A
Last update: 2025-07-31T14:22:24.887
Stage: DBUPGRADE
Operation: EXECUTING
Status: RUNNING
Pending stages: 4
Stage summary:
SETUP <1 min
GRP <1 min
PREUPGRADE <1 min
PRECHECKS <1 min
PREFIXUPS 4 min
DRAIN <1 min
DBUPGRADE 110 min (IN PROGRESS)
Job Logs Locations
-----------------------------------
Logs Base: /home/oracle/upgrade19c/upg_logs/devdb/devdb
Job logs: /home/oracle/upgrade19c/upg_logs/devdb/devdb/101
Stage logs: /home/oracle/upgrade19c/upg_logs/devdb/devdb/101/dbupgrade
TimeZone: /home/oracle/upgrade19c/upg_logs/devdb/devdb/temp
Additional information
-----------------------------------
Details:
[Upgrading] is [10%] completed for [devdb-devdbpdb]
+---------+--------------------------------------+
|CONTAINER| PERCENTAGE|
+---------+--------------------------------------+
| CDB$ROOT|SUCCESSFULLY UPGRADED [devdb-cdb$root]|
| PDB$SEED| UPGRADE [10%]|
| DEVDBPDB| UPGRADE [10%]|
+---------+--------------------------------------+
Error Details:
None
upg>
8. Once upgrade gets completed. We will get output like below.
upg> Job 101 completed
------------------- Final Summary --------------------
Number of databases [ 1 ]
Jobs finished successfully [1]
Jobs failed [0]
Jobs pending [0]
------------- JOBS FINISHED SUCCESSFULLY -------------
Job 101 for devdb
---- Drop GRP at your convenience once you consider it is no longer needed ----
Drop GRP from devdb: drop restore point AUTOUPGRADE_9212_DEVDB122010
9. Now take a bounce of database and run the postcheck.
[oracle@devdb ~]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Thu Jul 31 16:20:48 2025
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
SQL> shut immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>
SQL> startup
ORACLE instance started.
Total System Global Area 1174405120 bytes
Fixed Size 9134080 bytes
Variable Size 654311424 bytes
Database Buffers 503316480 bytes
Redo Buffers 7643136 bytes
Database mounted.
Database opened.
SQL>
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 DEVDBPDB READ WRITE NO
SQL>
SQL> SELECT version FROM v$timezone_file;
VERSION
----------
32
SQL> select count(1) from dba_objects where status='INVALID';
COUNT(1)
----------
0
SQL>
SQL> col COMP_ID for a10
SQL> col COMP_NAME for a40
SQL> col VERSION for a15
SQL> set lines 180
SQL> set pages 999
SQL> select COMP_ID,COMP_NAME,VERSION,STATUS from dba_registry;
COMP_ID COMP_NAME VERSION STATUS
---------- ---------------------------------------- --------------- --------------------------------------------
CATALOG Oracle Database Catalog Views 19.0.0.0.0 VALID
CATPROC Oracle Database Packages and Types 19.0.0.0.0 VALID
JAVAVM JServer JAVA Virtual Machine 19.0.0.0.0 VALID
XML Oracle XDK 19.0.0.0.0 VALID
CATJAVA Oracle Database Java Packages 19.0.0.0.0 VALID
APS OLAP Analytic Workspace 19.0.0.0.0 VALID
RAC Oracle Real Application Clusters 19.0.0.0.0 OPTION OFF
XDB Oracle XML Database 19.0.0.0.0 VALID
OWM Oracle Workspace Manager 19.0.0.0.0 VALID
CONTEXT Oracle Text 19.0.0.0.0 VALID
ORDIM Oracle Multimedia 19.0.0.0.0 VALID
SDO Spatial 19.0.0.0.0 VALID
XOQ Oracle OLAP API 19.0.0.0.0 VALID
OLS Oracle Label Security 19.0.0.0.0 VALID
DV Oracle Database Vault 19.0.0.0.0 VALID
15 rows selected.
SQL>
==> For PDB.
SQL> alter session set container=DEVDBPDB;
Session altered.
SQL>
SQL> SELECT version FROM v$timezone_file;
VERSION
--------
32
SQL> select count(1) from dba_objects where status='INVALID';
COUNT(1)
----------
0
SQL> select COMP_ID,COMP_NAME,VERSION,STATUS from dba_registry;
COMP_ID COMP_NAME VERSION STATUS
---------- ---------------------------------------- ------------------------------ --------------------------------------------
CATALOG Oracle Database Catalog Views 19.0.0.0.0 VALID
CATPROC Oracle Database Packages and Types 19.0.0.0.0 VALID
JAVAVM JServer JAVA Virtual Machine 19.0.0.0.0 VALID
XML Oracle XDK 19.0.0.0.0 VALID
CATJAVA Oracle Database Java Packages 19.0.0.0.0 VALID
APS OLAP Analytic Workspace 19.0.0.0.0 VALID
RAC Oracle Real Application Clusters 19.0.0.0.0 OPTION OFF
XDB Oracle XML Database 19.0.0.0.0 VALID
OWM Oracle Workspace Manager 19.0.0.0.0 VALID
CONTEXT Oracle Text 19.0.0.0.0 VALID
ORDIM Oracle Multimedia 19.0.0.0.0 VALID
SDO Spatial 19.0.0.0.0 VALID
XOQ Oracle OLAP API 19.0.0.0.0 VALID
OLS Oracle Label Security 19.0.0.0.0 VALID
DV Oracle Database Vault 19.0.0.0.0 VALID
15 rows selected.
Please note if you find any registery component invalid then run @ORACLE_HOME/rdbms/admin/utlrp.sql to compile the component.
10. Now verify the table data.
[oracle@devdb ~]$ sqlplus test@DEVDBPDB
SQL*Plus: Release 19.0.0.0.0 - Production on Thu Jul 31 16:25:48 2025
Version 19.3.0.0.0
Copyright (c) 1982, 2016, Oracle. All rights reserved.
Enter password:
Last Successful login time: Mon Jul 31 2025 10:20:09 +05:30
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
SQL> show user
USER is "TEST"
SQL>
SQL> def
DEFINE _DATE = "31-JUL-25" (CHAR)
DEFINE _CONNECT_IDENTIFIER = "DEVDBPDB" (CHAR)
DEFINE _USER = "TEST" (CHAR)
DEFINE _PRIVILEGE = "" (CHAR)
DEFINE _SQLPLUS_RELEASE = "1202000100" (CHAR)
DEFINE _EDITOR = "vi" (CHAR)
DEFINE _O_VERSION = "Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production" (CHAR)
DEFINE _O_RELEASE = "1900000000" (CHAR)
SQL>
SQL> select count(*) from COMPANY;
COUNT(*)
----------
3
SQL>
11. Now drop the flashback restore point.
SQL> col name for a20
SQL> col GUARANTEE_FLASHBACK_DATABASE for a10
SQL> col TIME for a60
SQL> set lines 190
SQL> select NAME,GUARANTEE_FLASHBACK_DATABASE,TIME from V$restore_point;
NAME GUA TIME
---------------------------------------- --- ----------------------------------------
AUTOUPGRADE_9212_DEVDB122010 YES 31-JUL-25 12.28.27.000000000 PM
SQL>
SQL> drop restore point AUTOUPGRADE_9212_DEVDB122010;
Restore point dropped.
SQL> select NAME,GUARANTEE_FLASHBACK_DATABASE,TIME from V$restore_point;
no rows selected
SQL>
12. Now update COMPATIBLE parameter.
SQL> show parameter COMPATIBLE
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
compatible string 12.2.0
noncdb_compatible boolean FALSE
SQL>
SQL> ALTER SYSTEM SET COMPATIBLE = '19.0.0' SCOPE=SPFILE;
System altered.
SQL> shut immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>
SQL> startup
ORACLE instance started.
Total System Global Area 1174405120 bytes
Fixed Size 9134080 bytes
Variable Size 771751936 bytes
Database Buffers 385875968 bytes
Redo Buffers 7643136 bytes
Database mounted.
Database opened.
SQL>
SQL> show parameter COMPATIBLE
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
compatible string 19.0.0
noncdb_compatible boolean FALSE
SQL>
SQL> select name,open_mode,version from v$database,v$instance;
NAME OPEN_MODE VERSION
-------------------- -------------------- ---------------
DEVDB READ WRITE 19.0.0.0.0
SQL>
Now 12c to 19c upgrade activity has been successfully completed.
Thank you for reading!
I hope this content has been helpful to you. Your feedback and suggestions are always welcome — feel free to leave a comment or reach out with any queries.
Abhishek Shrivastava
Comments
Post a Comment