Upgrade 11gR2 (Non-CDB) to 19c (PDB) using AutoUpgrade

In this article we will upgrade 11gR2 DB to 19c DB using Autoupgrade utility which will not only upgrade the DB but also convert the non-CDB to PDB.

This article assume that you have basic understanding of Autoupgrade utility and its different modes and stage, if not then go through a quick read of Oracle 19c AutoUpgrade Utility article.

Please ensure to use the latest version of Autoupgrade (Download from MOS Note: 2485457.1 – AutoUpgrade Tool)

Pre-requisites & Setup

  • Source Database Name: ORCL13
  • Source Database Version: 11gR2
  • Source Database Home: /apps/oracle/server/11.2.0.4/dbhome_1
  • Target CDB: CDB1
  • Target CDB Version: 19c
  • Target Database Home: /apps/oracle/server/19.3.0.0/dbhome_1
  • Both Source and Target are on same server named iondelvm142

Starting with running autgoupgrade utility using the help argument to see usage:

oracle> /apps/oracle/server/19.3.0.0/dbhome_1/jdk/bin/java -jar /apps/oracle/server/19.3.0.0/dbhome_1/rdbms/admin/autoupgrade.jar -help
usage: java -jar autoupgrade.jar [-version | -help | -create_sample_file <create_sample_file>]   [-settings <settings>] [-config <config>]
       [-clear_recovery_data] [-mode <mode>] [-console | -noconsole]  [-restore_on_fail] [-debug]
     -version                                     Displays the current build of the jar
     -help                                        Displays the available options
     -create_sample_file <create_sample_file>     Creates a sample configuration file that be used as reference
                                                  config   - Creates a sample configuration file
                                                  settings - Creates a sample internal configuration file to allow a deeper low level configuration
     -settings <settings>                         Path to config file to overwrite internal settings
     -config <config>                             User config file with the databases to upgrade
     -clear_recovery_data                         Remove the recovery checkpoint to start fresh the next time the tool is launched
     -mode <mode>                                 Mode on which the AutoUpgrade will start and behave
                                                  analyze - Executes the checks and generates a report of the database status
                                                  deploy  - Performs the upgrade of the databases from start to end
                                                  fixups  - Executes the checks and pre-upgrade fixups but do not start the upgrade
                                                  upgrade - Performs the database upgrade and post-upgrade actions the database must be up and running with the
                                                  target home already
     -console                                     start the AutoUpgrade with the console enabled (default)
     -noconsole                                   start the AutoUpgrade with the console disabled
     -restore_on_fail                             if present, when a job fails, the database is restored automatically errors in PDBs are not considered fatal,
                                                  only error in CDB$ROOT or Non-CDBs
     -debug                                       Debug messages enabled

The config option with sample parameter creates a sample database configuration file with default values.
Or you can use it with a custom database configuration file with an execution mode (deploy, analyze, fixups or upgrade).

The settings parameter lets you use a file with Autoupgrade internal settings, can be default for base settings or you can specify a file path for custom
settings.

Now lets run the Autoupgrade utility using argument create_sample_file to create a sample file that we will modify for our upgrade.

oracle> /apps/oracle/server/19.3.0.0/dbhome_1/jdk/bin/java -jar /apps/oracle/server/19.3.0.0/dbhome_1/rdbms/admin/autoupgrade.jar -create_sample_file config
Created sample configuration file /home/oracle/sample_config.cfg
oracle>

Now using the contents of config file in this sample_config.cfg lets create a sample config file as per our requirement:

global.autoupg_log_dir=/home/oracle/autoupgrade_global
upg1.sid=ORCL13
upg1.dbname=ORCL13
upg1.start_time=NOW
upg1.source_home=/apps/oracle/server/11.2.0.4/dbhome_1
upg1.log_dir=/home/oracle/upgrade11gR2
upg1.target_home=/apps/oracle/server/19.3.0.0/dbhome_1
upg1.upgrade_node=iondelvm142
upg1.target_version=19.1.0
upg1.run_utlrp=yes
upg1.timezone_upg=yes
upg1.target_cdb=cdb1

Now lets the autoupgrade utility in analyze mode:

