Oracle 12c to 19c Database Upgrade
Upgrade Oracle databases from 12c to 19c step-by-step.
In this article, we will be looking at two most commonly used methods of upgrading Oracle database from 12c to 19c.
You can perform a direct upgrade to 19c from 11.2.0.4, 12.1.0.2, 12.2.0.1 and 18c
Pre-Upgrade Tasks
Backup your database before performing the upgrade and also check application compatibility with the new version of the Oracle database.
Run the 19c pre-install package on Linux to complete all OS level pre-requisites
yum install -y oracle-database-preinstall-19c
yum update -y
Connect to the database and verify tablespace sizes for upgrade. Make sure to have good free space in system and sysaux tablespaces
set line 1000
set pages 5000
col tablespace_name for a30
col file_name for a80
col free_space for 9999999
compute sum of total_space on report
compute sum of free_space on report
compute sum of MAX_SPACE on report
break on tablespace_name on report nodup
select c.tablespace_name,a.autoextensible,a.file_name,a.total_space,b.free_space, round(b.free_space/a.total_space *100,2) "Free%",a.max_space from (select file_id,file_name,sum(bytes)/1024/1024 total_space,sum(MAXBYTES)/1024/1024/1024 max_space,autoextensible from dba_data_files group by file_id,file_name,autoextensible) a,(select file_id,nvl(sum(bytes)/1024/1024,0) free_space from dba_free_space group by file_id) b, (select tablespace_name,file_id from dba_data_files) c where a.file_id=b.file_id(+) and a.file_id=c.file_id order by tablespace_name;
Check for Invalid objects and fix it using utlrp script
SQL> select count(*) from dba_objects where status='INVALID';
Gather DICTIONARY STATS
SET ECHO ON;
SET SERVEROUTPUT ON;
EXECUTE DBMS_STATS.GATHER_DICTIONARY_STATS;
Purge Recycle bin
PURGE DBA_RECYCLEBIN;
Refresh MVs
declare
list_failures integer(3) :=0;
begin
DBMS_MVIEW.REFRESH_ALL_MVIEWS(list_failures,'C','', TRUE, FALSE);
end;
/
Verify archive log dest size and Create Flashback Guaranteed Restore Point
archive log list
alter system set db_recovery_file_dest_size=10G;
select flashback_on from v$database;
select name,open_mode,log_mode from v$database;
show parameter compatible
show parameter recovery
select * from V$restore_point;
create restore point pre_upgrade guarantee flashback database;
col name for a20
col GUARANTEE_FLASHBACK_DATABASE for a10
col TIME for a60
set lines 190
select NAME,GUARANTEE_FLASHBACK_DATABASE,TIME from V$restore_point;
Install Oracle 19c
Create 19c home directory and give ownership to Oracle user
mkdir -p /u01/app/oracle/product/19.3/db_home
Download and Install Oracle 19c Software
cd /u01/app/oracle/product/19.3/db_home
unzip -qo /tmp/LINUX.X64_193000_db_home.zip
#for silent installation
./runInstaller -ignorePrereq -waitforcompletion -silent \
-responseFile ${ORACLE_HOME}/install/response/db_install.rsp \
oracle.install.option=INSTALL_DB_SWONLY \
ORACLE_HOSTNAME=${HOSTNAME} \
UNIX_GROUP_NAME=oinstall \
INVENTORY_LOCATION=/u01/app/oraInventory \
SELECTED_LANGUAGES=en,en_GB \
ORACLE_HOME=/u01/app/oracle/product/19.3/db_home \
ORACLE_BASE=/u01/app/oracle \
oracle.install.db.InstallEdition=EE \
oracle.install.db.OSDBA_GROUP=dba \
oracle.install.db.OSBACKUPDBA_GROUP=dba \
oracle.install.db.OSDGDBA_GROUP=dba \
oracle.install.db.OSKMDBA_GROUP=dba \
oracle.install.db.OSRACDBA_GROUP=dba \
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false \
DECLINE_SECURITY_UPDATES=true
Run pre-upgrade script
/u01/app/oracle/product/12.2.0.1/db_home/jdk/bin/java -jar /u 01/app/oracle/product/19.3.0/db_home/rdbms/admin/preupgrade.jar FILE DIR /home/oracle/preupgrade
![oracle 12c to 19c database upgrade - Run pre-upgrade script](https://static.wixstatic.com/media/15aea5_e607cdf4c9a143e8a83b74861a2a0928~mv2.jpg/v1/fill/w_119,h_75,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/15aea5_e607cdf4c9a143e8a83b74861a2a0928~mv2.jpg)
View Pre upgrade log
cat /home/oracle/preupgrade/preupgrade.log
Run Oracle Generated FIXUP SCRIPT
@/home/oracle/preupgrade/preupgrade_fixups.sql
![oracle 12c to 19c database upgrade - preupgrade_fixups.sql](https://static.wixstatic.com/media/15aea5_9064740cfbf64fc1b416b5962ad15d98~mv2.jpg/v1/fill/w_119,h_118,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/15aea5_9064740cfbf64fc1b416b5962ad15d98~mv2.jpg)
Upgrade using DBUA
Invoke Database Upgrade Assistant DBUA from 19c home
cd /u01/app/oracle/product/19.3.0/db_home/bin/
./dbua
![database upgrade assistant - dbua select database](https://static.wixstatic.com/media/15aea5_3604c7b0f3054f2292b502de09e98f30~mv2.jpg/v1/fill/w_144,h_114,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/15aea5_3604c7b0f3054f2292b502de09e98f30~mv2.jpg)
![dbua prerequisite checks](https://static.wixstatic.com/media/15aea5_efbf7e659cbb43aea2df22410fcb21e7~mv2.jpg/v1/fill/w_160,h_114,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/15aea5_efbf7e659cbb43aea2df22410fcb21e7~mv2.jpg)
![dbua - select upgrade options](https://static.wixstatic.com/media/15aea5_3387c78e54314adb9f429e9830a498de~mv2.jpg/v1/fill/w_160,h_114,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/15aea5_3387c78e54314adb9f429e9830a498de~mv2.jpg)
![dbua - use flashback and guaranteed restore point for recovery options](https://static.wixstatic.com/media/15aea5_ab37e9fcaae54854b5efc565f633af5f~mv2.jpg/v1/fill/w_160,h_114,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/15aea5_ab37e9fcaae54854b5efc565f633af5f~mv2.jpg)
![dbua - configure network for 19c](https://static.wixstatic.com/media/15aea5_11691ee5744044319b9c2fa702846e67~mv2.jpg/v1/fill/w_160,h_114,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/15aea5_11691ee5744044319b9c2fa702846e67~mv2.jpg)
![dbua - configure management options for the database](https://static.wixstatic.com/media/15aea5_20b1340006444e5b937a18f187e812aa~mv2.jpg/v1/fill/w_160,h_114,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/15aea5_20b1340006444e5b937a18f187e812aa~mv2.jpg)
![dbua - database upgrade summary](https://static.wixstatic.com/media/15aea5_928bbc6b309c4c85bb85bca8a78478bb~mv2.jpg/v1/fill/w_160,h_114,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/15aea5_928bbc6b309c4c85bb85bca8a78478bb~mv2.jpg)
![oracle 12c to 19c database upgrade - oracle database upgrade progress](https://static.wixstatic.com/media/15aea5_a53b5f16ea0147a1af6ee4540ef9e07c~mv2.jpg/v1/fill/w_160,h_114,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/15aea5_a53b5f16ea0147a1af6ee4540ef9e07c~mv2.jpg)
![oracle 12c to 19c database upgrade - dbua upgrade results](https://static.wixstatic.com/media/15aea5_b0d3a76b2b014761b134251b8ff4c5f6~mv2.jpg/v1/fill/w_160,h_114,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/15aea5_b0d3a76b2b014761b134251b8ff4c5f6~mv2.jpg)
Database upgrade has been completed successfully, and the database is ready for use!
Post Upgrade Tasks
Verify /etc/oratab and check if ORACLE_HOME location has changed to 19c home
cat /etc/oratab | grep -i prod
Verify Timezone version
SQL> SELECT version FROM v$timezone_file;
Verify INVALID objects
SQL> select count(1) from dba_objects where status='INVALID';
![oracle 12c to 19c database upgrade - verify timezone and invalid objects](https://static.wixstatic.com/media/29860b_07dc1c14546f41129d761291ff50d36c~mv2.jpg/v1/fill/w_95,h_50,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/29860b_07dc1c14546f41129d761291ff50d36c~mv2.jpg)
Verify DBA_REGISTRY
col COMP_ID for a10
col COMP_NAME for a40
col VERSION for a15
set lines 180
set pages 999
select COMP_ID,COMP_NAME,VERSION,STATUS from dba_registry;
Run postupgrade_fixups.sql, this script already ran by DBUA under the post-upgrade section. However, we have executed it again
SQL> @/home/oracle/preupgrade/postupgrade_fixups.sq
![oracle 12c to 19c database upgrade - check dba_registry](https://static.wixstatic.com/media/15aea5_9568636207284c5e9cdc9a608311e533~mv2.jpg/v1/fill/w_154,h_170,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/15aea5_9568636207284c5e9cdc9a608311e533~mv2.jpg)
![oracle 12c to 19c database upgrade - oracle post upgrade verify dba_registory](https://static.wixstatic.com/media/15aea5_bdb2b34244724ab78e091958e3f4b67a~mv2.jpg/v1/fill/w_154,h_170,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/15aea5_bdb2b34244724ab78e091958e3f4b67a~mv2.jpg)
Drop Restore point
col name for a20
col GUARANTEE_FLASHBACK_DATABASE for a10
col TIME for a60
set lines 190
select NAME,GUARANTEE_FLASHBACK_DATABASE,TIME from V$restore_point;
SQL> drop restore point PRE_UPGRADE;
SQL> select NAME,GUARANTEE_FLASHBACK_DATABASE,TIME from V$restore_point;
Update COMPATIBLE parameter
If the value of the COMPATIBLE parameter is changed to 19.0.0 then if for some reasons database needs to be downgraded to 12.2.0.1 the DBA would not have any option other than export/import to downgrade the database. But if this parameter is left unchanged for some time to see how the database performs after upgrade then it is very easy and fast to downgrade the database if for some reason it is required to be downgraded.
Good practice - Change this parameter only after 1 month of database upgrade!
SQL> show parameter COMPATIBLE
SQL> ALTER SYSTEM SET COMPATIBLE = '19.0.0' SCOPE=SPFILE;
SQL> shut immediate;
SQL> startup;
SQL> show parameter COMPATIBLE
SQL> select name,open_mode,version from v$database,v$instance;
![oracle 12c to 19c database upgrade - update compatible parameter](https://static.wixstatic.com/media/15aea5_116b16ebc4354fed818d26903e196b42~mv2.jpg/v1/fill/w_159,h_179,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/15aea5_116b16ebc4354fed818d26903e196b42~mv2.jpg)
Upgrade using Manual Method
All the steps will be same until we fire DBUA in our previous upgrade method. Shutdown the database
SQL> SELECT NAME,OPEN_MODE FROM V$DATABASE;
Copy init and password files from 12c to 19c dbs home
cd $ORACLE_HOME/dbs
ls -ltr
cp orapwprod spfileprod.ora /u01/app/oracle/product/19.3.0/db_home/dbs
ls -ltr /u01/app/oracle/product/19.3.0/db_home/dbs/
Startup DB in Upgrade mode from 19c home
export ORACLE_HOME=/u01/app/oracle/product/19.3.0/db_home
export ORACLE_SID=prod
sqlplus / as sysdba
SQL> startup upgrade;
![oracle 12c to 19c database upgrade - startup db in upgrade mode from 19c home](https://static.wixstatic.com/media/15aea5_4f9464aceaf14085a3298218028d868c~mv2.jpg/v1/fill/w_159,h_116,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/15aea5_4f9464aceaf14085a3298218028d868c~mv2.jpg)
select name,open_mode,cdb,version,status from v$database, v$instance;
Run dbupgrade
cd /u01/app/oracle/product/19.3.0/db_home/bin
ls -ltr dbupgrade
nohup ./dbupgrade & --> Press enter 2 times
jobs -l
disown
ps -ef | grep -i catctl.pl
![oracle 12c to 19c database upgrade - run dbupgrade](https://static.wixstatic.com/media/15aea5_9b6fa3ba2b374f9590e31c4ac297f101~mv2.jpg/v1/fill/w_159,h_116,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/15aea5_9b6fa3ba2b374f9590e31c4ac297f101~mv2.jpg)
Monitor upgrade log
cd /u01/app/oracle/product/19.3.0/db_home/bin
more nohup.out
![oracle 12c to 19c database upgrade - monitor upgrade log](https://static.wixstatic.com/media/15aea5_db5badb11534448e85aad0b726c86bf9~mv2.jpg/v1/fill/w_159,h_118,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/15aea5_db5badb11534448e85aad0b726c86bf9~mv2.jpg)
cd /u01/app/oracle/product/19.3.0/db_home/cfgtoollogs/prod/upgrade20210131020428/
ls -ltr *.log
tail -f catupgrd0.log
tail -f catupgrd1.log
tail -f catupgrd2.log
tail -f catupgrd3.log
![oracle 12c to 19c database upgrade - check upgrade logs](https://static.wixstatic.com/media/15aea5_d6294700f77f45019b282278eb479e3e~mv2.jpg/v1/fill/w_159,h_35,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/15aea5_d6294700f77f45019b282278eb479e3e~mv2.jpg)
Summary Report
![oracle 12c to 19c database upgrade - oracle database upgrade summary report](https://static.wixstatic.com/media/15aea5_38bb707c62104f24aff6658a2b95842c~mv2.jpg/v1/fill/w_159,h_130,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/15aea5_38bb707c62104f24aff6658a2b95842c~mv2.jpg)
Startup DB from 19c home
export ORACLE_HOME=/u01/app/oracle/product/19.3.0/db_home
export ORACLE_SID=prod
sqlplus / as sysdba
startup;
select name,open_mode,cdb,version,status from v$database, v$instance;
col COMP_ID for a10
col COMP_NAME for a40
col VERSION for a15
set lines 180
set pages 999
select COMP_ID,COMP_NAME,VERSION,STATUS from dba_registry;
![oracle 12c to 19c database upgrade - startup db from 19c home](https://static.wixstatic.com/media/15aea5_72bc51b2752d44ccbf7f86ad15706c84~mv2.jpg/v1/fill/w_159,h_116,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/15aea5_72bc51b2752d44ccbf7f86ad15706c84~mv2.jpg)
![oracle 12c to 19c database upgrade - startup db 19c home](https://static.wixstatic.com/media/15aea5_71ddef4c5cdf437cb5cd574e8313dc34~mv2.jpg/v1/fill/w_159,h_116,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/15aea5_71ddef4c5cdf437cb5cd574e8313dc34~mv2.jpg)
Post Upgrade Steps
Run utlrp.sql, run catcon.pl to start utlrp.sql, and to recompile any remaining invalid objects
cd /u01/app/oracle/product/19.3.0/db_home/rdbms/admin/ nohup sqlplus "/ as sysdba" @utlrp.sql > /home/oracle/utlrp.out 2>&1 &
SQL> select count(*) from dba_objects where status='INVALID';
SQL> select count(*) from dba_objects where status='INVALID' and owner in ('SYS','SYSTEM');
SQL> @/u01/app/oracle/product/19.3.0/db_home/rdbms/admin/utlrp.sql
![oracle 12c to 19c database upgrade - post upgrade steps utlrp.sql](https://static.wixstatic.com/media/15aea5_f12f333cdbfc49d3b9376a65f2dbffab~mv2.jpg/v1/fill/w_159,h_116,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/15aea5_f12f333cdbfc49d3b9376a65f2dbffab~mv2.jpg)
Use the following queries to track recompilation progress. Query returning the number of invalid objects remaining. This number should decrease with time
SQL> SELECT COUNT(*) FROM obj$ WHERE status IN (4, 5, 6)
![oracle 12c to 19c database upgrade - track recompilation process in oracle](https://static.wixstatic.com/media/15aea5_9f581e809eb842b0a40503b253b8b3a7~mv2.jpg/v1/fill/w_159,h_127,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/15aea5_9f581e809eb842b0a40503b253b8b3a7~mv2.jpg)
![oracle 12c to 19c database upgrade - dba_objects](https://static.wixstatic.com/media/15aea5_5aae9062c20a43df95d383cbf0ddc5ca~mv2.jpg/v1/fill/w_159,h_38,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/15aea5_5aae9062c20a43df95d383cbf0ddc5ca~mv2.jpg)
![oracle 12c to 19c database upgrade - pl/sql procedure](https://static.wixstatic.com/media/15aea5_00d3a0987b67497483c825464f9d06af~mv2.jpg/v1/fill/w_159,h_116,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/15aea5_00d3a0987b67497483c825464f9d06af~mv2.jpg)
Run postupgrade_fixups.sql
@/home/oracle/preupgrade/postupgrade_fixups.sql
![oracle 12c to 19c database upgrade - run postupgrade_fixups.sql](https://static.wixstatic.com/media/15aea5_e8c1e68f090941e59e1db7815cd17879~mv2.jpg/v1/fill/w_159,h_173,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/15aea5_e8c1e68f090941e59e1db7815cd17879~mv2.jpg)
![oracle 12c to 19c database upgrade - executing oracle post-upgrade](https://static.wixstatic.com/media/15aea5_c520d2354b4e4d5399e91c98f078e023~mv2.jpg/v1/fill/w_159,h_133,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/15aea5_c520d2354b4e4d5399e91c98f078e023~mv2.jpg)
Upgrade Timezone file
SQL> SELECT version FROM v$timezone_file;
SQL> @/u01/app/oracle/product/19.3.0/db_home/rdbms/admin/utltz_upg_check.sql
![oracle 12c to 19c database upgrade - Upgrade timezone file v$timezone_file](https://static.wixstatic.com/media/15aea5_e071478f2d8c4d8781d4bae3bdb57fee~mv2.jpg/v1/fill/w_159,h_136,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/15aea5_e071478f2d8c4d8781d4bae3bdb57fee~mv2.jpg)
SQL> @/u01/app/oracle/product/19.3.0/db_home/rdbms/admin/utltz_upg_apply.sql
![oracle 12c to 19c database upgrade - utltz_upg_apply.sql](https://static.wixstatic.com/media/15aea5_413ecd3d186c437d9491e62f29223576~mv2.jpg/v1/fill/w_140,h_179,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/15aea5_413ecd3d186c437d9491e62f29223576~mv2.jpg)
SQL> SELECT version FROM v$timezone_file;
![oracle 12c to 19c database upgrade - v$timezone_file](https://static.wixstatic.com/media/15aea5_ef355dfe2cb641a49a5e7a7a5e5406ab~mv2.jpg/v1/fill/w_159,h_64,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/15aea5_ef355dfe2cb641a49a5e7a7a5e5406ab~mv2.jpg)
Run utlusts.sql
SQL> @/u01/app/oracle/product/19.3.0/db_home/rdbms/admin/utlusts.sql TEXT
![oracle 12c to 19c database upgrade - utlusts.sql](https://static.wixstatic.com/media/15aea5_c8d4f4dedd4541dfa6e4f4f31c2a501a~mv2.jpg/v1/fill/w_159,h_104,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/15aea5_c8d4f4dedd4541dfa6e4f4f31c2a501a~mv2.jpg)
Run catuppst.sql
Do not run this in UPGRADE mode.
SQL> @/u01/app/oracle/product/19.3.0/db_home/rdbms/admin/catuppst.sql
![oracle 12c to 19c database upgrade - run catuppst.sql](https://static.wixstatic.com/media/15aea5_0536a1a6b0d74b83a91e42c9dfb6f550~mv2.jpg/v1/fill/w_101,h_187,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/15aea5_0536a1a6b0d74b83a91e42c9dfb6f550~mv2.jpg)
Re-Run postupgrade_fixups.sql
@/home/oracle/preupgrade/postupgrade_fixups.sql
![oracle 12c to 19c database upgrade - oracle postupgrade_fixups.sql](https://static.wixstatic.com/media/15aea5_9605544750f44714a925a54e34ea0332~mv2.jpg/v1/fill/w_159,h_124,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/15aea5_9605544750f44714a925a54e34ea0332~mv2.jpg)
Reverify INVALID OBJECTS
SQL> select count(*) from dba_objects where status='INVALID';
![oracle 12c to 19c database upgrade - invalid objects](https://static.wixstatic.com/media/15aea5_0a89ab427dad4fc8a6d0d328bbf686c1~mv2.jpg/v1/fill/w_159,h_41,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/15aea5_0a89ab427dad4fc8a6d0d328bbf686c1~mv2.jpg)
Drop Restore point
SQL> col name for a20
col GUARANTEE_FLASHBACK_DATABASE for a10
col TIME for a60
set lines 190
select NAME,GUARANTEE_FLASHBACK_DATABASE,TIME from V$restore_point;
SQL> drop restore point PRE_UPGRADE;
SQL> select NAME,GUARANTEE_FLASHBACK_DATABASE,TIME from V$restore_point;
Set COMPATIBLE parameter value to 19.0.0
SQL> show parameter COMPATIBLE
SQL> ALTER SYSTEM SET COMPATIBLE = '19.0.0' SCOPE=SPFILE;
SQL> shut immediate;
SQL> startup;
SQL> show parameter COMPATIBLE
![oracle 12c to 19c database upgrade - alter system set compatible](https://static.wixstatic.com/media/15aea5_6c6b6119c12b4168bdc54a6fe4ed3e0d~mv2.jpg/v1/fill/w_159,h_162,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/15aea5_6c6b6119c12b4168bdc54a6fe4ed3e0d~mv2.jpg)
Verify DBA_REGISTRY
SQL> col COMP_ID for a10
col COMP_NAME for a40
col VERSION for a15
set lines 180
set pages 999
select COMP_ID,COMP_NAME,VERSION,STATUS from dba_registry;
![oracle 12c to 19c database upgrade - dba_registry](https://static.wixstatic.com/media/15aea5_43be0ee7712543ecb270c265cf75e48b~mv2.jpg/v1/fill/w_159,h_95,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/15aea5_43be0ee7712543ecb270c265cf75e48b~mv2.jpg)
Edit oratab
cat /etc/oratab | grep -i prod
vi /etc/oratab
![oracle 12c to 19c database upgrade - update /etc/oratab](https://static.wixstatic.com/media/15aea5_843c5a755b5440cc8ed22a28824488ca~mv2.jpg/v1/fill/w_159,h_35,al_c,q_80,usm_0.66_1.00_0.01,blur_2,enc_auto/15aea5_843c5a755b5440cc8ed22a28824488ca~mv2.jpg)
Done!