This post demonstrated the upgrading Oracle Database 19c non cdb to 26ai using Autoupgrade on the same server.
Environment:
==========
Source Database : 19c (19.27), Prod
Source ORACLE HOME (19c) : /u01/app/oracle/product/19.0.0/db_1
Target Database : 23.26.1.0.0 (26ai)
Target ORACLE HOME (26ai) : /u01/app/oracle/product/26ai/db, empty CDB (PROD26ai) without PDB has been created.
Ensure to perform pre checks before upgrade and post checks after upgrade.
Caution: Make sure to include parameter “upg1.target_pdb_copy_option” as this parameter copy datafiles of source non cdb to target pdb. So, rollback is possible. Because, he compatible will be the newly upgraded non cdb to pdb will be the compatible value to CDB. Downgrade is not possible.
Before upgrade, RMAN full backup is mandatory.
1. Generate a sample config file and edit accordingly.
Make sure export the 19c Oracle home before running the “autoupgrade.jar” commands.
[oracle@prod ~]$ /u01/app/oracle/product/26ai/db/jdk/bin/java -jar /u01/app/oracle/product/26ai/db/rdbms/admin/autoupgrade.jar -create_sample_file config /miss/autoup_19cto26ai/config.cfg
Created sample configuration file /miss/autoup_19cto26ai/config.cfg
global.global_log_dir=/u01/app/oracle/cfgtoollogs/
upg1.sid=prod
upg1.source_home=/u01/app/oracle/product/19.0.0/db_1
upg1.target_home=/u01/app/oracle/product/26ai/db
upg1.restoration=YES
upg1.timezone_upg=YES
upg1.target_cdb=prod26ai
upg1.start_time=NOW
upg1.target_pdb_name=prpdb1
upg1.target_pdb_copy_option=file_name_convert=(‘/u01/app/oracle/oradata/PROD’, ‘/u01/app/oracle/oradata/PROD26AI/prpdb1’)
upg1.run_utlrp=YES
2. Run the upgrade in analyze mode to validate any issues with the upgrade.
[oracle@prod ~]$ /u01/app/oracle/product/26ai/db/jdk/bin/java -jar /u01/app/oracle/product/26ai/db/rdbms/admin/autoupgrade.jar -config /miss/autoup_19cto26ai/config.cfg -mode analyze
AutoUpgrade 26.2.260205 launched with default internal options
Processing config file …
+——————————–+
| Starting AutoUpgrade execution |
+——————————–+
1 Non-CDB(s) will be analyzed
Type ‘help’ to list console commands
upg> lsj
+—-+——-+———+———+——-+———-+——-+—————————-+
|Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME|UPDATED| MESSAGE|
+—-+——-+———+———+——-+———-+——-+—————————-+
| 100| prod|PRECHECKS|EXECUTING|RUNNING| 06:14:28|25s ago|Loading database information|
+—-+——-+———+———+——-+———-+——-+—————————-+
Total jobs 1
upg> lsj
+—-+——-+———+———+——-+———-+——-+—————-+
|Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME|UPDATED| MESSAGE|
+—-+——-+———+———+——-+———-+——-+—————-+
| 100| prod|PRECHECKS|EXECUTING|RUNNING| 06:14:28| 4s ago|Executing Checks|
+—-+——-+———+———+——-+———-+——-+—————-+
Total jobs 1
upg> status -job 100
Details
Job No 100
Oracle SID prod
Start Time 26/03/30 06:14:28
Elapsed (min): 1
End time: N/A
Logfiles
Logs Base: /miss/autoup_19cto26ai/prod
Job logs: /miss/autoup_19cto26ai/prod/100
Stage logs: /miss/autoup_19cto26ai/prod/100/prechecks
TimeZone: /miss/autoup_19cto26ai/prod/temp
Remote Dirs:
Stages
SETUP <1 min
PRECHECKS ~1 min (RUNNING)
Stage-Progress Per Container
+——–+———+
|Database|PRECHECKS|
+——–+———+
| prod| 98 % |
+——–+———+
upg> status -job 100
Details
Job No 100
Oracle SID prod
Start Time 26/03/30 06:14:28
Elapsed (min): 2
End time: N/A
Logfiles
Logs Base: /miss/autoup_19cto26ai/prod
Job logs: /miss/autoup_19cto26ai/prod/100
Stage logs: /miss/autoup_19cto26ai/prod/100/prechecks
TimeZone: /miss/autoup_19cto26ai/prod/temp
Remote Dirs:
Stages
SETUP <1 min
PRECHECKS ~2 min (RUNNING)
Stage-Progress Per Container
+——–+———+
|Database|PRECHECKS|
+——–+———+
| prod| 99 % |
+——–+———+
upg> Job 100 completed
——————- Final Summary ——————–
Number of databases [ 1 ]
Jobs finished [1]
Jobs failed [0]
Please check the summary report at:
/u01/app/oracle/cfgtoollogs/cfgtoollogs/upgrade/auto/status/status.html
/u01/app/oracle/cfgtoollogs/cfgtoollogs/upgrade/auto/status/status.log
—
[oracle@prod prechecks]$ cat /u01/app/oracle/cfgtoollogs/cfgtoollogs/upgrade/auto/status/status.log
==========================================
Autoupgrade Summary Report
==========================================
[Date] Mon Mar 30 06:17:17 IST 2026
[Number of Jobs] 1
==========================================
[Job ID] 100
==========================================
[DB Name] prod
[Version Before Upgrade] 19.3.0.0.0
[Version After Upgrade] 23.26.1.0.0
——————————————
[Stage Name] PRECHECKS
[Status] SUCCESS
[Start Time] 2026-03-30 06:14:28
[Duration] 0:02:49
[Log Directory] /miss/autoup_19cto26ai/prod/100/prechecks
[Detail] /miss/autoup_19cto26ai/prod/100/prechecks/prod_preupgrade.log
Check passed and no manual intervention needed
3. Run Autoupgrade in Deploy mode.
/u01/app/oracle/product/26ai/db/jdk/bin/java -jar /u01/app/oracle/product/26ai/db/rdbms/admin/autoupgrade.jar -config /miss/autoup_19cto26ai/config.cfg -mode deploy
upg> status -job 108
Details
Job No 108
Oracle SID prod
Start Time 26/03/30 12:17:30
Elapsed (min): 51
End time: N/A
Logfiles
Logs Base: /miss/autoup_19cto26ai/prod
Job logs: /miss/autoup_19cto26ai/prod/108
Stage logs: /miss/autoup_19cto26ai/prod/108/postfixups
TimeZone: /miss/autoup_19cto26ai/prod/temp
Remote Dirs:
Stages
SETUP <1 min
GRP <1 min
PREUPGRADE <1 min
PRECHECKS <1 min
PREFIXUPS <1 min
DRAIN 1 min
DBUPGRADE 36 min
DISPATCH 9 min
NONCDBTOPDB <1 min
POSTCHECKS <1 min
POSTFIXUPS ~2 min (RUNNING)
POSTUPGRADE
SYSUPDATES
Stage-Progress Per Container
+——–+———-+
|Database|POSTFIXUPS|
+——–+———-+
| PRPDB1| 100% |
+——–+———-+
upg> status -job 108Job 108 completed
——————- Final Summary ——————–
Number of databases [ 1 ]
Jobs finished [1]
Jobs failed [0]
Jobs restored [0]
Jobs pending [0]
Please check the summary report at:
/u01/app/oracle/cfgtoollogs/cfgtoollogs/upgrade/auto/status/status.html
/u01/app/oracle/cfgtoollogs/cfgtoollogs/upgrade/auto/status/status.log
====
[oracle@prod ~]$ cat /u01/app/oracle/cfgtoollogs/cfgtoollogs/upgrade/auto/status/status.log
==========================================
Autoupgrade Summary Report
==========================================
[Date] Mon Mar 30 13:08:37 IST 2026
[Number of Jobs] 1
==========================================
[Job ID] 108
==========================================
[DB Name] prod
[Version Before Upgrade] 19.27.0.0.0
[Version After Upgrade] 23.26.1.0.0
——————————————
[Stage Name] GRP
[Status] SUCCESS
[Start Time] 2026-03-30 12:17:31
[Duration] 0:00:00
[Detail] Please drop the following GRPs after Autoupgrade completes:
AUTOUPGRADE_9212_PROD1927000
——————————————
[Stage Name] PREUPGRADE
[Status] SUCCESS
[Start Time] 2026-03-30 12:17:31
[Duration] 0:00:00
[Log Directory] /miss/autoup_19cto26ai/prod/108/preupgrade
——————————————
[Stage Name] PRECHECKS
[Status] SUCCESS
[Start Time] 2026-03-30 12:17:31
[Duration] 0:00:17
[Log Directory] /miss/autoup_19cto26ai/prod/108/prechecks
[Detail] /miss/autoup_19cto26ai/prod/108/prechecks/prod_preupgrade.log
Check passed and no manual intervention needed
——————————————
[Stage Name] PREFIXUPS
[Status] SUCCESS
[Start Time] 2026-03-30 12:17:49
[Duration] 0:00:57
[Log Directory] /miss/autoup_19cto26ai/prod/108/prefixups
[Detail] /miss/autoup_19cto26ai/prod/108/prefixups/prefixups.html
——————————————
[Stage Name] DRAIN
[Status] SUCCESS
[Start Time] 2026-03-30 12:18:46
[Duration] 0:01:09
[Log Directory] /miss/autoup_19cto26ai/prod/108/drain
——————————————
[Stage Name] DBUPGRADE
[Status] SUCCESS
[Start Time] 2026-03-30 12:19:56
[Duration] 0:36:19
[Log Directory] /miss/autoup_19cto26ai/prod/108/dbupgrade
——————————————
[Stage Name] NONCDBTOPDB
[Status] SUCCESS
[Start Time] 2026-03-30 13:05:38
[Duration] 0:00:00
[Log Directory] /miss/autoup_19cto26ai/prod/108/noncdbtopdb
——————————————
[Stage Name] POSTCHECKS
[Status] SUCCESS
[Start Time] 2026-03-30 13:05:39
[Duration] 0:00:01
[Log Directory] /miss/autoup_19cto26ai/prod/108/postchecks
[Detail] /miss/autoup_19cto26ai/prod/108/postchecks/prod_postupgrade.log
Check passed and no manual intervention needed
——————————————
[Stage Name] POSTFIXUPS
[Status] SUCCESS
[Start Time] 2026-03-30 13:05:40
[Duration] 0:02:55
[Log Directory] /miss/autoup_19cto26ai/prod/108/postfixups
[Detail] /miss/autoup_19cto26ai/prod/108/postfixups/postfixups.html
——————————————
[Stage Name] POSTUPGRADE
[Status] SUCCESS
[Start Time] 2026-03-30 13:08:36
[Duration] 0:00:00
[Log Directory] /miss/autoup_19cto26ai/prod/108/postupgrade
——————————————
[Stage Name] SYSUPDATES
[Status] SUCCESS
[Start Time] 2026-03-30 13:08:37
[Duration] 0:00:00
[Log Directory] /miss/autoup_19cto26ai/prod/108/sysupdates
——————————————
Summary:/miss/autoup_19cto26ai/prod/108/dbupgrade/upg_summary.log
4. Check whether the non-cdb to migrated as pdb and upgraded or not.
SQL> @db
NAME DB_UNIQUE_NAME OPEN_MODE DATABASE_ROLE INSTANCE_NAME HOST_NAME STARTUP_TIME
———- ————— ———- —————— ————— —————- ——————–
PROD26AI prod26ai READ WRITE PRIMARY prod26ai prod 30-MAR-2026 12:13
CON_ID CON_NAME OPEN MODE RESTRICTED
———- —————————— ———- ———-
3 PRPDB1 READ WRITE NO
BANNER_FULL
——————————————————————————–
Oracle AI Database 26ai Enterprise Edition Release 23.26.1.0.0 – Production
Version 23.26.1.0.0
—
SQL> show con_name
CON_NAME
——————————
PRPDB1
SQL> show parameter compatible
NAME TYPE VALUE
———————————— ———– ——————————
compatible string 23.6.0
noncdb_compatible boolean FALSE
The 19c non-cdb database is to migrated as pdb and upgraded by Autoupgrade.
Disclaimer:
Please note the above information is only for educational purpose and practised in personal test database only. Always test in test database before implementing in production database. The pre-requisites and ways of implementing may vary from one environment to another. Hence, not providing guarantee that it will work in your environment.