oracle> /apps/oracle/server/19.3.0.0/dbhome_1/jdk/bin/java -jar /apps/oracle/server/19.3.0.0/dbhome_1/rdbms/admin/autoupgrade.jar -config /home/oracle/11gr2upgrade.cfg -mode ANALYZE
Autoupgrade tool launched with default options
+--------------------------------+
| Starting AutoUpgrade execution |
+--------------------------------+
1 databases will be analyzed
Enter some command, type 'help' or 'exit' to quit
upg>

Now to monitor the status run lsj command at autoupgrade prompt (upg>):

upg> lsj
+----+-------+---------+---------+-------+--------------+--------+--------+--------+
|JOB#|DB NAME|    STAGE|OPERATION| STATUS|    START TIME|END TIME| UPDATED| MESSAGE|
+----+-------+---------+---------+-------+--------------+--------+--------+--------+
| 100| ORCL13|PRECHECKS|PREPARING|RUNNING|21/04/12 09:45|     N/A|09:45:45|Starting|
+----+-------+---------+---------+-------+--------------+--------+--------+--------+
Total jobs 1
upg>
upg>
upg>
Job 100 for ORCL13 FINISHED
oracle>

Once the job finishes, Oracle will exit the autoupgrade prompt, now we’ll look at the logfiles of our upgrade which would be present in upg1.log_dir (specified in config file). Note that the JOB ID of our upgrade is 100, if you run multiple upgrades each DB upgrade would have its own ID.

oracle> cd /home/oracle/upgrade11gR2
oracle> ll
total 8
drwxr-xr-x 3 oracle oinstall 4096 Apr 12 09:46 100
drwxr-xr-x 2 oracle oinstall 4096 Apr 12 09:45 temp
oracle>
oracle>
oracle> cd 100
oracle>
oracle> ll
total 68
-rw-r--r-- 1 oracle oinstall     0 Apr 12 09:45 autoupgrade_err.log
-rw-r--r-- 1 oracle oinstall 59195 Apr 12 09:46 dbupgrade_20210412.log
-rw-r--r-- 1 oracle oinstall    83 Apr 12 09:45 dbupgrade_20210412_user.log
drwxr-xr-x 2 oracle oinstall  4096 Apr 12 09:46 prechecks
oracle> cd prechecks/
oracle> ll
total 200
-rw-r--r-- 1 oracle oinstall   3374 Apr 12 09:46 orcl13_checklist.cfg
-rw-r--r-- 1 oracle oinstall   2785 Apr 12 09:46 orcl13_checklist.json
-rw-r--r-- 1 oracle oinstall   3278 Apr 12 09:46 orcl13_checklist.xml
-rw-r--r-- 1 oracle oinstall  30095 Apr 12 09:46 orcl13_preupgrade.html
-rw-r--r-- 1 oracle oinstall  12775 Apr 12 09:46 orcl13_preupgrade.log
-rw-r--r-- 1 oracle oinstall 142623 Apr 12 09:45 prechecks_orcl13.log
oracle>

Review the logfiles to see if there were any errors in the anlyze mode and more importantly to get a better understanding of the process. Here autoupgrade gives you a nice HTML file in the prechecks folder, most of the checks would be labelled as Fixup Available = YES and those would be taken care by Autoupgrade utility itself you only have to focus on the ones where Fixup Available = NO (You can ignore the ones that are with severity INFO or RECOMMEND). Attaching some screenshots for reference.

Now, you can manually fix the issues where fixup available was NO and then rerun autoupgrade in ANALYZE mode and If there were no error in this second run then run the upgrade in FIXUPS mode which will run the fixups that were specified in the HTML logfile. Since both Source and Target are on same server we can skip the UPGRADE mode

You can ignore the FIXUPS mode and directly start with DEPLOY and it’ll take care of those tasks too. Now, lets run the autoupgrade in the DEPLOY mode which is where the real upgrade happens.

oracle> /apps/oracle/server/19.3.0.0/dbhome_1/jdk/bin/java -jar /apps/oracle/server/19.3.0.0/dbhome_1/rdbms/admin/autoupgrade.jar -config /home/oracle/11gr2upgrade.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>

