Executive Summary & Architectural Context
ith the release of Oracle Database 26ai, Oracle Corporation officially removed all support for legacy Non-CDB (Non-Container Database) architecture. While Oracle Database 19c permitted non-CDB deployments as a legacy fallback, Oracle 26ai exclusively runs on the Multitenant Architecture (CDB/PDB).
To upgrade a legacy Oracle 19c non-CDB to Oracle 26ai, DBAs cannot perform a direct in-place upgrade on a non-CDB instance. The non-CDB database must first be converted into a Pluggable Database (PDB) and plugged into a target Container Database (CDB).
<div class="process-flow">
<div class="process-step">
<div class="step-number">1</div>
<div class="step-title">Source Pre-Checks</div>
<div class="step-desc">Run AutoUpgrade -mode analyze on 19c Non-CDB source database.</div>
</div>
<div class="process-arrow">➔</div>
<div class="process-step">
<div class="step-number">2</div>
<div class="step-title">Target CDB Creation</div>
<div class="step-desc">Provision empty 19c/26ai CDB shell with matching character set (AL32UTF8).</div>
</div>
<div class="process-arrow">➔</div>
<div class="process-step">
<div class="step-number">3</div>
<div class="step-title">AutoUpgrade Plugin</div>
<div class="step-desc">AutoUpgrade executes noncdb_to_pdb.sql conversion and plugs PDB into target CDB.</div>
</div>
<div class="process-arrow">➔</div>
<div class="process-step">
<div class="step-number">4</div>
<div class="step-title">PDB Compilation</div>
<div class="step-desc">Open PDB in READ WRITE, recompile invalid objects via utlrp.sql, and verify datapatch.</div>
</div>
</div>
🛠️ Step 1: Pre-Migration Prerequisites & Character Set Audit
Before attempting non-CDB to PDB conversion, ensure the source non-CDB and target CDB satisfy mandatory architectural compatibility rules:
- Character Set Alignment: The target CDB’s
NLS_CHARACTERSETMUST be a superset of or identical to the source non-CDB. Oracle strongly recommendsAL32UTF8. - Time Zone Version: The target CDB’s time zone file version must be equal to or higher than the source database.
- Database Options: Installed options (e.g., Spatial, OLAP, Multimedia) in the source non-CDB must exist in the target CDB root (
CDB$ROOT).
Run the following SQL query on both the source Non-CDB and target CDB to audit compatibility:
-- Audit Database Character Set, National Character Set, and Time Zone Version
SELECT property_name, property_value
FROM database_properties
WHERE property_name IN ('NLS_CHARACTERSET', 'NLS_NCHAR_CHARACTERSET', 'DST_PRIMARY_TT_VERSION');
📝 Step 2: AutoUpgrade Plugin Configuration File Creation
The modern Oracle AutoUpgrade utility automates the entire non-CDB to PDB conversion workflow via the target_cdb and plugin_filename directives.
Create an AutoUpgrade configuration file (/u01/app/oracle/cfg/noncdb_to_pdb.cfg) on your database server:
# Global AutoUpgrade Parameters
global.autoupg_log_dir=/u01/app/oracle/cfg/logs
# Job 1: Non-CDB (PROD19) to PDB (PDB_PROD19) Conversion in Target CDB (CDB26)
upg1.dbname=PROD19
upg1.start_time=IMMEDIATE
upg1.source_home=/u01/app/oracle/product/19.0.0/dbhome_1
upg1.target_home=/u01/app/oracle/product/26.0.0/dbhome_1
upg1.sid=PROD19
upg1.target_cdb=CDB26
upg1.target_pdb_name=PDB_PROD19
upg1.target_db_start_mode=READ WRITE
upg1.upg_err_action=abort
upg1.restoration=YES
💡 Tip: Setting
restoration=YESautomatically creates a guaranteed restore point (GRP) prior to conversion, enabling instant fallback if storage or plugin errors occur.
🚀 Step 3: Executing Pre-Checks & Non-CDB Conversion
1. Run AutoUpgrade Pre-Checks (Analyze Mode)
Execute AutoUpgrade in analyze mode to validate dictionary sanity, undo mode, and tablespace encryptions without modifying database files:
java -jar /u01/app/oracle/product/26.0.0/dbhome_1/rdbms/admin/autoupgrade.jar \
-config /u01/app/oracle/cfg/noncdb_to_pdb.cfg \
-mode analyze
Review the generated HTML report located in /u01/app/oracle/cfg/logs/PROD19/100/prechecks/PROD19_prechecks.html. Resolve any FAILURE or WARNING items (such as stale optimizer stats or pending material views).
2. Execute Non-CDB Conversion (Deploy Mode)
Once pre-checks pass cleanly, launch AutoUpgrade in deploy mode to execute the non-CDB to PDB plugin conversion:
java -jar /u01/app/oracle/product/26.0.0/dbhome_1/rdbms/admin/autoupgrade.jar \
-config /u01/app/oracle/cfg/noncdb_to_pdb.cfg \
-mode deploy
AutoUpgrade automatically executes the following actions:
- Creates a Guaranteed Restore Point (
AUTOUPGRADE_GRP_PROD19). - Shuts down the non-CDB source database (
PROD19) cleanly. - Generates the PDB manifest XML file (
/u01/app/oracle/cfg/logs/PROD19_describe.xml). - Plugs
PROD19asPDB_PROD19into targetCDB26. - Executes
noncdb_to_pdb.sqlto re-align dictionary views withCDB$ROOT. - Opens
PDB_PROD19inREAD WRITEmode and runsdatapatchto align SQL patch levels.
🔍 Step 4: Post-Migration Validation & PDB Health Check
After AutoUpgrade completes with status FINISHED, connect to the target Container Database (CDB26) to verify PDB plugin status:
-- Connect to target CDB as SYSDBA
SQL> CONNECT / AS SYSDBA;
-- 1. Verify PDB open status and restricted mode
SELECT name, open_mode, restricted, total_size/1024/1024/1024 AS size_gb
FROM v$pdbs
WHERE name = 'PDB_PROD19';
-- Expected Output:
-- NAME OPEN_MODE RESTRICTED SIZE_GB
-- ------------ ----------- ------------ ----------
-- PDB_PROD19 READ WRITE NO 450.25
-- 2. Inspect PDB Plugin Violations
SELECT type, cause, message, status
FROM pdb_plug_in_violations
WHERE name = 'PDB_PROD19' AND status != 'RESOLVED';
-- Expected Output: 0 rows selected (or harmless WARNINGs for OPTION mismatch)
If pdb_plug_in_violations displays unresolved ERROR items (e.g. ORA-65126), execute utlrp.sql inside the PDB to recompile invalid objects:
ALTER SESSION SET CONTAINER = PDB_PROD19;
@?/rdbms/admin/utlrp.sql
📚 Official Documentation & Technical References
- Oracle Database 23ai/26ai Upgrade Guide — Official Oracle Database Upgrade Documentation
- Oracle AutoUpgrade Utility Guide — Official Guide on AutoUpgrade Syntax and Configuration Parameters
- ORACLE-BASE: AutoUpgrade Download and Installation — Tim Hall’s Guide to AutoUpgrade Workflows
Need expert assistance migrating legacy Non-CDB databases to Multitenant PDBs or upgrading to Oracle 26ai? Contact our Database Specialists or explore our Enterprise Health Audits.