🖥️ Environment Details : Current Database Version: Oracle Database 19c (Container Database – CDB) Target Database Version: Oracle 26ai Database Operating System: Oracle Enterprise Linux (OEL) 8.10 – 64 Bit ✅ Upgrade Path : Since the current database version is Oracle 19c (CDB), a direct upgrade to Oracle 26ai database is supported. No intermediate upgrade is required. Earlier, we have seen how to upgrade Oracle older releases to Oracle 19c (Refer: Step by Step Database Upgrade from Oracle 12c to 19c). Now Oracle has discontinued the manual upgrade method of upgrading DBs. You have to use AutoUpgrade method to upgrade your DB to Oracle 26ai database. 🔰Before you begin: 1) Target database must be either Oracle Database 19c or Oracle Database 21c to upgrade to Oracle 26ai Database. 2) The database must be Container Database (CDB). If it is currently configured as a non-CDB, you need to convert it to a CDB first before proceeding with the upgrade or AutoUpgrade has the ability to convert non-CDB to CDB database. 3) The Oracle Grid Infrastructure release version must be equal to or later than the version you are upgrading to. 4) You can upgrade one or many databases without human intervention in single command and a single configuration file. 📊Different Methods of Upgrade: 1) AutoUpgrade Utility 2) Replay Upgrade 3) Oracle Data Pump 4) Transportable Tablespace 5) Fleet Patching and Provisioning (FPP) gold images 6) Using OEM 🔎 My existing DB version is earlier than 19c. Can I directly upgrade my DB to Oracle 26ai database ❓ If your current Oracle Database release is earlier than 19c, then a direct upgrade to Oracle 26ai Database is not supported. You must first upgrade to a supported intermediate release, and then proceed with the upgrade to Oracle 26ai Database. You can perform a direct upgrade to Oracle 26ai Database from the following releases: |
Step 1: Capture data from existing Oracle 19c database. Login as oracle installer owner, set the environment variables and generate the below spool file. $su - oracle $mkdir -p /home/oracle/26ai_upgrade $chown -R oracle:oinstall /home/oracle/26ai_upgrade $chmod -R 755 /home/oracle/26ai_upgrade sqlplus / as sysdba spool /home/oracle/26ai_upgrade/DB_data_capture_Pre.txt alter session set nls_date_format='dd-mm-yyyy hh24:mi:ss'; select sysdate from dual; Prompt ======================================================== Prompt Database Details Prompt ======================================================== set lines 300 pages 3000 select name,db_unique_name,database_role,open_mode,log_mode,controlfile_type,flashback_on from v$database; select banner from v$version; Prompt ======================================================== Prompt D + R + C + T Names and Location Prompt ======================================================== col name for a56 col member for a56 select file#,name from v$datafile; select name from v$controlfile; select name from v$tempfile; select * from v$logfile; select * from v$log; Prompt ======================================================== Prompt Parameter checks Prompt ======================================================== show parameter db_name show parameter db_unique_name show parameter compatible show parameter cluster show parameter sga show parameter pga show parameter memory show parameter reco show parameter parallel show parameter job_queue_processes show parameter case show parameter broker show parameter processes show parameter db_file show parameter transaction show parameter session Prompt ======================================================== Prompt Patches checks Prompt ======================================================== set line 200 pages 2000 col ACTION for a30 col STATUS for a10 col ACTION_TIME for a30 col DESCRIPTION for a70 select PATCH_ID,ACTION,ACTION_TIME,DESCRIPTION,STATUS from dba_registry_sqlpatch; Prompt ======================================================== Prompt NLS Parameter Checks Prompt ======================================================== col property_name for a45 col property_value for a45 select property_name,property_value from database_properties order by 1; Prompt ======================================================== Prompt Database Registry Component checks Prompt ======================================================== col comp_name for a56 col comp_id for a20 col schema for a34 select COMP_ID,COMP_NAME,VERSION,STATUS,schema from dba_registry; Prompt ======================================================== Prompt Object Validations/Invalidations Prompt ======================================================== set lines 200 pages 2000 col owner for a25 col object_name for a60 col object_type for a25 select object_name,owner,object_type,status,created,last_ddl_time from dba_objects where status='INVALID'; select owner,object_type,count(*) from dba_objects where status='INVALID' group by owner,object_type order by 1; select owner,count(*) from dba_objects where status='INVALID' group by owner order by 1; select owner,object_name,object_type,status from dba_objects where status='INVALID' and owner in('SYS','SYSTEM'); Prompt ================================================================================================================ Prompt Timezone checks Prompt Note: If your source version's time zone is already higher than the destination's home, Prompt then apply the matching or any higher time zone patch to your destination home before upgrade. Prompt For latest DST patch refer to Note 412160.1 Prompt ================================================================================================================ SELECT version FROM v$timezone_file; Prompt ======================================================== Prompt Oracle Label Security and Database Vault Checks Prompt ======================================================== SELECT * FROM V$OPTION WHERE PARAMETER like 'Oracle%'; Prompt ======================================================== Prompt Data Encryption Checks Prompt ======================================================== col wrl_type for a30 col WRL_PARAMETER for a60 select * from v$encryption_wallet; select * from gv$encryption_wallet; select distinct tablespace_name,ENCRYPTED from dba_tablespaces; SELECT * FROM DBA_ENCRYPTED_COLUMNS; Prompt ==================================================================================================================== Prompt Mview checks Prompt Note: Check the status of all materialized views (MV), and refresh any materialized views that are not fresh. Prompt Before upgrading Oracle Database, you must wait until all materialized views have completed refreshing. Prompt Refer: Unable To Proceed With Upgrade Due To Materiealized View Refresh That Never Completes (Doc ID 1467392.1) Prompt ==================================================================================================================== SELECT distinct o.name FROM sys.obj$ o, sys.user$ u, sys.sum$ s WHERE o.type# = 42 AND bitand(s.mflags, 8) = 8; col MVIEW_NAME for a45 select MVIEW_NAME,OWNER,STALENESS,STALE_SINCE,LAST_REFRESH_DATE,REFRESH_METHOD from dba_mviews order by 1; select u.name owner,o.name mview_name, s.obj#,lastrefreshdate from obj$ o, sum$ s, user$ u where u.user# = o.owner# and o.obj# = s.obj# and o.type# = 42 AND bitand(s.mflags, 8) = 8; select decode(bitand(s.mflags,8), 8,'Refresh In Progress','Not being refreshed') from sys.obj$ o, sys.user$ u, sys.sum$ s where o.obj# = s.obj# and o.owner# = u.user# and o.type# = 42 and o.name='&mview'; select * from v$mvrefresh; select * from dba_jobs_running; Prompt ====================================================================================== Prompt Distributed Transaction Checks PromptNote: There should not be any distributed transaction in pending state. Prompt ====================================================================================== select * from dba_2pc_pending; Prompt ====================================================================================== Prompt Check whether there are tables with SDO_GEOMETRY by executing below query. Prompt If it returns a row(s), then apply Patch 25293022 on the 12.2 Oracle home, before starting the upgrade. Prompt Check Oracle Spatial (SDO) is installed, if yes apply Patch 29715479 onto ORACLE_HOME before upgrade to avoid issue reported in Note 2547520.1 Prompt ====================================================================================== col owner format a15 col table_name format a30 col column_name format a30 SELECT owner,table_name,column_name FROM dba_tab_columns WHERE data_type = 'SDO_GEOMETRY' AND owner != 'MDSYS' ORDER BY 1,2,3; Prompt ====================================================================================== Prompt To ensure that the new access controls are part of your upgrade testing, prepare a post-upgrade script to make the scripts available in your database environment. Prompt After the upgrade, grant specific required privileges. Access is based on the usage in the original database. Prompt ====================================================================================== set lines 300 pages 3000 col REFERENCED_OWNER for a25 col OWNER for a30 col REFERENCED_NAME for a34 col REFERENCED_LINK_NAME for a34 SELECT * FROM DBA_DEPENDENCIES WHERE referenced_name IN ('UTL_TCP','UTL_SMTP','UTL_MAIL','UTL_HTTP','UTL_INADDR','DBMS_LDAP') AND owner NOT IN ('SYS','PUBLIC','ORDPLUGINS'); Prompt ====================================================================================== Prompt Capture DB Link Details and create script to re-create db link Prompt During the upgrade to Oracle Database 12c any passwords in database links are encrypted. Prompt To downgrade to the original release, all of the database links with encrypted passwords must be dropped prior to the downgrade. Prompt ====================================================================================== SELECT 'CREATE '||DECODE(U.NAME,'PUBLIC', 'public')||' DATABASE LINK '||CHR(10)||DECODE(U.NAME,'PUBLIC',Null, 'SYS','',U.NAME||'.')|| L.NAME||chr(10) || 'CONNECT TO ' || L.USERID || ' IDENTIFIED BY "'||L.PASSWORD||'" USING '''||L.HOST||''''||chr(10)||';' TEXT FROM SYS.LINK$ L, SYS.USER$ U WHERE L.OWNER# = U.USER#; Prompt ========================================================================================================= Prompt SYS.AUD$ table checks Prompt Note: IF Oracle Label Security and Oracle Database Vault are installed then aud$ will be in SYSTEM.AUD$ Prompt ========================================================================================================= select owner,tablespace_name from dba_extents where segment_name='AUD$' group by owner,tablespace_name; Prompt ========================================================================================================= Prompt Couting and Querying duplicate objects Prompt Note: Refer Note 1030426.6 How to Clean Up Duplicate Objects Owned by SYS and SYSTEM schema Prompt ========================================================================================================= SELECT count(1) FROM dba_objects WHERE object_name||object_type in (SELECT object_name||object_type from dba_objects where owner = 'SYS') AND owner = 'SYSTEM' AND object_name NOT in ('AQ$_SCHEDULES','AQ$_SCHEDULES_PRIMARY','DBMS_REPCAT_AUTH','DBMS_REPCAT_AUTH') ; SELECT object_name, object_type, subobject_name, object_id FROM dba_objects WHERE object_name||object_type in (SELECT object_name||object_type FROM dba_objects WHERE owner = 'SYS') AND owner = 'SYSTEM' AND object_name NOT in ('AQ$_SCHEDULES','AQ$_SCHEDULES_PRIMARY','DBMS_REPCAT_AUTH','DBMS_REPCAT_AUTH') ; Prompt ========================================================================================================================= Prompt Disabling Concurrent Statistics Collection Prompt Database Upgrade to 11.2 hangs, when upgrade process executes dbms_registry_sys.gather_stats(null) (Doc ID 1588552.1) Prompt ========================================================================================================================= SELECT dbms_stats.get_prefs('CONCURRENT') from dual; Prompt ========================================================================================================================= Prompt Backing-up Scheduler Jobs Prompt Disable any running scheduler jobs before upgrade. All scheduler jobs will be converted into dba_jobs from Oracle 19c onwards. Prompt ========================================================================================================================= col owner for a30 col job_name for a50 col job_action for a70 set lines 300 pages 3000 col status for a13 col ACTUAL_START_DATE for a23 col additional_info for a60 select OWNER,JOB_NAME,JOB_ACTION,ENABLED from dba_scheduler_jobs where ENABLED='TRUE'; select JOB_NAME,OWNER,STATUS,additional_info,to_char(ACTUAL_START_DATE,'dd-mm-yyyy hh24:mi:ss') ACTUAL_START_DATE from dba_scheduler_job_run_details where job_name='&Job_Name' order by ACTUAL_START_DATE; Prompt ========================================================================================================= Prompt Check whether database has any externally authenticated SSL users Prompt ========================================================================================================= SELECT name FROM sys.user$ WHERE ext_username IS NOT NULL AND password = 'GLOBAL'; Prompt ========================================================================================================= Prompt Remove all hidden parameters prior to upgrading Prompt ========================================================================================================= col NAME for a45 col VALUE for a45 SELECT name, value from SYS.V$PARAMETER WHERE name LIKE '\_%' ESCAPE '\' order by name; Prompt ========================================================================================================= Prompt Network ACL Checks Prompt If the query returns any row, then please follow Note 1958876.1 Upgrade fails with ORA-01830 date format picture ends before converting entire input string ORA-06512: at "SYS.XS_OBJECT_MIGRATION" to avoid failure in XDB's upgrade. Prompt ========================================================================================================= select aclid, start_date, end_date from xds_ace where start_date is not null; Prompt ========================================================================================================= Prompt Database and RDBMS Compatibility Checks and ensure all Diskgroups are mounted or connected. Prompt ========================================================================================================= select name,state,total_mb,free_mb,COMPATIBILITY,DATABASE_COMPATIBILITY from gv$asm_diskgroup; Prompt ========================================================================================================= Prompt Ensure error column returns "no rows". If you get any error message then resolve that first. Prompt ========================================================================================================= set lines 300 set pages 3000 col DEST_NAME for a30 select inst_id,dest_id,DEST_NAME,STATUS,DB_UNIQUE_NAME,RECOVERY_MODE,DATABASE_MODE,error from gv$archive_dest_status; SELECT resetlogs_id,dest_id,max(SEQUENCE#) FROM V$ARCHIVED_LOG where applied='YES' group by dest_id,resetlogs_id order by 1 desc,2; Prompt ========================================================================================================= Prompt Existing Restore point and flashback details Prompt ========================================================================================================= col name for a30 select flashback_on from v$database; select scn, storage_size, time, name from v$restore_point; Prompt ========================================================================================================= Prompt Ensure Database Vault owner has DV PATCH ADMIN role. Prompt ========================================================================================================= col GRANTEE for a34 col GRANTED_ROLE for a34 select grantee,granted_role from dba_role_privs where grantee='SYS' and granted_role like '%DV%'; Prompt ========================================================================================================= Prompt Ensure qopatch command is executed successfully without any error. Prompt ========================================================================================================= set serverout on exec dbms_qopatch.get_sqlpatch_status; Prompt ========================================================================================================= Prompt Ensure there should be any DB file in recovery mode, backup mode, and there should not be any block corruption in DB. Prompt ========================================================================================================= SELECT * FROM v$backup WHERE status != 'NOT ACTIVE'; select * from v$recover_file; select * from v$database_block_corruption; Prompt ========================================================================================================= Prompt Before the upgrade, if Oracle Multimedia and/or Oracle Spatial is installed, check the definition of the PUBLIC synonym AREA. Prompt It should be defined to be a synonym for OGC_AREA, otherwise, it causes invalid DB components upon upgrading. Prompt ========================================================================================================= col OWNER for a30 col SYNONYM_NAME for a34 col TABLE_OWNER for a30 select owner, synonym_name, table_owner, table_name from dba_synonyms where synonym_name = 'AREA'; Prompt ========================================================================================================= Prompt Check adequate free space is avaialable in temporarary tablespace Prompt ========================================================================================================= col tablespace for a12 SELECT A.tablespace_name tablespace, D.gb_total, SUM (A.used_blocks * D.block_size) / 1024 / 1024/1024 Gb_used, D.gb_total - SUM (A.used_blocks * D.block_size) / 1024 / 1024 /1024 gb_free FROM v$sort_segment A, ( SELECT B.name, C.block_size, SUM (C.bytes) / 1024 / 1024 /1024 gb_total FROM v$tablespace B, v$tempfile C WHERE B.ts#= C.ts# GROUP BY B.name, C.block_size ) D WHERE A.tablespace_name = D.name GROUP by A.tablespace_name, D.gb_total; Prompt ========================================================================================================= Prompt Check adequate free space is avaialable in flash recovery area Prompt ========================================================================================================= SELECT ROUND((A.SPACE_LIMIT / 1024 / 1024 / 1024), 2) AS TOTAL_GB, ROUND((A.SPACE_USED / 1024 / 1024 / 1024), 2) AS USED_GB, ROUND((A.SPACE_RECLAIMABLE / 1024 / 1024 / 1024), 2) AS RECLAIMABLE_GB, SUM(B.PERCENT_SPACE_USED) AS PERCENT_OF_SPACE_USED FROM V$RECOVERY_FILE_DEST A, V$FLASH_RECOVERY_AREA_USAGE B GROUP BY SPACE_LIMIT, SPACE_USED , SPACE_RECLAIMABLE ; Prompt ========================================================================================================= Prompt Check adequate free space is avaialable in default and system tablespaces Prompt ========================================================================================================= set pages 200 set line 180 col file_name for a60 col TABLESPACE_NAME for a25 SELECT A.TABLESPACE_NAME,round(SUM(A.TOTS)/1024/1024) "Tot size MB", round(SUM(A.SUMB)/1024/1024) "Tot Free MB", (SUM(A.SUMB)*100/SUM(A.TOTS)) "%FREE", 100-(SUM(A.SUMB)*100/SUM(A.TOTS)) "%USED", round(SUM(A.LARGEST)/1024/1024) MAX_FREE,SUM(A.CHUNKS) CHUNKS_FREE FROM ( SELECT TABLESPACE_NAME,0 TOTS,SUM(BYTES) SUMB, MAX(BYTES) LARGEST,COUNT(*) CHUNKS FROM SYS.DBA_FREE_SPACE A GROUP BY TABLESPACE_NAME UNION SELECT TABLESPACE_NAME,SUM(BYTES) TOTS,0,0,0 FROM SYS.DBA_DATA_FILES GROUP BY TABLESPACE_NAME) A, V$INSTANCE B GROUP BY UPPER(B.INSTANCE_NAME),A.TABLESPACE_NAME having (100-(SUM(A.SUMB)*100/SUM(A.TOTS))) > 10 / Prompt ========================================================================================================= Prompt Check whether Unified Auditing is enabled Prompt ========================================================================================================= SELECT PARAMETER, VALUE FROM V$OPTION WHERE PARAMETER = 'Unified Auditing'; select count(*) from audsys.aud$unified; col trigger_name for a30 col trigger_type for a23 col owner for a19 col status for a17 col TABLE_NAME for a36 col TABLE_OWNER for a23 col BASE_OBJECT_TYPE for a34 set lines 300 pages 3000 select trigger_name,trigger_type,owner,status,TABLE_NAME,TABLE_OWNER,BASE_OBJECT_TYPE from dba_triggers where status='ENABLED' order by 1; spool off; Now capture OS Data as well. Login as oracle user and execute below commands: $cat /etc/redhat-release $date $id $hostname $uname -a $env | grep ORA $ps -ef |grep pmon $ps -ef |grep tns $ps -ef | grep agent $lsnrctl status LISTENER_NAME $which opatch $opatch version $opatch lspatches $opatch lsinv |
Step 2: Oracle 26ai Database Software Installation Download Oracle 26ai database software for Linux OS and start rdbms software installation. Refer : Oracle 26ai RAC Installation on Linux Step by Step In my testing environment, the Oracle 26ai database software has already been installed, therefore the installation steps are not repeated in this guide. For the purpose of this article, we will assume that Oracle 26ai software is already available on the server, and the focus will be solely on the database upgrade activity. Copy below files from Oracle 19c Home to Oracle 26ai database home. - Pfile/Spfile - Password File - tnsnames.ora - listener.ora - sqlnet.ora - wallet files if exist - crontab scripts ---> Modify crontab scripts if scheduled with new Oracle 26ai DB home. |
Step 4: Prepare AutoUpgrade Utility and create sample config file for upgrade. Beginning with the Oracle 26ai Database release, traditional upgrade methods such as DBUA (Database Upgrade Assistant) and manual upgrade procedures are desupported. Database AutoUpgrade is the supported and recommended method for upgrading Oracle database. You can upgrade one or many databases without human intervention in single command and a single configuration file. In Oracle Database 19c and later target Oracle homes, the autoupgrade.jar file exists by default. However, Oracle recommends that you download the latest version and replace the one already existing under $ORACLE_HOME/rdbms/admin or you can create a new directory and place the autoupgrade.jar there . Let's check the AutoUpgrade.jar file under both Oracle 19c and Oracle 26ai ORACLE_HOME. Source: [oracle@ora26ai ~]$ id uid=1002(oracle) gid=2000(oinstall) groups=2000(oinstall),2100(asmadmin),2200(dba),2300(oper),2400(asmdba),2500(asmoper) [oracle@ora26ai ~]$ cd /u01/app/oracle/product/19.0.0/dbhome_1/rdbms/admin [oracle@ora26ai admin]$ ll autoupgrade.jar -rw-r--r-- 1 oracle oinstall 3360892 Feb 9 2019 autoupgrade.jar Target: [oracle@ora26ai admin]$ cd /u01/app/oracle/product/23.0.0/dbhome_1/rdbms/admin/ [oracle@ora26ai admin]$ ll autoupgrade.jar -rw-r----- 1 oracle oinstall 6729196 Jan 17 12:47 autoupgrade.jar Let's create new directory as autoupgrade under /home/oracle location and move newly downloaded autoupgrade.jar file there. [root@ora26ai ~]# cd /u01/app/oracle [root@ora26ai oracle]# ll drwxr-x--- 3 oracle oinstall 21 Mar 6 04:32 admin drwxr-x--- 3 oracle oinstall 21 Mar 6 04:34 audit drwxr-x--- 5 oracle oinstall 47 Mar 6 04:34 cfgtoollogs drwxr-xr-x 2 oracle oinstall 6 Mar 6 04:31 checkpoints drwxrwx--- 25 oracle oinstall 4096 Mar 6 05:03 diag drwxr-x--- 3 oracle oinstall 21 Mar 6 04:32 oradata drwxr-xr-x. 4 oracle oinstall 34 Mar 6 04:12 product drwxr-x--- 3 oracle oinstall 21 Mar 6 04:32 recovery_area [root@ora26ai oracle]# mkdir autoupgrade [root@ora26ai oracle]# chown -R oracle:oinstall autoupgrade [root@ora26ai oracle]# chmod -R 755 autoupgrade [root@ora26ai oracle]# ls -ld /u01/app/oracle/autoupgrade/ drwxr-xr-x 2 oracle oinstall 6 Mar 6 16:27 /u01/app/oracle/autoupgrade/ [root@ora26ai oracle]# cd autoupgrade/ [root@ora26ai autoupgrade]# cp /setup/autoupgrade.jar . [root@ora26ai autoupgrade]# ll -rwxr-x--- 1 root root 6960211 Mar 6 16:27 autoupgrade.jar [root@ora26ai autoupgrade]# chmod 777 autoupgrade.jar #Let's create sample AutoUpgrade Config file. [oracle@ora26ai autoupgrade]$ id uid=1002(oracle) gid=2000(oinstall) groups=2000(oinstall),2100(asmadmin),2200(dba),2300(oper),2400(asmdba),2500(asmoper) [oracle@ora26ai ~]$ cd /u01/app/oracle/autoupgrade/ [oracle@ora26ai autoupgrade]$ ll -rwxrwxrwx 1 root root 6960211 Mar 6 16:27 autoupgrade.jar [oracle@dbnode1 ~]$ cd /u01/app/oracle/product/19.0.0/dbhome_1 [oracle@ora26ai ~]$ id uid=1002(oracle) gid=2000(oinstall) groups=2000(oinstall),2100(asmadmin),2200(dba),2300(oper),2400(asmdba),2500(asmoper) [oracle@ora26ai ~]$ cd /u01/app/oracle/product/19.0.0/dbhome_1 [oracle@ora26ai dbhome_1]$ java -jar /u01/app/oracle/autoupgrade/autoupgrade.jar -create_sample_file config Created sample configuration file /tmp/sample_config.cfg [oracle@ora26ai dbhome_1]$ ls -ltr /tmp/sample_config.cfg -rw-r--r-- 1 oracle oinstall 4991 Mar 6 16:34 /tmp/sample_config.cfg Let’s review the AutoUpgrade configuration file and understand the parameters defined in it. [oracle@ora26ai dbhome_1]$ cat /tmp/sample_config.cfg ################################################################ # # ::: Sample config file for upgrade ::: # # Build version 26.2.260205 # Build date 2026/02/05 04:36:27 +0000 # # # Directory includes the following: # (1) upgrade's global directory # (2) Any logs tied to a job # ################################################################ ################################################################ # # ::: MANDATORY PARAMETERS ::: # # global.global_log_dir # The base logging directory of upgrade # Each instance of upgrade must write to a unique directory # <prefix>.sid # The SID of the non-CDB or CDB to upgrade # <prefix>.source_home # Path to the Oracle home of the database # <prefix>.target_home # Path to the Oracle home to which you want to upgrade # ################################################################ global.global_log_dir=<$ORACLE_BASE/cfgtoollogs/upgrade or /tmp/upgrade> upg1.sid=<$ORACLE_SID or {SID}}> upg1.source_home=<$ORACLE_HOME or /u01/app/oracle/product/12.2/dbhome_1> upg1.target_home=<$ORACLE_TARGET_HOME or /u01/app/oracle/product/23/dbhome_1> ################################################################ # # global.keystore # Location where upgrade can store its keystore # Needed for most operations on encrypted databases # ################################################################ #global.keystore=/u01/app/oracle/admin/ORCL/keystore ################################################################ # # <prefix>.drop_grp_after_upgrade # Drop the restore point after successful upgrade # Accepted values: YES, NO # ################################################################ #upg1.drop_grp_after_upgrade= ################################################################ # # <prefix>.restoration # Create a guaranteed restore point before upgrade # Accepted values: YES, NO # ################################################################ #upg1.restoration= ################################################################ # # <prefix>.add_after_upgrade_pfile # Path to file containing parameters to add after upgrade # Example: /u01/app/oracle/admin/ORCL/init_add.ora # ################################################################ #upg1.add_after_upgrade_pfile= ################################################################ # # <prefix>.drop_after_upgrade_pfile # Path to file containing parameters to remove after upgrade # Example: /u01/app/oracle/admin/ORCL/init_drop.ora # ################################################################ #upg1.drop_after_upgrade_pfile= ################################################################ # # <prefix>.before_action # Path to script to execute before starting upgrade flow # ################################################################ #upg1.before_action=/u01/app/oracle/admin/ORCL/before_upgrade.sh ################################################################ # # <prefix>.after_action # Path to script to execute after the upgrade flow # ################################################################ #upg1.after_action=/u01/app/oracle/admin/ORCL/after_upgrade.sh ################################################################ # # <prefix>.drop_win_src_service # Windows only: Drop the Windows service after registering the new service # Accepted values: YES, NO # ################################################################ #upg1.drop_win_src_service= ################################################################ # # <prefix>.wincredential # Location of a Microsoft Windows credential object file that you have previously generated with the upgrade command-line parameter load_win_credential. # ################################################################ #upg1.wincredential=C:Usersoraclecred ################################################################ # # <prefix>.log_dir # Location of database-specific log files created during the upgrade # If not specified, global.global_log_dir is used # ################################################################ #upg1.log_dir=/u01/app/oracle/admin/ORCL/upgrade_logs ################################################################ # # <prefix>.raise_compatible # Raise compatible parameter to the default value of the new release # Requires <prefix>.drop_grp_after_upgrade=yes # Accepted values: YES, NO # ################################################################ #upg1.raise_compatible= ################################################################ # # <prefix>.run_dictionary_health # Perform a dictionary check as part of the pre-upgrade analysis # Accepted values: FULL, CRITICAL # ################################################################ #upg1.run_dictionary_health= ################################################################ # # <prefix>.timezone_upg # Upgrade the time zone file after upgrade # Accepted values: YES, NO # ################################################################ #upg1.timezone_upg=
In this testing environment, only the mandatory parameters are included in the configuration file to keep the setup simple and focused on the upgrade process. Let’s copy the sample configuration file from /tmp to a customized location. This step is optional; however, I have created a separate directory to keep track of the AutoUpgrade activity and related files. [oracle@ora26ai ~]$ cp /tmp/sample_config.cfg /u01/app/oracle/autoupgrade/ [oracle@ora26ai ~]$ cd /u01/app/oracle/autoupgrade/ [oracle@ora26ai autoupgrade]$ mv sample_config.cfg autoupg.cfg [oracle@ora26ai autoupgrade]$ ll -rw-r--r-- 1 oracle oinstall 4991 Mar 6 16:36 autoupg.cfg -rwxrwxrwx 1 root root 6960211 Mar 6 16:27 autoupgrade.jar [oracle@ora26ai autoupgrade]$ vi autoupg.cfg After keeping only the mandatory parameters along with a few additional required settings, new configuration file will look similar to the example shown below. [oracle@ora26ai autoupgrade]$ cat autoupg.cfg global.global_log_dir=/u01/app/oracle/cfgtoollogs/upgrade upg1.sid=AUTOUPG upg1.source_home=/u01/app/oracle/product/19.0.0/dbhome_1 upg1.target_home=/u01/app/oracle/product/23.0.0/dbhome_1 upg1.restoration=YES upg1.log_dir=/u01/app/oracle/autoupgrade/upgrade_logs upg1.timezone_upg=YES |
Step 5: Analyze the AutoUpgrade JAR File Let's ensure taht the specified files are located in respective directories. [oracle@ora26ai autoupgrade]$ id uid=1002(oracle) gid=2000(oinstall) groups=2000(oinstall),2100(asmadmin),2200(dba),2300(oper),2400(asmdba),2500(asmoper) [oracle@ora26ai autoupgrade]$ pwd /u01/app/oracle/autoupgrade [oracle@ora26ai autoupgrade]$ ll -rw-r--r-- 1 oracle oinstall 286 Mar 6 16:38 autoupg.cfg -rwxrwxrwx 1 root root 6960211 Mar 6 16:27 autoupgrade.jar [oracle@ora26ai autoupgrade]$ ll /u01/app/oracle/product/23.0.0/dbhome_1/jdk/bin/java -rwxr-xr-x 1 oracle oinstall 12368 Jan 17 18:11 /u01/app/oracle/product/23.0.0/dbhome_1/jdk/bin/java [oracle@ora26ai autoupgrade]$ ll /u01/app/oracle/autoupgrade/autoupgrade.jar -rwxrwxrwx 1 root root 6960211 Mar 6 16:27 /u01/app/oracle/autoupgrade/autoupgrade.jar [oracle@ora26ai autoupgrade]$ ll /u01/app/oracle/autoupgrade/autoupg.cfg -rw-r--r-- 1 oracle oinstall 286 Mar 6 16:38 /u01/app/oracle/autoupgrade/autoupg.cfg AutoUpgrade "-mode analyze" will not start the upgrade but it will perform pre-upgrade checks on the database using the configuration file autoupg.cfg. This helps to identify any potential issues, required fixes, and compatibility problems before starting the actual upgrade. AutoUpgrade Utility has it's own command line interactive mode where you can use multiple commands to check,view,stop specific job, etc. Below are the options availbale in AutoUpgrade Interactive mode: upg> help exit To close and exit help Displays help lsj [<option>] [-a <number>] Lists jobs by status up to n elements -f - Filter by finished jobs -r - Filter by running jobs -e - Filter by jobs with errors -p - Filter by jobs being prepared -n <number> - Display up to n jobs -a <number> - Repeats the command (in <number> seconds) lsr Displays the restoration queue lsa Displays the stop queue tasks Displays the tasks running clear Clears the terminal resume -job <number> [-ignore_errors=<ORA-#####,ORA-#####>] Restarts a job with option to ignore errors status [<option>] [-a <number>] Summary of current execution -config - Show Config Information -job <number> - Summary of a given job -job <number> -c <dbname> - Show details of container -a [<number>] - Repeats the command (in <number> seconds) restore -job <number> Restores the database to its state prior to the upgrade restore all_failed Restores all failed jobs to their previous states prior to the upgrade logs Displays all log locations stop -job <number> Stops the specified job h[ist] Displays the command line history /[<number>] Executes the command specified from the history. The default is the last command meta Displays Internal latch count hwinfo Displays hardware information along with tools uptime fxlist -job <number> [<option>] Fixup summary -c <dbname> - Container specific FixUps -c <dbname> alter <check> run <yes|no|skip> - Update Run Configuration proceed -job <number> Continue a job: - If waiting, resume AutoUpgrade execution - If scheduled, optionally alter predefined start time -newStartTime [dd/mm/yyyy hh:mm:ss, +<#>h<#>m] - New start time; if omitted, starts in 1 minute [oracle@ora26ai autoupgrade]$ /u01/app/oracle/product/23.0.0/dbhome_1/jdk/bin/java -jar /u01/app/oracle/autoupgrade/autoupgrade.jar -config /u01/app/oracle/autoupgrade/autoupg.cfg -mode analyze AutoUpgrade 26.2.260205 launched with default internal options Processing config file ... Pluggable database AUTOPDB1 in AUTOUPG is MOUNTED and it will not be processed +--------------------------------+ | Starting AutoUpgrade execution | +--------------------------------+ 1 CDB(s) plus 1 PDB(s) will be analyzed Type 'help' to list console commands upg> upg> tasks +---+--------------+-------------+ | ID| NAME| Job#| +---+--------------+-------------+ | 1| main| WAITING| | 9|Common-Cleaner|TIMED_WAITING| | 70| event_loop|TIMED_WAITING| | 71| console| RUNNABLE| | 72| queue_reader| WAITING| | 74| cmd-0| WAITING| | 75| StatUpg| WAITING| | 76| event_loop|TIMED_WAITING| | 78| job_manager-0| WAITING| | 82| exec_loop| WAITING| | 88| exec_loop| WAITING| |101| sql-[66ED13] | RUNNABLE| +---+--------------+-------------+ upg> upg> status Config User configuration file [/u01/app/oracle/autoupgrade/autoupg.cfg] General logs location [/u01/app/oracle/cfgtoollogs/upgrade/cfgtoollogs/upgrade/auto] Mode [ANALYZE] Jobs Summary Total databases in configuration file [2] Total Non-CDB being processed [0] Total Containers being processed [2] Jobs finished successfully [0] Jobs finished/stopped [0] Jobs in progress [1] Progress +---+---------------------------------------------------------+ |Job| Progress| +---+---------------------------------------------------------+ |100|[||||||||||||||||| ] 33 %| +---+---------------------------------------------------------+ upg> upg> lsj +----+-------+---------+---------+-------+----------+-------+----------------------------+ |Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME|UPDATED| MESSAGE| +----+-------+---------+---------+-------+----------+-------+----------------------------+ | 100|AUTOUPG|PRECHECKS|EXECUTING|RUNNING| 16:42:27|14s ago|Loading database information| +----+-------+---------+---------+-------+----------+-------+----------------------------+ Total jobs 1 upg> upg> lsj -job 100 Unrecognized cmd: lsj -job 100 upg> upg> status -job 100 Details Job No 100 Oracle SID AUTOUPG Start Time 26/03/06 16:42:27 Elapsed (min): 0 End time: N/A Logfiles Logs Base: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG Job logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/100 Stage logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/100/prechecks TimeZone: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/temp Remote Dirs: Stages SETUP <1 min PRECHECKS ~0 min (RUNNING) Stage-Progress Per Container +--------+---------+ |Database|PRECHECKS| +--------+---------+ |CDB$ROOT| 0 % | |PDB$SEED| 0 % | +--------+---------+ upg> upg> lsj +----+-------+---------+---------+-------+----------+-------+----------------------------+ |Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME|UPDATED| MESSAGE| +----+-------+---------+---------+-------+----------+-------+----------------------------+ | 100|AUTOUPG|PRECHECKS|EXECUTING|RUNNING| 16:42:27|49s ago|Loading database information| +----+-------+---------+---------+-------+----------+-------+----------------------------+ Total jobs 1 upg> lsj +----+-------+---------+---------+-------+----------+-------+----------------------------+ |Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME|UPDATED| MESSAGE| +----+-------+---------+---------+-------+----------+-------+----------------------------+ | 100|AUTOUPG|PRECHECKS|EXECUTING|RUNNING| 16:42:27|59s ago|Loading database information| +----+-------+---------+---------+-------+----------+-------+----------------------------+ Total jobs 1 upg> upg> lsj +----+-------+---------+---------+-------+----------+-------+----------------+ |Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME|UPDATED| MESSAGE| +----+-------+---------+---------+-------+----------+-------+----------------+ | 100|AUTOUPG|PRECHECKS|EXECUTING|RUNNING| 16:42:27| 0s ago|Executing Checks| +----+-------+---------+---------+-------+----------+-------+----------------+ Total jobs 1 upg> upg> lsj +----+-------+---------+---------+-------+----------+-------+----------------+ |Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME|UPDATED| MESSAGE| +----+-------+---------+---------+-------+----------+-------+----------------+ | 100|AUTOUPG|PRECHECKS|EXECUTING|RUNNING| 16:42:27| 0s ago|Executing Checks| +----+-------+---------+---------+-------+----------+-------+----------------+ Total jobs 1 upg> status -job 100 Details Job No 100 Oracle SID AUTOUPG Start Time 26/03/06 16:42:27 Elapsed (min): 2 End time: N/A Logfiles Logs Base: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG Job logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/100 Stage logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/100/prechecks TimeZone: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/temp Remote Dirs: Stages SETUP <1 min PRECHECKS ~2 min (RUNNING) Stage-Progress Per Container +--------+---------+ |Database|PRECHECKS| +--------+---------+ |CDB$ROOT| 99 % | |PDB$SEED| 99 % | +--------+---------+ upg> upg> lsj +----+-------+---------+---------+-------+----------+-------+----------------+ |Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME|UPDATED| MESSAGE| +----+-------+---------+---------+-------+----------+-------+----------------+ | 100|AUTOUPG|PRECHECKS|EXECUTING|RUNNING| 16:42:27|10s ago|Executing Checks| +----+-------+---------+---------+-------+----------+-------+----------------+ Total jobs 1 upg> status -job 100 Details Job No 100 Oracle SID AUTOUPG Start Time 26/03/06 16:42:27 Elapsed (min): 2 End time: N/A Logfiles Logs Base: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG Job logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/100 Stage logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/100/prechecks TimeZone: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/temp Remote Dirs: Stages SETUP <1 min PRECHECKS ~2 min (RUNNING) Stage-Progress Per Container +--------+---------+ |Database|PRECHECKS| +--------+---------+ |CDB$ROOT| 99 % | |PDB$SEED| 99 % | +--------+---------+ upg> lsj +----+-------+---------+---------+-------+----------+-------+----------------+ |Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME|UPDATED| MESSAGE| +----+-------+---------+---------+-------+----------+-------+----------------+ | 100|AUTOUPG|PRECHECKS|EXECUTING|RUNNING| 16:42:27|17s ago|Executing Checks| +----+-------+---------+---------+-------+----------+-------+----------------+ Total jobs 1 upg> lsj +----+-------+---------+---------+-------+----------+-------+----------------+ |Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME|UPDATED| MESSAGE| +----+-------+---------+---------+-------+----------+-------+----------------+ | 100|AUTOUPG|PRECHECKS|EXECUTING|RUNNING| 16:42:27|35s ago|Executing Checks| +----+-------+---------+---------+-------+----------+-------+----------------+ Total jobs 1 upg> status -job 100 Details Job No 100 Oracle SID AUTOUPG Start Time 26/03/06 16:42:27 Elapsed (min): 3 End time: N/A Logfiles Logs Base: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG Job logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/100 Stage logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/100/prechecks TimeZone: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/temp Remote Dirs: Stages SETUP <1 min PRECHECKS ~3 min (RUNNING) Stage-Progress Per Container +--------+---------+ |Database|PRECHECKS| +--------+---------+ |CDB$ROOT| 100% | |PDB$SEED| 99 % | +--------+---------+ upg> upg> status -job 100 Details Job No 100 Oracle SID AUTOUPG Start Time 26/03/06 16:42:27 Elapsed (min): 3 End time: N/A Logfiles Logs Base: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG Job logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/100 Stage logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/100/prechecks TimeZone: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/temp Remote Dirs: Stages SETUP <1 min PRECHECKS ~3 min (RUNNING) Stage-Progress Per Container +--------+---------+ |Database|PRECHECKS| +--------+---------+ |CDB$ROOT| 100% | |PDB$SEED| 99 % | +--------+---------+ upg> / Details Job No 100 Oracle SID AUTOUPG Start Time 26/03/06 16:42:27 Elapsed (min): 3 End time: N/A Logfiles Logs Base: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG Job logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/100 Stage logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/100/prechecks TimeZone: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/temp Remote Dirs: Stages SETUP <1 min PRECHECKS ~3 min (RUNNING) Stage-Progress Per Container +--------+---------+ |Database|PRECHECKS| +--------+---------+ |CDB$ROOT| 100% | |PDB$SEED| 100% | +--------+---------+ upg> / Details Job No 100 Oracle SID AUTOUPG Start Time 26/03/06 16:42:27 Elapsed (min): 3 End time: N/A Logfiles Logs Base: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG Job logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/100 Stage logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/100/prechecks TimeZone: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/temp Remote Dirs: Stages SETUP <1 min PRECHECKS ~3 min (RUNNING) Stage-Progress Per Container +--------+---------+ |Database|PRECHECKS| +--------+---------+ |CDB$ROOT| 100% | |PDB$SEED| 100% | +--------+---------+ upg> lsj +----+-------+---------+---------+-------+----------+-------+----------------+ |Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME|UPDATED| MESSAGE| +----+-------+---------+---------+-------+----------+-------+----------------+ | 100|AUTOUPG|PRECHECKS|EXECUTING|RUNNING| 16:42:27| 2s ago|Executing Checks| +----+-------+---------+---------+-------+----------+-------+----------------+ Total jobs 1 upg> lsj +----+-------+---------+---------+-------+----------+-------+----------------+ |Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME|UPDATED| MESSAGE| +----+-------+---------+---------+-------+----------+-------+----------------+ | 100|AUTOUPG|PRECHECKS|EXECUTING|RUNNING| 16:42:27| 7s ago|Executing Checks| +----+-------+---------+---------+-------+----------+-------+----------------+ Total jobs 1 upg> / +----+-------+---------+---------+-------+----------+-------+----------------+ |Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME|UPDATED| MESSAGE| +----+-------+---------+---------+-------+----------+-------+----------------+ | 100|AUTOUPG|PRECHECKS|EXECUTING|RUNNING| 16:42:27| 8s ago|Executing Checks| +----+-------+---------+---------+-------+----------+-------+----------------+ Total jobs 1 upg> status -job 100 Details Job No 100 Oracle SID AUTOUPG Start Time 26/03/06 16:42:27 Elapsed (min): 3 End time: N/A Logfiles Logs Base: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG Job logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/100 Stage logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/100/prechecks TimeZone: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/temp Remote Dirs: Stages SETUP <1 min PRECHECKS ~3 min (RUNNING) Stage-Progress Per Container +--------+---------+ |Database|PRECHECKS| +--------+---------+ |CDB$ROOT| 100% | |PDB$SEED| 100% | +--------+---------+ 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/upgrade/cfgtoollogs/upgrade/auto/status/status.html /u01/app/oracle/cfgtoollogs/upgrade/cfgtoollogs/upgrade/auto/status/status.log You can review log file for summary report. [oracle@ora26ai autoupgrade]$ cat /u01/app/oracle/cfgtoollogs/upgrade/cfgtoollogs/upgrade/auto/status/status.log ========================================== Autoupgrade Summary Report ========================================== [Date] Fri Mar 06 16:46:07 IST 2026 [Number of Jobs] 1 ========================================== [Job ID] 100 ========================================== [DB Name] AUTOUPG [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-06 16:42:27 [Duration] 0:03:39 [Log Directory] /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/100/prechecks [Detail] /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/100/prechecks/autoupg_preupgrade.log Check passed and no manual intervention needed ------------------------------------------ As shown in the output above, the SUCCESS message in PRECHECKS phase has confimred that this phase has completed successfully without any issues. This indicates that the database is ready for the upgrade process. You can now proceed with either the fixups phase (if required) or directly run the deploy option to start the upgrade. |
Step 6: Run AutoUpgrade Fixups The fixups mode "-mode fixups" applies the recommended corrections to the database environment so that it is fully prepared for the upgrade process. Once the fixups are completed successfully, you can proceed with the deploy mode to start the actual upgrade. [oracle@ora26ai ~]$ /u01/app/oracle/product/23.0.0/dbhome_1/jdk/bin/java -jar /u01/app/oracle/autoupgrade/autoupgrade.jar -config /u01/app/oracle/autoupgrade/autoupg.cfg -mode fixups AutoUpgrade 26.2.260205 launched with default internal options Processing config file ... AUTOPDB1 is in MOUNTED state. It will be opened in READ_WRITE +--------------------------------+ | Starting AutoUpgrade execution | +--------------------------------+ 1 CDB(s) plus 2 PDB(s) will be processed Type 'help' to list console commands upg> upg> tasks +--+--------------+-------------+ |ID| NAME| Job#| +--+--------------+-------------+ | 1| main| WAITING| | 9|Common-Cleaner|TIMED_WAITING| |78| event_loop|TIMED_WAITING| |79| console| RUNNABLE| |80| queue_reader| WAITING| |82| cmd-0| WAITING| |83| StatUpg| WAITING| |84| event_loop|TIMED_WAITING| |86| job_manager-0| WAITING| |90| exec_loop| WAITING| |97| sql-[1005C1] | RUNNABLE| +--+--------------+-------------+ upg> upg> status Config User configuration file [/u01/app/oracle/autoupgrade/autoupg.cfg] General logs location [/u01/app/oracle/cfgtoollogs/upgrade/cfgtoollogs/upgrade/auto] Mode [FIXUPS] Jobs Summary Total databases in configuration file [3] Total Non-CDB being processed [0] Total Containers being processed [3] Jobs finished successfully [0] Jobs finished/stopped [0] Jobs in progress [1] Progress +---+---------------------------------------------------------+ |Job| Progress| +---+---------------------------------------------------------+ |102|[||||||||||||||||||||| ] 40 %| +---+---------------------------------------------------------+ upg> upg> lsj +----+-------+---------+---------+-------+----------+-------+----------------------------+ |Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME|UPDATED| MESSAGE| +----+-------+---------+---------+-------+----------+-------+----------------------------+ | 102|AUTOUPG|PRECHECKS|EXECUTING|RUNNING| 03:47:34| 8s ago|Loading database information| +----+-------+---------+---------+-------+----------+-------+----------------------------+ Total jobs 1 upg> upg> status -job 102 Details Job No 102 Oracle SID AUTOUPG Start Time 26/03/08 03:47:34 Elapsed (min): 0 End time: N/A Logfiles Logs Base: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG Job logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/102 Stage logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/102/prechecks TimeZone: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/temp Remote Dirs: Stages SETUP <1 min DISPATCH <1 min PRECHECKS ~0 min (RUNNING) PREFIXUPS Stage-Progress Per Container +--------+---------+ |Database|PRECHECKS| +--------+---------+ |CDB$ROOT| 0 % | |PDB$SEED| 0 % | |AUTOPDB1| 0 % | +--------+---------+ upg> / Details Job No 102 Oracle SID AUTOUPG Start Time 26/03/08 03:47:34 Elapsed (min): 0 End time: N/A Logfiles Logs Base: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG Job logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/102 Stage logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/102/prechecks TimeZone: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/temp Remote Dirs: Stages SETUP <1 min DISPATCH <1 min PRECHECKS ~0 min (RUNNING) PREFIXUPS Stage-Progress Per Container +--------+---------+ |Database|PRECHECKS| +--------+---------+ |CDB$ROOT| 0 % | |PDB$SEED| 0 % | |AUTOPDB1| 0 % | +--------+---------+ upg> / Details Job No 102 Oracle SID AUTOUPG Start Time 26/03/08 03:47:34 Elapsed (min): 0 End time: N/A Logfiles Logs Base: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG Job logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/102 Stage logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/102/prechecks TimeZone: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/temp Remote Dirs: Stages SETUP <1 min DISPATCH <1 min PRECHECKS ~0 min (RUNNING) PREFIXUPS Stage-Progress Per Container +--------+---------+ |Database|PRECHECKS| +--------+---------+ |CDB$ROOT| 0 % | |PDB$SEED| 0 % | |AUTOPDB1| 0 % | +--------+---------+ upg> / Details Job No 102 Oracle SID AUTOUPG Start Time 26/03/08 03:47:34 Elapsed (min): 0 End time: N/A Logfiles Logs Base: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG Job logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/102 Stage logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/102/prechecks TimeZone: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/temp Remote Dirs: Stages SETUP <1 min DISPATCH <1 min PRECHECKS ~0 min (RUNNING) PREFIXUPS Stage-Progress Per Container +--------+---------+ |Database|PRECHECKS| +--------+---------+ |CDB$ROOT| 0 % | |PDB$SEED| 0 % | |AUTOPDB1| 0 % | +--------+---------+ upg> / Details Job No 102 Oracle SID AUTOUPG Start Time 26/03/08 03:47:34 Elapsed (min): 1 End time: N/A Logfiles Logs Base: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG Job logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/102 Stage logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/102/prechecks TimeZone: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/temp Remote Dirs: Stages SETUP <1 min DISPATCH <1 min PRECHECKS ~1 min (RUNNING) PREFIXUPS Stage-Progress Per Container +--------+---------+ |Database|PRECHECKS| +--------+---------+ |CDB$ROOT| 0 % | |PDB$SEED| 0 % | |AUTOPDB1| 0 % | +--------+---------+ upg> / Details Job No 102 Oracle SID AUTOUPG Start Time 26/03/08 03:47:34 Elapsed (min): 1 End time: N/A Logfiles Logs Base: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG Job logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/102 Stage logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/102/prechecks TimeZone: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/temp Remote Dirs: Stages SETUP <1 min DISPATCH <1 min PRECHECKS ~1 min (RUNNING) PREFIXUPS Stage-Progress Per Container +--------+---------+ |Database|PRECHECKS| +--------+---------+ |CDB$ROOT| 0 % | |PDB$SEED| 0 % | |AUTOPDB1| 0 % | +--------+---------+ upg> / Details Job No 102 Oracle SID AUTOUPG Start Time 26/03/08 03:47:34 Elapsed (min): 1 End time: N/A Logfiles Logs Base: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG Job logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/102 Stage logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/102/prechecks TimeZone: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/temp Remote Dirs: Stages SETUP <1 min DISPATCH <1 min PRECHECKS ~1 min (RUNNING) PREFIXUPS Stage-Progress Per Container +--------+---------+ |Database|PRECHECKS| +--------+---------+ |CDB$ROOT| 0 % | |PDB$SEED| 0 % | |AUTOPDB1| 0 % | +--------+---------+ upg> / Details Job No 102 Oracle SID AUTOUPG Start Time 26/03/08 03:47:34 Elapsed (min): 2 End time: N/A Logfiles Logs Base: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG Job logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/102 Stage logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/102/prechecks TimeZone: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/temp Remote Dirs: Stages SETUP <1 min DISPATCH <1 min PRECHECKS ~2 min (RUNNING) PREFIXUPS Stage-Progress Per Container +--------+---------+ |Database|PRECHECKS| +--------+---------+ |CDB$ROOT| 0 % | |PDB$SEED| 0 % | |AUTOPDB1| 0 % | +--------+---------+ upg> upg> / Details Job No 102 Oracle SID AUTOUPG Start Time 26/03/08 03:47:34 Elapsed (min): 2 End time: N/A Logfiles Logs Base: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG Job logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/102 Stage logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/102/prechecks TimeZone: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/temp Remote Dirs: Stages SETUP <1 min DISPATCH <1 min PRECHECKS ~2 min (RUNNING) PREFIXUPS Stage-Progress Per Container +--------+---------+ |Database|PRECHECKS| +--------+---------+ |CDB$ROOT| 0 % | |PDB$SEED| 0 % | |AUTOPDB1| 0 % | +--------+---------+ upg> upg> / Details Job No 102 Oracle SID AUTOUPG Start Time 26/03/08 03:47:34 Elapsed (min): 3 End time: N/A Logfiles Logs Base: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG Job logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/102 Stage logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/102/prechecks TimeZone: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/temp Remote Dirs: Stages SETUP <1 min DISPATCH <1 min PRECHECKS ~3 min (RUNNING) PREFIXUPS Stage-Progress Per Container +--------+---------+ |Database|PRECHECKS| +--------+---------+ |CDB$ROOT| 100% | |PDB$SEED| 35 % | |AUTOPDB1| 0 % | +--------+---------+ upg> Job 102 completed ------------------- Final Summary -------------------- Number of databases [ 1 ] Jobs finished [1] Jobs failed [0] Please check the summary report at: /u01/app/oracle/cfgtoollogs/upgrade/cfgtoollogs/upgrade/auto/status/status.html /u01/app/oracle/cfgtoollogs/upgrade/cfgtoollogs/upgrade/auto/status/status.log Let's review the logfile. [oracle@ora26ai ~]$ cat /u01/app/oracle/cfgtoollogs/upgrade/cfgtoollogs/upgrade/auto/status/status.log ========================================== Autoupgrade Summary Report ========================================== [Date] Sun Mar 08 03:54:45 IST 2026 [Number of Jobs] 1 ========================================== [Job ID] 102 ========================================== [DB Name] AUTOUPG [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-08 03:47:34 [Duration] 0:03:37 [Log Directory] /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/102/prechecks [Detail] /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/102/prechecks/autoupg_preupgrade.log Check passed and no manual intervention needed ------------------------------------------ [Stage Name] PREFIXUPS [Status] SUCCESS [Start Time] 2026-03-08 03:51:11 [Duration] 0:03:34 [Log Directory] /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/102/prefixups [Detail] /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/102/prefixups/prefixups.html The output above confirms that the PREFIXUPS phase has completed successfully without any issues. You can now proceed with the deploy phase to start the actual database upgrade. |
Step 7: Run the Deploy Phase. This This command initiates the AutoUpgrade deployment, which performs the actual database upgrade based on the parameters defined in the configuration file. You can monitor the upgrade progress through the AutoUpgrade console and generated log files. [oracle@ora26ai ~]$ /u01/app/oracle/product/23.0.0/dbhome_1/jdk/bin/java -jar /u01/app/oracle/autoupgrade/autoupgrade.jar -config /u01/app/oracle/autoupgrade/autoupg.cfg -mode deploy AutoUpgrade 26.2.260205 launched with default internal options Processing config file ... +--------------------------------+ | Starting AutoUpgrade execution | +--------------------------------+ 1 CDB(s) plus 2 PDB(s) will be processed Type 'help' to list console commands upg> ------------------------------------------------- job 103 has not shown progress in last 39 minutes database [AUTOUPG] Stage [DBUPGRADE] Operation[EXECUTING] Status [RUNNING] Info [23%Upgraded CDB$ROOT] [Review log files for further information] ----------------------------------------------- Logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/103 ----------------------------------------------- upg> upg> tasks +----+----------------------------+-------------+ | ID| NAME| Job#| +----+----------------------------+-------------+ | 1| main| WAITING| | 9| Common-Cleaner|TIMED_WAITING| | 77| event_loop|TIMED_WAITING| | 78| console| RUNNABLE| | 79| queue_reader| WAITING| | 81| cmd-0| WAITING| | 82| StatUpg| WAITING| | 83| event_loop|TIMED_WAITING| | 85| job_manager-0| WAITING| | 89| exec_loop| WAITING| | 98| exec_loop| WAITING| |1292|monitor_AUTOUPG-CDB$ROOT_103|TIMED_WAITING| |1294| catctl_CDB$ROOT| WAITING| |1295| abort_monitor_CDB$ROOT|TIMED_WAITING| |1296| Thread-31| RUNNABLE| +----+----------------------------+-------------+ upg> upg> status Config User configuration file [/u01/app/oracle/autoupgrade/autoupg.cfg] General logs location [/u01/app/oracle/cfgtoollogs/upgrade/cfgtoollogs/upgrade/auto] Mode [DEPLOY] Jobs Summary Total databases in configuration file [3] Total Non-CDB being processed [0] Total Containers being processed [3] Jobs finished successfully [0] Jobs finished/stopped [0] Jobs in progress [1] Progress +---+---------------------------------------------------------+ |Job| Progress| +---+---------------------------------------------------------+ |103|[|||||||||||||||||||||||| ] 46 %| +---+---------------------------------------------------------+ upg> upg> lsj +----+-------+---------+---------+-------+----------+------------+--------------------+ |Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME| UPDATED| MESSAGE| +----+-------+---------+---------+-------+----------+------------+--------------------+ | 103|AUTOUPG|DBUPGRADE|EXECUTING|RUNNING| 04:19:38|!!!2396s ago|23%Upgraded CDB$ROOT| +----+-------+---------+---------+-------+----------+------------+--------------------+ Total jobs 1 upg> status -job 103 Details Job No 103 Oracle SID AUTOUPG Start Time 26/03/08 04:19:38 Elapsed (min): 58 End time: N/A Logfiles Logs Base: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG Job logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/103 Stage logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/103/dbupgrade TimeZone: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/temp Remote Dirs: Stages SETUP <1 min GRP <1 min PREUPGRADE <1 min PRECHECKS 3 min PREFIXUPS 3 min DRAIN <1 min DBUPGRADE ~50 min (RUNNING) POSTCHECKS POSTFIXUPS POSTUPGRADE SYSUPDATES Stage-Progress Per Container +--------+---------+ |Database|DBUPGRADE| +--------+---------+ |CDB$ROOT| 23 % | |PDB$SEED| 0 % | |AUTOPDB1| 0 % | +--------+---------+ upg> / Details Job No 103 Oracle SID AUTOUPG Start Time 26/03/08 04:19:38 Elapsed (min): 58 End time: N/A Logfiles Logs Base: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG Job logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/103 Stage logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/103/dbupgrade TimeZone: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/temp Remote Dirs: Stages SETUP <1 min GRP <1 min PREUPGRADE <1 min PRECHECKS 3 min PREFIXUPS 3 min DRAIN <1 min DBUPGRADE ~51 min (RUNNING) POSTCHECKS POSTFIXUPS POSTUPGRADE SYSUPDATES Stage-Progress Per Container +--------+---------+ |Database|DBUPGRADE| +--------+---------+ |CDB$ROOT| 23 % | |PDB$SEED| 0 % | |AUTOPDB1| 0 % | +--------+---------+ upg> / Details Job No 103 Oracle SID AUTOUPG Start Time 26/03/08 04:19:38 Elapsed (min): 59 End time: N/A Logfiles Logs Base: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG Job logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/103 Stage logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/103/dbupgrade TimeZone: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/temp Remote Dirs: Stages SETUP <1 min GRP <1 min PREUPGRADE <1 min PRECHECKS 3 min PREFIXUPS 3 min DRAIN <1 min DBUPGRADE ~51 min (RUNNING) POSTCHECKS POSTFIXUPS POSTUPGRADE SYSUPDATES Stage-Progress Per Container +--------+---------+ |Database|DBUPGRADE| +--------+---------+ |CDB$ROOT| 23 % | |PDB$SEED| 0 % | |AUTOPDB1| 0 % | +--------+---------+ upg> / Details Job No 103 Oracle SID AUTOUPG Start Time 26/03/08 04:19:38 Elapsed (min): 59 End time: N/A Logfiles Logs Base: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG Job logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/103 Stage logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/103/dbupgrade TimeZone: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/temp Remote Dirs: Stages SETUP <1 min GRP <1 min PREUPGRADE <1 min PRECHECKS 3 min PREFIXUPS 3 min DRAIN <1 min DBUPGRADE ~51 min (RUNNING) POSTCHECKS POSTFIXUPS POSTUPGRADE SYSUPDATES Stage-Progress Per Container +--------+---------+ |Database|DBUPGRADE| +--------+---------+ |CDB$ROOT| 23 % | |PDB$SEED| 0 % | |AUTOPDB1| 0 % | +--------+---------+ upg> / Details Job No 103 Oracle SID AUTOUPG Start Time 26/03/08 04:19:38 Elapsed (min): 183 End time: N/A Logfiles Logs Base: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG Job logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/103 Stage logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/103/dbupgrade TimeZone: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/temp Remote Dirs: Stages SETUP <1 min GRP <1 min PREUPGRADE <1 min PRECHECKS 3 min PREFIXUPS 3 min DRAIN <1 min DBUPGRADE ~176 min (RUNNING) POSTCHECKS POSTFIXUPS POSTUPGRADE SYSUPDATES Stage-Progress Per Container +--------+---------+ |Database|DBUPGRADE| +--------+---------+ |CDB$ROOT| 100% | |PDB$SEED| 100% | |AUTOPDB1| 100% | +--------+---------+ upg> / Details Job No 103 Oracle SID AUTOUPG Start Time 26/03/08 04:19:38 Elapsed (min): 183 End time: N/A Logfiles Logs Base: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG Job logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/103 Stage logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/103 TimeZone: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/temp Remote Dirs: Stages SETUP <1 min GRP <1 min PREUPGRADE <1 min PRECHECKS 3 min PREFIXUPS 3 min DRAIN <1 min DBUPGRADE 176 min DISPATCH ~0 min (RUNNING) POSTCHECKS POSTFIXUPS POSTUPGRADE SYSUPDATES Stage-Progress Per Container The Stage DISPATCH does not have any data to show upg> upg> upg> / Details Job No 103 Oracle SID AUTOUPG Start Time 26/03/08 04:19:38 Elapsed (min): 183 End time: N/A Logfiles Logs Base: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG Job logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/103 Stage logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/103 TimeZone: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/temp Remote Dirs: Stages SETUP <1 min GRP <1 min PREUPGRADE <1 min PRECHECKS 3 min PREFIXUPS 3 min DRAIN <1 min DBUPGRADE 176 min DISPATCH <1 min POSTCHECKS <1 min DISPATCH ~0 min (RUNNING) POSTFIXUPS POSTUPGRADE SYSUPDATES Stage-Progress Per Container The Stage DISPATCH does not have any data to show upg> lsj +----+-------+----------+---------+-------+----------+-------+----------------+ |Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME|UPDATED| MESSAGE| +----+-------+----------+---------+-------+----------+-------+----------------+ | 103|AUTOUPG|POSTFIXUPS|EXECUTING|RUNNING| 04:19:38| 0s ago|Executing fixups| +----+-------+----------+---------+-------+----------+-------+----------------+ Total jobs 1 upg> upg> status -job 103 Details Job No 103 Oracle SID AUTOUPG Start Time 26/03/08 04:19:38 Elapsed (min): 183 End time: N/A Logfiles Logs Base: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG Job logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/103 Stage logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/103/postfixups TimeZone: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/temp Remote Dirs: Stages SETUP <1 min GRP <1 min PREUPGRADE <1 min PRECHECKS 3 min PREFIXUPS 3 min DRAIN <1 min DBUPGRADE 176 min DISPATCH <1 min POSTCHECKS <1 min DISPATCH <1 min POSTFIXUPS ~0 min (RUNNING) POSTUPGRADE SYSUPDATES Stage-Progress Per Container +--------+----------+ |Database|POSTFIXUPS| +--------+----------+ |CDB$ROOT| 0 % | |PDB$SEED| 0 % | |AUTOPDB1| 0 % | +--------+----------+ upg> / Details Job No 103 Oracle SID AUTOUPG Start Time 26/03/08 04:19:38 Elapsed (min): 191 End time: N/A Logfiles Logs Base: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG Job logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/103 Stage logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/103/postfixups TimeZone: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/temp Remote Dirs: Stages SETUP <1 min GRP <1 min PREUPGRADE <1 min PRECHECKS 3 min PREFIXUPS 3 min DRAIN <1 min DBUPGRADE 176 min DISPATCH <1 min POSTCHECKS <1 min DISPATCH <1 min POSTFIXUPS ~8 min (RUNNING) POSTUPGRADE SYSUPDATES Stage-Progress Per Container +--------+----------+ |Database|POSTFIXUPS| +--------+----------+ |CDB$ROOT| 0 % | |PDB$SEED| 33 % | |AUTOPDB1| 0 % | +--------+----------+ upg> / Details Job No 103 Oracle SID AUTOUPG Start Time 26/03/08 04:19:38 Elapsed (min): 201 End time: N/A Logfiles Logs Base: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG Job logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/103 Stage logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/103/postfixups TimeZone: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/temp Remote Dirs: Stages SETUP <1 min GRP <1 min PREUPGRADE <1 min PRECHECKS 3 min PREFIXUPS 3 min DRAIN <1 min DBUPGRADE 176 min DISPATCH <1 min POSTCHECKS <1 min DISPATCH <1 min POSTFIXUPS ~17 min (RUNNING) POSTUPGRADE SYSUPDATES Stage-Progress Per Container +--------+----------+ |Database|POSTFIXUPS| +--------+----------+ |CDB$ROOT| 100% | |PDB$SEED| 67 % | |AUTOPDB1| 67 % | +--------+----------+ upg> / Details Job No 103 Oracle SID AUTOUPG Start Time 26/03/08 04:19:38 Elapsed (min): 201 End time: N/A Logfiles Logs Base: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG Job logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/103 Stage logs: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/103/postupgrade TimeZone: /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/temp Remote Dirs: Stages SETUP <1 min GRP <1 min PREUPGRADE <1 min PRECHECKS 3 min PREFIXUPS 3 min DRAIN <1 min DBUPGRADE 176 min DISPATCH <1 min POSTCHECKS <1 min DISPATCH <1 min POSTFIXUPS 17 min POSTUPGRADE ~0 min (RUNNING) SYSUPDATES Stage-Progress Per Container The Stage POSTUPGRADE does not have any data to show upg> upg> status Config User configuration file [/u01/app/oracle/autoupgrade/autoupg.cfg] General logs location [/u01/app/oracle/cfgtoollogs/upgrade/cfgtoollogs/upgrade/auto] Mode [DEPLOY] Jobs Summary Total databases in configuration file [3] Total Non-CDB being processed [0] Total Containers being processed [3] Jobs finished successfully [0] Jobs finished/stopped [0] Jobs in progress [1] Progress +---+---------------------------------------------------------+ |Job| Progress| +---+---------------------------------------------------------+ |103|[||||||||||||||||||||||||||||||||||||||||||| ] 85 %| +---+---------------------------------------------------------+ upg> lsj +----+-------+-----------+---------+-------+----------+-------+----------+ |Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME|UPDATED| MESSAGE| +----+-------+-----------+---------+-------+----------+-------+----------+ | 103|AUTOUPG|POSTUPGRADE|EXECUTING|RUNNING| 04:19:38|22s ago|Restarting| +----+-------+-----------+---------+-------+----------+-------+----------+ Total jobs 1 upg> upg> Job 103 completed ------------------- Final Summary -------------------- Number of databases [ 1 ] Jobs finished [1] Jobs failed [0] Jobs restored [0] Jobs pending [0] ---- Drop GRP at your convenience once you consider it is no longer needed ---- Drop GRP from AUTOUPG: drop restore point AUTOUPGRADE_9212_AUTOUPG193000 Please check the summary report at: /u01/app/oracle/cfgtoollogs/upgrade/cfgtoollogs/upgrade/auto/status/status.html /u01/app/oracle/cfgtoollogs/upgrade/cfgtoollogs/upgrade/auto/status/status.log Let’s review the global directory log file to verify the status of each AutoUpgrade phase. The output shows that all stages of the upgrade process have completed successfully. [oracle@ora26ai ~]$ cat /u01/app/oracle/cfgtoollogs/upgrade/cfgtoollogs/upgrade/auto/status/status.log ========================================== Autoupgrade Summary Report ========================================== [Date] Sun Mar 08 07:41:42 IST 2026 [Number of Jobs] 1 ========================================== [Job ID] 103 ========================================== [DB Name] AUTOUPG [Version Before Upgrade] 19.3.0.0.0 [Version After Upgrade] 23.26.1.0.0 ------------------------------------------ [Stage Name] GRP [Status] SUCCESS [Start Time] 2026-03-08 04:19:38 [Duration] 0:00:04 [Detail] Please drop the following GRPs after Autoupgrade completes: AUTOUPGRADE_9212_AUTOUPG193000 ------------------------------------------ [Stage Name] PREUPGRADE [Status] SUCCESS [Start Time] 2026-03-08 04:19:42 [Duration] 0:00:00 [Log Directory] /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/103/preupgrade ------------------------------------------ [Stage Name] PRECHECKS [Status] SUCCESS [Start Time] 2026-03-08 04:19:42 [Duration] 0:03:27 [Log Directory] /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/103/prechecks [Detail] /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/103/prechecks/autoupg_preupgrade.log Check passed and no manual intervention needed ------------------------------------------ [Stage Name] PREFIXUPS [Status] SUCCESS [Start Time] 2026-03-08 04:23:09 [Duration] 0:03:20 [Log Directory] /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/103/prefixups [Detail] /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/103/prefixups/prefixups.html ------------------------------------------ [Stage Name] DRAIN [Status] SUCCESS [Start Time] 2026-03-08 04:26:30 [Duration] 0:00:32 [Log Directory] /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/103/drain ------------------------------------------ [Stage Name] DBUPGRADE [Status] SUCCESS [Start Time] 2026-03-08 04:27:03 [Duration] 2:56:09 [Log Directory] /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/103/dbupgrade ------------------------------------------ [Stage Name] POSTCHECKS [Status] SUCCESS [Start Time] 2026-03-08 07:23:13 [Duration] 0:00:03 [Log Directory] /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/103/postchecks [Detail] /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/103/postchecks/autoupg_postupgrade.log Check passed and no manual intervention needed ------------------------------------------ [Stage Name] POSTFIXUPS [Status] SUCCESS [Start Time] 2026-03-08 07:23:18 [Duration] 0:17:48 [Log Directory] /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/103/postfixups [Detail] /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/103/postfixups/postfixups.html ------------------------------------------ [Stage Name] POSTUPGRADE [Status] SUCCESS [Start Time] 2026-03-08 07:41:07 [Duration] 0:00:34 [Log Directory] /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/103/postupgrade ------------------------------------------ [Stage Name] SYSUPDATES [Status] SUCCESS [Start Time] 2026-03-08 07:41:41 [Duration] 0:00:00 [Log Directory] /u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/103/sysupdates ------------------------------------------ Summary:/u01/app/oracle/autoupgrade/upgrade_logs/AUTOUPG/103/dbupgrade/upg_summary.log ✅ The SUCCESS status for all stages confirms that the database upgrade using AutoUpgrade has completed successfully without any issues. You can now proceed with post-upgrade verification and validation tasks. |
Step 8: 🔎 Post-Upgrade Checks Let’s connect to the database by setting the environment variables for the Oracle 26ai Home. [oracle@ora26ai ~]$ sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on Sun Mar 8 07:43:51 2026 Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. Connected to an idle instance. SQL> exit Disconnected [oracle@ora26ai ~]$ ps -ef | grep pmon oracle 45728 4716 0 07:41 ? 00:00:00 ora_pmon_AUTOUPG oracle 46359 5468 0 07:43 pts/0 00:00:00 grep --color=auto pmon [oracle@ora26ai ~]$ cat /etc/oratab | grep -v "#" AUTOUPG:/u01/app/oracle/product/23.0.0/dbhome_1:N [oracle@ora26ai ~]$ . oraenv ORACLE_SID = [AUTOUPG] ? The Oracle base remains unchanged with value /u01/app/oracle [oracle@ora26ai ~]$ sqlplus / as sysdba SQL*Plus: Release 23.26.1.0.0 - Production on Sun Mar 8 07:48:21 2026 Version 23.26.1.0.0 Copyright (c) 1982, 2025, Oracle. All rights reserved. Connected to: Oracle AI Database 26ai Enterprise Edition Release 23.26.1.0.0 - Production Version 23.26.1.0.0 SQL> @dt NAME OPEN_MODE DATABASE_ROLE CONTROLFIL -------- ----------- ------------- ---------- AUTOUPG READ WRITE PRIMARY CURRENT SQL> select banner from v$version; BANNER --------------------------------------------------------------------------- Oracle AI Database 26ai Enterprise Edition Release 23.26.1.0.0 - Production 🔍 Let’s review the database registry components to verify their version and status after the upgrade. SQL> col comp_id for a12 SQL> col comp_name for a45 SQL> col version for a12 SQL> col status for a12 SQL> select comp_id,comp_name,status,version from dba_registry; SQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ------ -------- ----------- ---------- 2 PDB$SEED READ ONLY NO 3 AUTOPDB1 READ WRITE NO ✅ Final Remarks : ✔️ The Oracle Database upgrade to 26ai using AutoUpgrade has been completed successfully. ✔️ All upgrade phases finished with SUCCESS status. ✔️ Post-upgrade checks confirm that the database components are valid and functioning correctly. 🚀 The database is now running on Oracle 26ai, and the environment is ready for normal operations and application connectivity. 📝 Stay tuned for a detailed blog post on this case !!! |






Thank you for visiting my blog ! Thanks for your comment !