Once the job is initiated you can use the STATUS and lsj command to monitor the status from autoupgrade prompt as shown below:

upg> status
---------------- Config -------------------
User configuration file    [/home/oracle/11gr2upgrade.cfg]
General logs location      [/home/oracle/autoupgrade_global/cfgtoollogs/upgrade/auto]
Mode                       [DEPLOY]
DB upg fatal errors        ORA-00600,ORA-07445
DB Post upgrade abort time [60] minutes
DB upg abort time          [1440] minutes
DB restore abort time      [120] minutes
DB drop GRP abort time     [3] minutes
------------------- Jobs -------------------
Total databases in configuration file [1]
Total Non-CDB being processed         [1]
Total CDB being processed             [0]
Jobs finished successfully            [0]
Jobs finished/aborted                 [0]
jobs in progress                      [1]
------------ Resources ----------------
Threads in use                        [39]
JVM used memory                       [60] MB
CPU in use                            [13%]
Processes in use                      [22]
upg> lsj
+----+-------+---------+---------+-------+--------------+--------+----------------------------+
|Job#|DB_NAME|    STAGE|OPERATION| STATUS|    START_TIME| UPDATED|                     MESSAGE|
+----+-------+---------+---------+-------+--------------+--------+----------------------------+
| 101| ORCL13|PRECHECKS|PREPARING|RUNNING|21/04/12 10:55|10:55:24|Loading database information|
+----+-------+---------+---------+-------+--------------+--------+----------------------------+
Total jobs 1

upg>upg> lsj
+----+-------+-----+---------+-------+--------------+--------+----------------------+
|Job#|DB_NAME|STAGE|OPERATION| STATUS|    START_TIME| UPDATED|               MESSAGE|
+----+-------+-----+---------+-------+--------------+--------+----------------------+
| 101| ORCL13|DRAIN|EXECUTING|RUNNING|21/04/12 10:55|10:56:11|Shutting down database|
+----+-------+-----+---------+-------+--------------+--------+----------------------+
Total jobs 1

upg> lsj
+----+-------+---------+---------+-------+--------------+--------+-------+
|Job#|DB_NAME|    STAGE|OPERATION| STATUS|    START_TIME| UPDATED|MESSAGE|
+----+-------+---------+---------+-------+--------------+--------+-------+
| 101| ORCL13|DBUPGRADE|EXECUTING|RUNNING|21/04/12 10:55|10:56:34|Running|
+----+-------+---------+---------+-------+--------------+--------+-------+
Total jobs 1

You can also monitor the details by doing a tail -f of the upgrade logfile (autoupgrade*.log) in respective job ID folder inside upg1.log_dir directory.

[oracle@iondelvm142 ~]$ cd /home/oracle/upgrade11gR2/ORCL13
[oracle@iondelvm142 ORCL13]$ ls -ltr
total 12
drwx------ 2 oracle oinstall 4096 Apr 12 10:51 temp
drwx------ 3 oracle oinstall 4096 Apr 12 10:51 100
drwx------ 7 oracle oinstall 4096 Apr 12 10:56 101
[oracle@iondelvm142 ORCL13]$ cd 101
[oracle@iondelvm142 101]$ ls -ltr
total 336
-rwx------ 1 oracle oinstall      0 Apr 12 10:55 autoupgrade_20210412.log.lck
-rwx------ 1 oracle oinstall      0 Apr 12 10:55 autoupgrade_20210412_user.log.lck
-rwx------ 1 oracle oinstall      0 Apr 12 10:55 autoupgrade_err.log.lck
-rwx------ 1 oracle oinstall      0 Apr 12 10:55 autoupgrade_err.log
drwx------ 2 oracle oinstall   4096 Apr 12 10:55 preupgrade
drwx------ 2 oracle oinstall   4096 Apr 12 10:55 prechecks
drwx------ 2 oracle oinstall   4096 Apr 12 10:56 prefixups
-rwx------ 1 oracle oinstall   5425 Apr 12 10:56 autoupgrade_20210412_user.log
drwx------ 2 oracle oinstall   4096 Apr 12 10:56 drain
drwx------ 2 oracle oinstall   4096 Apr 12 10:56 dbupgrade
-rwx------ 1 oracle oinstall 311788 Apr 12 10:56 autoupgrade_20210412.log
[oracle@iondelvm142 101]$ 
[oracle@iondelvm142 101]$
[oracle@iondelvm142 101]$ tail -f autoupgrade_20210412.log
2021-04-12 10:56:38.909 INFO Begin Sending Command: startup upgrade pfile='/home/oracle/upgrade11gR2/ORCL13/temp/during_upgrade_pfile_orcl13.ora'; - ExecuteSql.executeSql
2021-04-12 10:56:38.909 INFO End Sending Command: startup upgrade pfile='/home/oracle/upgrade11gR2/ORCL13/temp/during_upgrade_pfile_orcl13.ora'; - ExecuteSql.executeSql
2021-04-12 10:56:38.909 INFO End Sending Commands - ExecuteSql.executeSql
2021-04-12 10:56:38.909 INFO Begin Retrieving results - ExecuteSql.executeSql
2021-04-12 10:56:38.909 INFO Starting - ReadInputStream.asynchronousRead
2021-04-12 10:56:38.909 INFO Starting - ReadInputStream.asynchronousRead
2021-04-12 10:56:38.910 INFO Starting - ReadInputStream.run
2021-04-12 10:56:38.910 INFO Begin Setting up Input Reader Stream - ReadInputStream.run
2021-04-12 10:56:38.910 INFO End Setting up Input Reader Stream - ReadInputStream.run
2021-04-12 10:56:38.910 INFO Begin Reading process Output Stream - ReadInputStream.run
[oracle@iondelvm142 101]$ 
[oracle@iondelvm142 101]$ 
[oracle@iondelvm142 101]$ tail -f autoupgrade_20210412_user.log
2021-04-12 10:55:57.985 INFO Adding parameter cluster_database='FALSE' to /home/oracle/upgrade11gR2/ORCL13/temp/during_upgrade_pfile_orcl13.ora
2021-04-12 10:56:08.435 INFO Analyzing ORCL13, 94 checks will run using 8 threads
2021-04-12 10:56:11.694 INFO Defer redo log shipping to standby database
2021-04-12 10:56:34.499 INFO Copying password file from /apps/oracle/server/11.2.0.4/dbhome_1/dbs/orapwORCL13 to /apps/oracle/server/19.3.0.0/dbhome_1/dbs/orapwORCL13
2021-04-12 10:56:34.520 INFO Copying password file completed with success
2021-04-12 10:59:46.783 INFO Total Number of upgrade phases is 108
2021-04-12 10:59:46.803 INFO Begin Upgrade on Database [ORCL13]
2021-04-12 10:59:55.108 INFO 0%Upgraded
2021-04-12 11:02:59.599 INFO 0%Upgraded
2021-04-12 11:06:05.530 INFO 0%Upgraded
2021-04-12 11:09:09.224 INFO 1%Upgraded

You can also use the log command at autoupgrade prompt to get the location of the logfile:

upg> logs
AutoUpgrade logs folder [/home/oracle/autoupgrade_global/cfgtoollogs/upgrade/auto]
logs folder [ORCL13][/home/oracle/upgrade11gR2/ORCL13]

upg>

During the upgrade its best to monitor both the logfile as well status via lsj command at autoupgrade prompt:

upg> lsj
+----+-------+---------+---------+-------+--------------+--------+-----------+
|Job#|DB_NAME|    STAGE|OPERATION| STATUS|    START_TIME| UPDATED|    MESSAGE|
+----+-------+---------+---------+-------+--------------+--------+-----------+
| 101| ORCL13|DBUPGRADE|EXECUTING|RUNNING|21/04/12 10:55|10:59:55|0%Upgraded |
+----+-------+---------+---------+-------+--------------+--------+-----------+
Total jobs 1

upg> 

You can also get details on what autoupgrade tasks by using the tasks command at autoupgrade prompt:

upg> tasks
+---+---------------------+-------------+
| ID|                 NAME|         Job#|
+---+---------------------+-------------+
|  1|                 main|      WAITING|
| 51|           event_loop|TIMED_WAITING|
| 52|              console|     RUNNABLE|
| 53|         queue_reader|      WAITING|
| 54|                cmd-0|      WAITING|
| 55|        job_manager-0|      WAITING|
| 56|           bqueue-101|      WAITING|
|413|            exec_loop|      WAITING|
|421|       monitor_orcl13|TIMED_WAITING|
|422|        catctl_ORCL13|      WAITING|
|423| abort_monitor_ORCL13|TIMED_WAITING|
|424|           async_read|     RUNNABLE|
+---+---------------------+-------------+
upg>

Now, keep monitoring the progress of upgrade:

upg> lsj
+----+-------+---------+---------+-------+--------------+--------+------------+
|Job#|DB_NAME|    STAGE|OPERATION| STATUS|    START_TIME| UPDATED|     MESSAGE|
+----+-------+---------+---------+-------+--------------+--------+------------+
| 101| ORCL13|DBUPGRADE|EXECUTING|RUNNING|21/04/12 10:55|11:18:16|10%Upgraded |
+----+-------+---------+---------+-------+--------------+--------+------------+
Total jobs 1

upg>
upg> lsj
+----+-------+---------+---------+-------+--------------+--------+------------+
|Job#|DB_NAME|    STAGE|OPERATION| STATUS|    START_TIME| UPDATED|     MESSAGE|
+----+-------+---------+---------+-------+--------------+--------+------------+
| 101| ORCL13|DBUPGRADE|EXECUTING|RUNNING|21/04/12 10:55|11:57:48|81%Upgraded |
+----+-------+---------+---------+-------+--------------+--------+------------+
Total jobs 1

upg>
upg> lsj
+----+-------+---------+---------+-------+--------------+--------+------------+
|Job#|DB_NAME|    STAGE|OPERATION| STATUS|    START_TIME| UPDATED|     MESSAGE|
+----+-------+---------+---------+-------+--------------+--------+------------+
| 101| ORCL13|DBUPGRADE|EXECUTING|RUNNING|21/04/12 10:55|12:26:35|91%Upgraded |
+----+-------+---------+---------+-------+--------------+--------+------------+
Total jobs 1

Once the Upgrade is 100% completed, the post upgrade tasks would start with the message column of lsj output stating “Remaining 4.4”.

upg> lsj
+----+-------+----------+---------+-------+--------------+--------+-------------+
|Job#|DB_NAME|     STAGE|OPERATION| STATUS|    START_TIME| UPDATED|      MESSAGE|
+----+-------+----------+---------+-------+--------------+--------+-------------+
| 101| ORCL13|POSTFIXUPS|EXECUTING|RUNNING|21/04/12 10:55|15:11:22|Remaining 4/4|
+----+-------+----------+---------+-------+--------------+--------+-------------+
Total jobs 1
upg> lsj
+----+-------+----------+---------+-------+--------------+--------+-------------+
|Job#|DB_NAME|     STAGE|OPERATION| STATUS|    START_TIME| UPDATED|      MESSAGE|
+----+-------+----------+---------+-------+--------------+--------+-------------+
| 101| ORCL13|POSTFIXUPS|EXECUTING|RUNNING|21/04/12 10:55|15:17:01|Remaining 2/4|
+----+-------+----------+---------+-------+--------------+--------+-------------+
Total jobs 1

upg>
upg> lsj
+----+-------+----------+---------+-------+--------------+--------+-------------+
|Job#|DB_NAME|     STAGE|OPERATION| STATUS|    START_TIME| UPDATED|      MESSAGE|
+----+-------+----------+---------+-------+--------------+--------+-------------+
| 101| ORCL13|POSTFIXUPS|EXECUTING|RUNNING|21/04/12 10:55|15:19:31|Remaining 1/4|
+----+-------+----------+---------+-------+--------------+--------+-------------+
Total jobs 1

After the post upgrade tasks, the same job would convert the upgraded non-cdb database to pdb with message column of lsj stating “Executing describe” & “noncdb_to_pdb – 14%”.

upg> upg> lsj
+----+-------+-----------+---------+-------+--------------+--------+------------------+
|Job#|DB_NAME|      STAGE|OPERATION| STATUS|    START_TIME| UPDATED|           MESSAGE|
+----+-------+-----------+---------+-------+--------------+--------+------------------+
| 101| ORCL13|NONCDBTOPDB|EXECUTING|RUNNING|21/04/12 10:55|15:26:56|Executing describe|
+----+-------+-----------+---------+-------+--------------+--------+------------------+
Total jobs 1

upg> lsj
+----+-------+-----------+---------+-------+--------------+--------+-------------------+
|Job#|DB_NAME|      STAGE|OPERATION| STATUS|    START_TIME| UPDATED|            MESSAGE|
+----+-------+-----------+---------+-------+--------------+--------+-------------------+
| 101| ORCL13|NONCDBTOPDB|EXECUTING|RUNNING|21/04/12 10:55|15:28:07|noncdb_to_pdb - 14%|
+----+-------+-----------+---------+-------+--------------+--------+-------------------+
Total jobs 1

upg>
upg> tasks
+---+-----------------+-------------+
| ID|             NAME|         Job#|
+---+-----------------+-------------+
|  1|             main|      WAITING|
| 14|       event_loop|TIMED_WAITING|
| 15|          console|     RUNNABLE|
| 16|     queue_reader|      WAITING|
| 17|            cmd-0|      WAITING|
| 18|    job_manager-0|      WAITING|
| 19|       bqueue-101|      WAITING|
| 30|        exec_loop|      WAITING|
|292|  pool-4-thread-1|TIMED_WAITING|
|295|noncdb_to_pdb-rdr|     RUNNABLE|
+---+-----------------+-------------+
upg>
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 ORCL

Finally the upgrade is complete and though it took its sweet time but it was really easy and automated.

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 ORCL13                         READ WRITE NO
SQL>

Quick Summary of Issues I faced:

I did face a few errors during the upgrade but those issues were specific to my environment, Its already been a big post so I would create a new post to cover known issues with upgrading the database through autoupgrade utility.

One of the issues that I did face and had no idea on the fix was covered in the post below https://mikedietrichde.com/2020/07/31/upgrade-fails-with-ora-20001-during-datapatch-run/.

Another one was where noncdb_to_pdb operation was stuck at 28% and I got a message at autoupgrade prompt that there has not been any progress in last 25 mins but upon investigation I noted from the noncdbtopdb_orcl13_ORCL13.log that it was stuck at “CREATE TABLE sys.enabled$indexes” and from the Target DB I noticed that session was still progressing (LAST_CALL_ET increased) with WAIT direct path write temp, so it was progressing but slow maybe that’s something related to my environment but thought its worth mentioning so that you don’t disrupt the upgrade job.

upg> -------------------------------------------------
job 101 has not shown progress in last 25 minutes
database [ORCL13]
Stage    [NONCDBTOPDB]
Operation[EXECUTING]
Status   [RUNNING]
Info     [noncdb_to_pdb - 28%]
[Review log files for further information]
-----------------------------------------------
Logs: /home/oracle/upgrade11gR2/ORCL13/101
-----------------------------------------------
upg>
upg> lsj
+----+-------+-----------+---------+-------+--------------+--------+-------------------+
|Job#|DB_NAME|      STAGE|OPERATION| STATUS|    START_TIME| UPDATED|            MESSAGE|
+----+-------+-----------+---------+-------+--------------+--------+-------------------+
| 101| ORCL13|NONCDBTOPDB|EXECUTING|RUNNING|21/04/12 10:55|15:30:07|noncdb_to_pdb - 28%|
+----+-------+-----------+---------+-------+--------------+--------+-------------------+
Total jobs 1

upg>
upg> lsj
+----+-------+-----------+---------+-------+--------------+--------+-------------------+
|Job#|DB_NAME|      STAGE|OPERATION| STATUS|    START_TIME| UPDATED|            MESSAGE|
+----+-------+-----------+---------+-------+--------------+--------+-------------------+
| 101| ORCL13|NONCDBTOPDB|EXECUTING|RUNNING|21/04/12 10:55|16:28:38|noncdb_to_pdb - 57%|
+----+-------+-----------+---------+-------+--------------+--------+-------------------+
Total jobs 1

upg>

Another one was related to some violations (ERROR) when plugging in the PDB but that too is specific to my env and I had to apply Release Update patch 32218454 (19.10.0.0.0 Release_Update 210108185017) on the target CDB and install DV & OLS (not mandatory as it’s warning) to fix this issue:

#
#Before Applying Patch
#
SQL> select name, cause, type, status,action,message,time from pdb_plug_in_violations;

NAME       CAUSE      TYPE      STATUS     ACTION                                   MESSAGE                                                      TIME
---------- ---------- --------- ---------- ---------------------------------------- ------------------------------------------------------------ --------------------
ORCL13     OPTION     WARNING   PENDING    Fix the database option in the PDB or th Database option DV mismatch: PDB installed version NULL. CDB 12-APR-21 06.24.14.9
                                           e CDB                                     installed version 19.0.0.0.0.                               97972 PM

ORCL13     OPTION     WARNING   PENDING    Fix the database option in the PDB or th Database option OLS mismatch: PDB installed version NULL. CD 12-APR-21 06.24.15.0
                                           e CDB                                    B installed version 19.0.0.0.0.                              07506 PM

ORCL13     SQL Patch  ERROR     PENDING    Call datapatch to install in the PDB or  No release updates are installed in the CDB but '19.3.0.0.0  12-APR-21 06.24.15.1
                                           the CDB                                  Release_Update 1904101227' is installed in the PDB           32128 PM
#
#After Applying Patch
#
SQL> select name, cause, type, status,action,message,time from pdb_plug_in_violations;

NAME       CAUSE      TYPE      STATUS     ACTION                                   MESSAGE                                                      TIME
---------- ---------- --------- ---------- ---------------------------------------- ------------------------------------------------------------ --------------------
ORCL13     SQL Patch  ERROR     RESOLVED   Call datapatch to install in the PDB or  No release updates are installed in the CDB but '19.3.0.0.0  12-APR-21 09.01.19.3
                                           the CDB                                  Release_Update 1904101227' is installed in the PDB           12701 PM +05:30

ORCL13     SQL Patch  ERROR     RESOLVED   Call datapatch to install in the PDB or  19.10.0.0.0 Release_Update 2101081850: APPLY with status END 12-APR-21 09.15.25.7
                                           the CDB                                   in the CDB                                                  33416 PM +05:30

ORCL13     SQL Patch  ERROR     RESOLVED   Call datapatch to install in the PDB or  '19.10.0.0.0 Release_Update 2101081850' is installed in the  12-APR-21 09.38.20.0
                                           the CDB                                  CDB but '19.3.0.0.0 Release_Update 1904101227' is installed  85492 PM +05:30
                                                                                    in the PDB

ORCL13     OPTION     WARNING   PENDING    Fix the database option in the PDB or th Database option DV mismatch: PDB installed version NULL. CDB 12-APR-21 09.38.21.3
                                           e CDB                                     installed version 19.0.0.0.0.                               18388 PM +05:30

ORCL13     OPTION     WARNING   PENDING    Fix the database option in the PDB or th Database option OLS mismatch: PDB installed version NULL. CD 12-APR-21 09.38.21.3
                                           e CDB                                    B installed version 19.0.0.0.0.                              19277 PM +05:30
#
# Then you can close and start PDB and it should open in READ WRITE mode with RESTRICTED as NO.

IMPORTANT TIP: In case the autoupgrade prompt is ever disconnected you just have to re-run the autoupgrade.jar again in DEPLOY mode and it will pickup from where it left and open the autoupgrade prompt for you.

Hope this blog will help you upgrade your DB using autoupgrade, feel free to comment below with any errors that you have faced when using autoupgrade or in case you want to share your views on this awesome autoupgrade utility.

One thought on “Upgrade 11gR2 (Non-CDB) to 19c (PDB) using AutoUpgrade

  1. Pingback: Upgrade 12cR2 (Non-CDB) to 19c (PDB) using AutoUpgrade | Oracle Database Internal Mechanism

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.