Upgrade Oracle Database 19c non cdb to 26ai using Autoupgrade oracledna Oracle Standalone Database March 30, 2026 This post demonstrated the upgrading Oracle Database 19c non cdb to 26ai using Autoupgrade on the same server. Environment:==========Source Database : 19c (19.27), ProdSource ORACLE HOME (19c) : /u01/app/oracle/product/19.0.0/db_1Target Database : 23.26.1.0.0 (26ai)Target ORACLE HOME (26ai) : /u01/app/oracle/product/26ai/db, empty CDB (PROD26ai) without PDB has been created. Ensure to perform pre checks before upgrade and post checks after upgrade. Caution: Make sure to include parameter “upg1.target_pdb_copy_option” as this parameter copy datafiles of source non cdb to target pdb. So, rollback is possible. Because, he compatible will be the newly upgraded non cdb to pdb will be the compatible value to CDB. Downgrade is not possible. Before upgrade, RMAN full backup is mandatory. 1. Generate a sample config file and edit accordingly. Make sure export the 19c Oracle home before running the “autoupgrade.jar” commands. [oracle@prod ~]$ /u01/app/oracle/product/26ai/db/jdk/bin/java -jar /u01/app/oracle/product/26ai/db/rdbms/admin/autoupgrade.jar -create_sample_file config /miss/autoup_19cto26ai/config.cfgCreated sample configuration file /miss/autoup_19cto26ai/config.cfg global.global_log_dir=/u01/app/oracle/cfgtoollogs/upg1.sid=produpg1.source_home=/u01/app/oracle/product/19.0.0/db_1upg1.target_home=/u01/app/oracle/product/26ai/dbupg1.restoration=YESupg1.timezone_upg=YESupg1.target_cdb=prod26aiupg1.start_time=NOWupg1.target_pdb_name=prpdb1upg1.target_pdb_copy_option=file_name_convert=(‘/u01/app/oracle/oradata/PROD’, ‘/u01/app/oracle/oradata/PROD26AI/prpdb1’)upg1.run_utlrp=YES 2. Run the upgrade in analyze mode to validate any issues with the upgrade. [oracle@prod ~]$ /u01/app/oracle/product/26ai/db/jdk/bin/java -jar /u01/app/oracle/product/26ai/db/rdbms/admin/autoupgrade.jar -config /miss/autoup_19cto26ai/config.cfg -mode analyze AutoUpgrade 26.2.260205 launched with default internal optionsProcessing config file …+——————————–+| Starting AutoUpgrade execution |+——————————–+1 Non-CDB(s) will be analyzedType ‘help’ to list console commandsupg> lsj+—-+——-+———+———+——-+———-+——-+—————————-+|Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME|UPDATED| MESSAGE|+—-+——-+———+———+——-+———-+——-+—————————-+| 100| prod|PRECHECKS|EXECUTING|RUNNING| 06:14:28|25s ago|Loading database information|+—-+——-+———+———+——-+———-+——-+—————————-+Total jobs 1 upg> lsj+—-+——-+———+———+——-+———-+——-+—————-+|Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME|UPDATED| MESSAGE|+—-+——-+———+———+——-+———-+——-+—————-+| 100| prod|PRECHECKS|EXECUTING|RUNNING| 06:14:28| 4s ago|Executing Checks|+—-+——-+———+———+——-+———-+——-+—————-+Total jobs 1 upg> status -job 100Details Job No 100Oracle SID prodStart Time 26/03/30 06:14:28Elapsed (min): 1End time: N/A Logfiles Logs Base: /miss/autoup_19cto26ai/prodJob logs: /miss/autoup_19cto26ai/prod/100Stage logs: /miss/autoup_19cto26ai/prod/100/prechecksTimeZone: /miss/autoup_19cto26ai/prod/tempRemote Dirs: StagesSETUP <1 minPRECHECKS ~1 min (RUNNING) Stage-Progress Per Container +——–+———+|Database|PRECHECKS|+——–+———+| prod| 98 % |+——–+———+ upg> status -job 100Details Job No 100Oracle SID prodStart Time 26/03/30 06:14:28Elapsed (min): 2End time: N/A Logfiles Logs Base: /miss/autoup_19cto26ai/prodJob logs: /miss/autoup_19cto26ai/prod/100Stage logs: /miss/autoup_19cto26ai/prod/100/prechecksTimeZone: /miss/autoup_19cto26ai/prod/tempRemote Dirs: StagesSETUP <1 minPRECHECKS ~2 min (RUNNING) Stage-Progress Per Container +——–+———+|Database|PRECHECKS|+——–+———+| prod| 99 % |+——–+———+ upg> Job 100 completed——————- Final Summary ——————–Number of databases [ 1 ] Jobs finished [1]Jobs failed [0] Please check the summary report at:/u01/app/oracle/cfgtoollogs/cfgtoollogs/upgrade/auto/status/status.html/u01/app/oracle/cfgtoollogs/cfgtoollogs/upgrade/auto/status/status.log — [oracle@prod prechecks]$ cat /u01/app/oracle/cfgtoollogs/cfgtoollogs/upgrade/auto/status/status.log==========================================Autoupgrade Summary Report==========================================[Date] Mon Mar 30 06:17:17 IST 2026[Number of Jobs] 1==========================================[Job ID] 100==========================================[DB Name] prod[Version Before Upgrade] 19.3.0.0.0[Version After Upgrade] 23.26.1.0.0——————————————[Stage Name] PRECHECKS[Status] SUCCESS[Start Time] 2026-03-30 06:14:28[Duration] 0:02:49[Log Directory] /miss/autoup_19cto26ai/prod/100/prechecks[Detail] /miss/autoup_19cto26ai/prod/100/prechecks/prod_preupgrade.logCheck passed and no manual intervention needed 3. Run Autoupgrade in Deploy mode. /u01/app/oracle/product/26ai/db/jdk/bin/java -jar /u01/app/oracle/product/26ai/db/rdbms/admin/autoupgrade.jar -config /miss/autoup_19cto26ai/config.cfg -mode deploy upg> status -job 108Details Job No 108Oracle SID prodStart Time 26/03/30 12:17:30Elapsed (min): 51End time: N/A Logfiles Logs Base: /miss/autoup_19cto26ai/prodJob logs: /miss/autoup_19cto26ai/prod/108Stage logs: /miss/autoup_19cto26ai/prod/108/postfixupsTimeZone: /miss/autoup_19cto26ai/prod/tempRemote Dirs: StagesSETUP <1 minGRP <1 minPREUPGRADE <1 minPRECHECKS <1 minPREFIXUPS <1 minDRAIN 1 minDBUPGRADE 36 minDISPATCH 9 minNONCDBTOPDB <1 minPOSTCHECKS <1 minPOSTFIXUPS ~2 min (RUNNING)POSTUPGRADESYSUPDATES Stage-Progress Per Container +——–+———-+|Database|POSTFIXUPS|+——–+———-+| PRPDB1| 100% |+——–+———-+ upg> status -job 108Job 108 completed——————- Final Summary ——————–Number of databases [ 1 ] Jobs finished [1]Jobs failed [0]Jobs restored [0]Jobs pending [0] Please check the summary report at:/u01/app/oracle/cfgtoollogs/cfgtoollogs/upgrade/auto/status/status.html/u01/app/oracle/cfgtoollogs/cfgtoollogs/upgrade/auto/status/status.log ==== [oracle@prod ~]$ cat /u01/app/oracle/cfgtoollogs/cfgtoollogs/upgrade/auto/status/status.log==========================================Autoupgrade Summary Report==========================================[Date] Mon Mar 30 13:08:37 IST 2026[Number of Jobs] 1==========================================[Job ID] 108==========================================[DB Name] prod[Version Before Upgrade] 19.27.0.0.0[Version After Upgrade] 23.26.1.0.0——————————————[Stage Name] GRP[Status] SUCCESS[Start Time] 2026-03-30 12:17:31[Duration] 0:00:00[Detail] Please drop the following GRPs after Autoupgrade completes:AUTOUPGRADE_9212_PROD1927000——————————————[Stage Name] PREUPGRADE[Status] SUCCESS[Start Time] 2026-03-30 12:17:31[Duration] 0:00:00[Log Directory] /miss/autoup_19cto26ai/prod/108/preupgrade——————————————[Stage Name] PRECHECKS[Status] SUCCESS[Start Time] 2026-03-30 12:17:31[Duration] 0:00:17[Log Directory] /miss/autoup_19cto26ai/prod/108/prechecks[Detail] /miss/autoup_19cto26ai/prod/108/prechecks/prod_preupgrade.logCheck passed and no manual intervention needed——————————————[Stage Name] PREFIXUPS[Status] SUCCESS[Start Time] 2026-03-30 12:17:49[Duration] 0:00:57[Log Directory] /miss/autoup_19cto26ai/prod/108/prefixups[Detail] /miss/autoup_19cto26ai/prod/108/prefixups/prefixups.html——————————————[Stage Name] DRAIN[Status] SUCCESS[Start Time] 2026-03-30 12:18:46[Duration] 0:01:09[Log Directory] /miss/autoup_19cto26ai/prod/108/drain——————————————[Stage Name] DBUPGRADE[Status] SUCCESS[Start Time] 2026-03-30 12:19:56[Duration] 0:36:19[Log Directory] /miss/autoup_19cto26ai/prod/108/dbupgrade——————————————[Stage Name] NONCDBTOPDB[Status] SUCCESS[Start Time] 2026-03-30 13:05:38[Duration] 0:00:00[Log Directory] /miss/autoup_19cto26ai/prod/108/noncdbtopdb——————————————[Stage Name] POSTCHECKS[Status] SUCCESS[Start Time] 2026-03-30 13:05:39[Duration] 0:00:01[Log Directory] /miss/autoup_19cto26ai/prod/108/postchecks[Detail] /miss/autoup_19cto26ai/prod/108/postchecks/prod_postupgrade.logCheck passed and no manual intervention needed——————————————[Stage Name] POSTFIXUPS[Status] SUCCESS[Start Time] 2026-03-30 13:05:40[Duration] 0:02:55[Log Directory] /miss/autoup_19cto26ai/prod/108/postfixups[Detail] /miss/autoup_19cto26ai/prod/108/postfixups/postfixups.html——————————————[Stage Name] POSTUPGRADE[Status] SUCCESS[Start Time] 2026-03-30 13:08:36[Duration] 0:00:00[Log Directory] /miss/autoup_19cto26ai/prod/108/postupgrade——————————————[Stage Name] SYSUPDATES[Status] SUCCESS[Start Time] 2026-03-30 13:08:37[Duration] 0:00:00[Log Directory] /miss/autoup_19cto26ai/prod/108/sysupdates——————————————Summary:/miss/autoup_19cto26ai/prod/108/dbupgrade/upg_summary.log 4. Check whether the non-cdb to migrated as pdb and upgraded or not. SQL> @db NAME DB_UNIQUE_NAME OPEN_MODE DATABASE_ROLE INSTANCE_NAME HOST_NAME STARTUP_TIME———- ————— ———- —————— ————— —————- ——————–PROD26AI prod26ai READ WRITE PRIMARY prod26ai prod 30-MAR-2026 12:13 CON_ID CON_NAME OPEN MODE RESTRICTED———- —————————— ———- ———-3 PRPDB1 READ WRITE NO BANNER_FULL——————————————————————————–Oracle AI Database 26ai Enterprise Edition Release 23.26.1.0.0 – ProductionVersion 23.26.1.0.0 — SQL> show con_name CON_NAME——————————PRPDB1 SQL> show parameter compatible NAME TYPE VALUE———————————— ———– ——————————compatible string 23.6.0noncdb_compatible boolean FALSE The 19c non-cdb database is to migrated as pdb and upgraded by Autoupgrade. Disclaimer: Please note the above information is only for educational purpose and practised in personal test database only. Always test in test database before implementing in production database. The pre-requisites and ways of implementing may vary from one environment to another. Hence, not providing guarantee that it will work in your environment. Popular Posts Upgrade Oracle Database 19c non cdb to 26ai using Autoupgrade Perform out-of-place (OOP) patching using Autoupgrade in Oracle Database Reverting an Oracle Database upgrade using Flashback Database and AutoUpgrade Upgrade Oracle Database from 11g to 19c by Manual method (Non CDB & Non-RAC) Roll Forward Physical Standby Using Service in Oracle Database 18.1 and later (non cdb & non-RAC) Categories ASM (2) DataGuard (11) News (1) Oracle Standalone Database (12) Patching (1) RAC (3)
Perform out-of-place (OOP) patching using Autoupgrade in Oracle Database
Perform out-of-place (OOP) patching using Autoupgrade in Oracle Database oracledna Oracle Standalone Database March 18, 2026 This post demonstrates to apply a RU patch on 19c RDBMS standalone (non ASM & non CDB) binaries using out-of-place approach with Autoupgrade tool. Environment:==========Existing 19c Version: 19.2New 19c Version: 19.27 19.3 Home: /u01/app/oracle/product/19.0.0/db_119.27 Home: /u01/app/oracle/product/19.27/db_1 1. Install the new 19c home along with RU 19.27 Create the directories for 19.27 ORACLE HOME [oracle@prod product]$ cd /u01/app/oracle/product/[oracle@prod product]$ mkdir -p 19.27/db_1 [oracle@prod product]$ cd 19.27/db_1/ [oracle@prod db_1]$ pwd/u01/app/oracle/product/19.27/db_1 — Unzip the 19c(19.3) LINUX.X64_193000_db_home.zip binaries in 19.27 home.unzip the RU 19.27 at patch locavtion. Here patch location is /patch/RU_19.27/37642901 Update the OPatch, unzip p6880880_190000_Linux-x86-64.zip — unset ORACLE_HOME ORACLE_SID ORACLE_RSID ORACLE_UNQNAME ORACLE_BASE export ORACLE_HOME=/u01/app/oracle/product/19.27/db_1export ORACLE_BASE=/u01/app/oracleexport PATH=$ORACLE_HOME/bin:$PATH cd /u01/app/oracle/product/19.27/db_1 === ./runInstaller -ignorePrereq -silent -applyRU /patch/RU_19.27/37642901 oracle.install.option=INSTALL_DB_SWONLY ORACLE_HOSTNAME=prod UNIX_GROUP_NAME=oinstall ORACLE_HOME=/u01/app/oracle/product/19.27/db_1 ORACLE_BASE=/u01/app/oracle oracle.install.db.InstallEdition=EE oracle.install.db.OSDBA_GROUP=dba oracle.install.db.OSBACKUPDBA_GROUP=dba oracle.install.db.OSDGDBA_GROUP=dba oracle.install.db.OSKMDBA_GROUP=dba oracle.install.db.OSRACDBA_GROUP=dba DECLINE_SECURITY_UPDATES=true [oracle@prod db_1]$ ./runInstaller -ignorePrereq -silent -applyRU /patch/RU_19.27/37642901 > oracle.install.option=INSTALL_DB_SWONLY > ORACLE_HOSTNAME=prod > UNIX_GROUP_NAME=oinstall > ORACLE_HOME=/u01/app/oracle/product/19.27/db_1 > ORACLE_BASE=/u01/app/oracle > oracle.install.db.InstallEdition=EE > oracle.install.db.OSDBA_GROUP=dba > oracle.install.db.OSBACKUPDBA_GROUP=dba > oracle.install.db.OSDGDBA_GROUP=dba > oracle.install.db.OSKMDBA_GROUP=dba > oracle.install.db.OSRACDBA_GROUP=dba > DECLINE_SECURITY_UPDATES=truePreparing the home to patch…Applying the patch /patch/RU_19.27/37642901…Successfully applied the patch.The log can be found at: /u01/app/oraInventory/logs/InstallActions2026-03-17_09-58-26PM/installerPatchActions_2026-03-17_09-58-26PM.logLaunching Oracle Database Setup Wizard… [WARNING] [INS-13014] Target environment does not meet some optional requirements.CAUSE: Some of the optional prerequisites are not met. See logs for details. /u01/app/oraInventory/logs/InstallActions2026-03-17_09-58-26PM/installActions2026-03-17_09-58-26PM.logACTION: Identify the list of failed prerequisite checks from the log: /u01/app/oraInventory/logs/InstallActions2026-03-17_09-58-26PM/installActions2026-03-17_09-58-26PM.log. Then either from the log file or from installation manual find the appropriate configuration to meet the prerequisites and fix it manually.The response file for this session can be found at:/u01/app/oracle/product/19.27/db_1/install/response/db_2026-03-17_09-58-26PM.rsp You can find the log of this install session at:/u01/app/oraInventory/logs/InstallActions2026-03-17_09-58-26PM/installActions2026-03-17_09-58-26PM.log As a root user, execute the following script(s):1. /u01/app/oracle/product/19.27/db_1/root.sh Execute /u01/app/oracle/product/19.27/db_1/root.sh on the following nodes:[prod] Successfully Setup Software with warning(s). Ensure to execute root.sh script. —- [oracle@prod bin]$ sqlplus -V SQL*Plus: Release 19.0.0.0.0 – ProductionVersion 19.27.0.0.0 [oracle@prod bin]$ — [oracle@prod OPatch]$ ./opatch lspatches37642901;Database Release Update : 19.27.0.0.250415 (37642901)29585399;OCW RELEASE UPDATE 19.3.0.0.0 (29585399) OPatch succeeded. 2. Download the latest “Autoupgrade.jar” file. We can download from Doc 2485457.1 or from https://www.oracle.com/database/upgrades/. In 19.27 home, take the backup of existing autoupgrade.jar file and place the latest autoupgrade.jar file. cd /u01/app/oracle/product/19.27/db_1/rdbms/admin mv autoupgrade.jar autoupgrade.jar_bkp cp /tmp/autoupgrade.jar . 3. Generate a sample config file and edit accordingly. [oracle@prod ~]$ /u01/app/oracle/product/19.27/db_1/jdk/bin/java -jar /u01/app/oracle/product/19.27/db_1/rdbms/admin/autoupgrade.jar -create_sample_file config /patch/autoupgrade/patch.cfgCreated sample configuration file /patch/autoupgrade/patch.cfg Now, edit the config file. global.global_log_dir=/patch/autoupgradeupg1.sid=prod19upg1.source_home=/u01/app/oracle/product/19.0.0/db_1upg1.target_home=/u01/app/oracle/product/19.27/db_1upg1.restoration=NO — This is test environment. So GRP not created. For real environment, create GRP before the activity. 4. Run Analyze to validate the environment is ready for patching [oracle@prod autoupgrade]$ /u01/app/oracle/product/19.27/db_1/jdk/bin/java -jar /u01/app/oracle/product/19.27/db_1/rdbms/admin/autoupgrade.jar -config /patch/autoupgrade/patch.cfg -mode analyzeAutoUpgrade 26.2.260205 launched with default internal optionsProcessing config file …+——————————–+| Starting AutoUpgrade execution |+——————————–+1 Non-CDB(s) will be analyzedType ‘help’ to list console commandsupg> status Config User configuration file [/patch/autoupgrade/patch.cfg]General logs location [/patch/autoupgrade/cfgtoollogs/upgrade/auto]Mode [ANALYZE]Jobs Summary Total databases in configuration file [1]Total Non-CDB being processed [1]Total Containers being processed [0] Jobs finished successfully [0]Jobs finished/stopped [0]Jobs in progress [1] Progress+—+———————————————————+|Job| Progress|+—+———————————————————+|100|[||||||||||||||||| ] 33 %|+—+———————————————————+ upg> status -job 100Details Job No 100Oracle SID prod19Start Time 26/03/17 22:25:13Elapsed (min): 0End time: N/A Logfiles Logs Base: /patch/autoupgrade/prod19Job logs: /patch/autoupgrade/prod19/100Stage logs: /patch/autoupgrade/prod19/100/prechecksTimeZone: /patch/autoupgrade/prod19/tempRemote Dirs: StagesSETUP <1 minPRECHECKS ~0 min (RUNNING) Stage-Progress Per Container +——–+———+|Database|PRECHECKS|+——–+———+| prod19| 0 % |+——–+———+ upg> Job 100 completed——————- Final Summary ——————–Number of databases [ 1 ] Jobs finished [1]Jobs failed [0] Please check the summary report at:/patch/autoupgrade/cfgtoollogs/upgrade/auto/status/status.html/patch/autoupgrade/cfgtoollogs/upgrade/auto/status/status.log — [oracle@prod autoupgrade]$ cat /patch/autoupgrade/cfgtoollogs/upgrade/auto/status/status.log==========================================Autoupgrade Summary Report==========================================[Date] Tue Mar 17 22:26:37 IST 2026[Number of Jobs] 1==========================================[Job ID] 100==========================================[DB Name] prod19[Version Before Upgrade] 19.3.0.0.0[Version After Upgrade] 19.27.0.0.0——————————————[Stage Name] PRECHECKS[Status] SUCCESS[Start Time] 2026-03-17 22:25:13[Duration] 0:01:24[Log Directory] /patch/autoupgrade/prod19/100/prechecks[Detail] /patch/autoupgrade/prod19/100/prechecks/prod19_preupgrade.log Check passed and no manual intervention needed 5. Run Autoupgrade in Deploy mode. [oracle@prod autoupgrade]$ /u01/app/oracle/product/19.27/db_1/jdk/bin/java -jar /u01/app/oracle/product/19.27/db_1/rdbms/admin/autoupgrade.jar -config /patch/autoupgrade/patch.cfg -mode deployAutoUpgrade 26.2.260205 launched with default internal optionsProcessing config file …+——————————–+| Starting AutoUpgrade execution |+——————————–+1 Non-CDB(s) will be processedType ‘help’ to list console commandsupg> status Config User configuration file [/patch/autoupgrade/patch.cfg]General logs location [/patch/autoupgrade/cfgtoollogs/upgrade/auto]Mode [DEPLOY]Jobs Summary Total databases in configuration file [1]Total Non-CDB being processed [1]Total Containers being processed [0] Jobs finished successfully [0]Jobs finished/stopped [0]Jobs in progress [1] Progress+—+———————————————————+|Job| Progress|+—+———————————————————+|101|[||||||||| ] 17 %|+—+———————————————————+ upg> status -job 101Details Job No 101Oracle SID prod19Start Time 26/03/17 22:34:42Elapsed (min): 0End time: N/A Logfiles Logs Base: /patch/autoupgrade/prod19Job logs: /patch/autoupgrade/prod19/101Stage logs: /patch/autoupgrade/prod19/101/prechecksTimeZone: /patch/autoupgrade/prod19/tempRemote Dirs: StagesSETUP <1 minPREUPGRADE <1 minPRECHECKS ~0 min (RUNNING)PREFIXUPSDRAINDBUPGRADEPOSTCHECKSPOSTFIXUPSPOSTUPGRADESYSUPDATES Stage-Progress Per Container +——–+———+|Database|PRECHECKS|+——–+———+| prod19| 0 % |+——–+———+ upg> status -job 101Details Job No 101Oracle SID prod19Start Time 26/03/17 22:34:42Elapsed (min): 2End time: N/A Logfiles Logs Base: /patch/autoupgrade/prod19Job logs: /patch/autoupgrade/prod19/101Stage logs: /patch/autoupgrade/prod19/101/prefixupsTimeZone: /patch/autoupgrade/prod19/tempRemote Dirs: StagesSETUP <1 minPREUPGRADE <1 minPRECHECKS 1 minPREFIXUPS ~0 min (RUNNING)DRAINDBUPGRADEPOSTCHECKSPOSTFIXUPSPOSTUPGRADESYSUPDATES Stage-Progress Per Container +——–+———+|Database|PREFIXUPS|+——–+———+| prod19| 0 % |+——–+———+ upg> status Config User configuration file [/patch/autoupgrade/patch.cfg]General logs location [/patch/autoupgrade/cfgtoollogs/upgrade/auto]Mode [DEPLOY]Jobs Summary Total databases in configuration file [1]Total Non-CDB being processed [1]Total Containers being processed [0] Jobs finished successfully [0]Jobs finished/stopped [0]Jobs in progress [1] Progress+—+———————————————————+|Job| Progress|+—+———————————————————+|101|[||||||||||||| ] 25 %|+—+———————————————————+ upg> status Config User configuration file [/patch/autoupgrade/patch.cfg]General logs location [/patch/autoupgrade/cfgtoollogs/upgrade/auto]Mode [DEPLOY]Jobs Summary Total databases in configuration file [1]Total Non-CDB being processed [1]Total Containers being processed [0] Jobs finished successfully [0]Jobs finished/stopped [0]Jobs in progress [1] Progress+—+———————————————————+|Job| Progress|+—+———————————————————+|101|[|||||||||||||||||||||| ] 42 %|+—+———————————————————+ upg> status -job 101Details Job No 101Oracle SID prod19Start Time 26/03/17 22:34:42Elapsed (min): 7End time: N/A Logfiles Logs Base: /patch/autoupgrade/prod19Job logs: /patch/autoupgrade/prod19/101Stage logs: /patch/autoupgrade/prod19/101/dbupgradeTimeZone: /patch/autoupgrade/prod19/tempRemote Dirs: StagesSETUP <1 minPREUPGRADE <1 minPRECHECKS 1 minPREFIXUPS 2 minDRAIN <1 minDBUPGRADE ~2 min (RUNNING)POSTCHECKSPOSTFIXUPSPOSTUPGRADESYSUPDATES Stage-Progress Per Container +——–+———+|Database|DBUPGRADE|+——–+———+| prod19| 0 % |+——–+———+ upg> status Config User configuration file [/patch/autoupgrade/patch.cfg]General logs location [/patch/autoupgrade/cfgtoollogs/upgrade/auto]Mode [DEPLOY]Jobs Summary Total databases in configuration file [1]Total Non-CDB being processed [1]Total Containers being processed [0] Jobs finished successfully [0]Jobs finished/stopped [0]Jobs in progress [1] Progress+—+———————————————————+|Job| Progress|+—+———————————————————+|101|[|||||||||||||||||||||| ] 42 %|+—+———————————————————+ upg> status -job 101Details Job No 101Oracle SID prod19Start Time 26/03/17 22:34:42Elapsed (min): 9End time: N/A Logfiles Logs Base: /patch/autoupgrade/prod19Job logs: /patch/autoupgrade/prod19/101Stage logs: /patch/autoupgrade/prod19/101/dbupgradeTimeZone: /patch/autoupgrade/prod19/tempRemote Dirs: StagesSETUP <1 minPREUPGRADE <1 minPRECHECKS 1 minPREFIXUPS 2 minDRAIN <1 minDBUPGRADE ~4 min (RUNNING)POSTCHECKSPOSTFIXUPSPOSTUPGRADESYSUPDATES Stage-Progress Per Container +——–+———+|Database|DBUPGRADE|+——–+———+| prod19| 12 % |+——–+———+ upg> status -job 101Details Job No 101Oracle SID prod19Start Time 26/03/17 22:34:42Elapsed (min): 11End time: N/A Logfiles Logs Base: /patch/autoupgrade/prod19Job logs: /patch/autoupgrade/prod19/101Stage logs:
Reverting an Oracle Database upgrade using Flashback Database and AutoUpgrade
Reverting an Oracle Database upgrade using Flashback Database and AutoUpgrade oracledna Oracle Standalone Database March 17, 2026 This post demonstrates the reverting an Oracle Database upgrade using Flashback Database and AutoUpgrade. If the database upgrade failed or stopped during database upgrade with AutoUpgrade, using GRP and Autoupgrade is the quickest and easiest method to rollback the database to previous version. This post demonstrated with high level steps only. Make sure to perform pre checks and post checks of the upgrade activity. Note: Ensure to include “upg1.restoration= YES” in config.cfg file to create GRP by Autoaupgrade. 1. The Autoaupgrade job has been stopped at 38%. upg> status -job 101Details Job No 101Oracle SID prodStart Time 26/03/17 07:04:17Elapsed (min): 7End time: N/A Logfiles Logs Base: /u01/app/oracle/cfgtoollogs/autoupgrade/prodJob logs: /u01/app/oracle/cfgtoollogs/autoupgrade/prod/101Stage logs: /u01/app/oracle/cfgtoollogs/autoupgrade/prod/101/dbupgradeTimeZone: /u01/app/oracle/cfgtoollogs/autoupgrade/prod/tempRemote Dirs: StagesSETUP <1 minGRP <1 minPREUPGRADE <1 minPRECHECKS <1 minPREFIXUPS 1 minDRAIN <1 minDBUPGRADE ~5 min (RUNNING)POSTCHECKSPOSTFIXUPSPOSTUPGRADESYSUPDATES Stage-Progress Per Container +——–+———+|Database|DBUPGRADE|+——–+———+| prod| 10 % |+——–+———+ upg> status Config User configuration file [/u01/config.cfg]General logs location [/u01/app/oracle/cfgtoollogs/autoupgrade/cfgtoollogs/upgrade/auto]Mode [DEPLOY]Jobs Summary Total databases in configuration file [1]Total Non-CDB being processed [1]Total Containers being processed [0] Jobs finished successfully [0]Jobs finished/stopped [1]Jobs in progress [0] Progress+—+———————————————————+|Job| Progress|+—+———————————————————+|101|[|||||||||||||||||||| ] 38 %|+—+———————————————————+ 2. Start the upgrade failed database (19c) to the previous version (11g). Set the environment to target DB (19c) [oracle@prod ~]$ export ORACLE_HOME=/u01/app/oracle/product/19.0.0/db_1[oracle@prod ~]$ export PATH=$ORACLE_HOME/bin:$PATH[oracle@prod ~]$ export ORACLE_SID=prod[oracle@prod ~]$ sq Startup the 19c database. At this stage, we may not able to bring up the database as the upgrade was not successful. Hence, autoupgrade hasn’t copied the init parameter file the new ORACLE HOME. So we have to use the pfile created by the Autoupgrade. SQL*Plus: Release 19.0.0.0.0 – Production on Tue Mar 17 07:23:59 2026Version 19.3.0.0.0Copyright (c) 1982, 2019, Oracle. All rights reserved.Connected to an idle instance. SQL> startupORA-01078: failure in processing system parametersLRM-00109: could not open parameter file ‘/u01/app/oracle/product/19.0.0/db_1/dbs/initprod.ora’SQL> SQL> startup upgrade pfile=/u01/app/oracle/cfgtoollogs/autoupgrade/prod/temp/after_upgrade_pfile_prod.oraORACLE instance started.Total System Global Area 2617245048 bytesFixed Size 8899960 bytesVariable Size 553648128 bytesDatabase Buffers 2046820352 bytesRedo Buffers 7876608 bytesDatabase mounted.Database opened. SQL> @db NAME DB_UNIQUE_NAME OPEN_MODE DATABASE_ROLE INSTANCE_NAME HOST_NAME STARTUP_TIME———- ————— ———- —————— ————— —————- ——————–PROD prod READ WRITE PRIMARY prod prod 17-MAR-2026 07:36 BANNER BANNER_FULL——————————————————————————– —————————————————————————————————————————————————————-BANNER_LEGACY CON_ID——————————————————————————– ———-Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 – Production Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 – ProductionVersion 19.3.0.0.0Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 – Production 0 Now, the database is in open mode and version is 19c. 3. Revert the database to previous version. During PREFIXUPS stage, the Autoupgrade will create Guaranteed Restore Point which will help to revert the database to previous version. SQL> set lines 1234 pages 1234col name for a24col time for a34select name, scn, time, database_incarnation#,guarantee_flashback_database,storage_size from v$restore_point; NAME SCN TIME DATABASE_INCARNATION# GUA STORAGE_SIZE———————— ———- ———————————- ——————— — ————BEFORE_UPGRADE 959979 17-03-26 6:52:59.000000000 AM 2 YES 0AUTOUPGRADE_9212_PROD112 960765 17-03-26 7:04:17.000000000 AM 2 YES 367001600040 Now, revert the database to previous version. [oracle@prod ~]$ /u01/app/oracle/product/19.0.0/db_1/jdk/bin/java -jar /u01/app/oracle/product/19.0.0/db_1/rdbms/admin/autoupgrade.jar -config /u01/config.cfg -restore -jobs 101 Previous execution found loading latest dataTotal jobs being restored: 1+——————————–+| Starting AutoUpgrade execution |+——————————–+Job 101 completed——————- Final Summary ——————–Number of databases [ 1 ] Jobs restored [1]Jobs failed [0]——————– JOBS PENDING ——————–Job 101 for prod Please check the summary report at:/u01/app/oracle/cfgtoollogs/autoupgrade/cfgtoollogs/upgrade/auto/status/status.html/u01/app/oracle/cfgtoollogs/autoupgrade/cfgtoollogs/upgrade/auto/status/status.logExiting[oracle@prod ~]$ — Set the environment to previous release (11g), connect to the database and check the version. SQL> @db NAME DB_UNIQUE_NAME OPEN_MODE DATABASE_ROLE INSTANCE_NAME HOST_NAME STARTUP_TIME———- ————— ———- —————— ————— —————- ——————–PROD prod READ WRITE PRIMARY prod prod 17-MAR-2026 07:49 BANNER——————————————————————————–Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 – 64bit ProductionPL/SQL Release 11.2.0.4.0 – ProductionCORE 11.2.0.4.0 ProductionTNS for Linux: Version 11.2.0.4.0 – ProductionNLSRTL Version 11.2.0.4.0 – Production Check the Autoupgrade status log for any errors and status of revert operation. [oracle@prod ~]$ cat /u01/app/oracle/cfgtoollogs/autoupgrade/cfgtoollogs/upgrade/auto/status/status.log==========================================Autoupgrade Summary Report==========================================[Date] Tue Mar 17 07:49:33 IST 2026[Number of Jobs] 1==========================================[Job ID] 101==========================================[DB Name] prod[Version Before Upgrade] 11.2.0.4.0[Version After Upgrade] 19.3.0.0.0——————————————[Stage Name] GRPRESTORE[Status] SUCCESS[Start Time][Duration]——————————————Restoration:/u01/app/oracle/cfgtoollogs/autoupgrade/prod/101/restoration_user.log The revert operation of database to previous release is successful. From Alert log:==========Tue Mar 17 07:48:39 2026ALTER DATABASE MOUNTSuccessful mount of redo thread 1, with mount id 639956823Allocated 8388608 bytes in shared pool for flashback generation bufferStarting background process RVWRTue Mar 17 07:48:43 2026RVWR started with pid=20, OS id=26090Database mounted in Exclusive ModeLost write protection disabledCompleted: ALTER DATABASE MOUNTTue Mar 17 07:48:44 2026flashback database to restore point AUTOUPGRADE_9212_PROD112040Flashback Restore StartFlashback Restore CompleteFlashback Media Recovery Startstarted logmerger processParallel Media Recovery started with 2 slavesFlashback Media Recovery Log /u01/app/oracle/fast_recovery_area/PROD/archivelog/2026_03_17/o1_mf_1_4_nvkcxbtw_.arcTue Mar 17 07:48:52 2026Incomplete Recovery applied until change 960766 time 03/17/2026 07:04:17Flashback Media Recovery CompleteCompleted: flashback database to restore point AUTOUPGRADE_9212_PROD112040Tue Mar 17 07:48:52 2026alter database open resetlogsRESETLOGS after incomplete recovery UNTIL CHANGE 960766 Disclaimer: Please note the above information is only for educational purpose and practised in personal test database only. Always test in test database before implementing in production database. The pre-requisites and ways of implementing may vary from one environment to another. Hence, not providing guarantee that it will work in your environment. Popular Posts Reverting an Oracle Database upgrade using Flashback Database and AutoUpgrade Upgrade Oracle Database from 11g to 19c by Manual method (Non CDB & Non-RAC) Roll Forward Physical Standby Using Service in Oracle Database 18.1 and later (non cdb & non-RAC) Reinstate Failed Primary Database into Physical Standby (Using Flashback) in Oracle Database Manual Failover of Physical Standby Database (Without resolving GAP) in Oracle 19c Categories ASM (2) DataGuard (11) News (1) Oracle Standalone Database (10) Patching (1) RAC (3)
Upgrade Oracle Database from 11g to 19c by Manual method (Non CDB & Non-RAC)
Upgrade Oracle Database from 11g to 19c by Manual method (Non CDB & Non-RAC) oracledna Oracle Standalone Database March 16, 2026 This post demonstrates the manual upgrade of Oracle 11g (11.2.0.4) database to 19c (19.3). Note:==== Before planning for the upgrade, make sure to follow the upgrade matrix. Below are the minimum version of the database that can be directly upgraded to Oracle 19c. Source Target======= =======11.2.0.4 19c12.1.0.2 19c12.2.0.1 19c18.1 19c 1. Take the RMAN full backup of 11g DB. 2. Take the 11g ORACLE Home backup. 3. DIsable the custom triggers. DIsable any DDL custom triggers. We can enable them once upgrade is completed. 4. Ensure DB backup is completed before upgrade. SQL> SELECT * FROM v$backup WHERE status != ‘NOT ACTIVE’; no rows selected 5. Check the invalid objects and make them valid. Also, SYS and SYSTEM objects should not be in invalid state. SQL> select count(*) from dba_objects where status=’INVALID’; COUNT(*)———-0 SQL> set lines 1234 pages 1234col owner for a15select owner,count(*) from dba_objects where status=’INVALID’ group by owner order by owner; no rows selected SQL> set lines 1234 pages 1234col owner for a18col object_name for a30col object_type for a18col status for a10select owner,object_name,object_type,created,status from dba_objects where status = ‘INVALID’; no rows selected SQL> SELECT owner,object_name,object_type,status,created FROM dba_objects where status=’INVALID’ and owner=’SYS’; no rows selected SQL> SELECT owner,object_name,object_type,status,created FROM dba_objects where status=’INVALID’ and owner=’SYSTEM’; no rows selected 6. Check the status of dba registry components before upgrade. All components should be in valid status. SQL> set lines 1234 pages 1234col comp_name for a50col version for a15col status for a10SELECT comp_name, version, status FROM dba_registry; COMP_NAME VERSION STATUS————————————————– ————— ———-OWB 11.2.0.4.0 VALIDOracle Application Express 3.2.1.00.12 VALIDOracle Enterprise Manager 11.2.0.4.0 VALIDOLAP Catalog 11.2.0.4.0 VALIDSpatial 11.2.0.4.0 VALIDOracle Multimedia 11.2.0.4.0 VALIDOracle XML Database 11.2.0.4.0 VALIDOracle Text 11.2.0.4.0 VALIDOracle Expression Filter 11.2.0.4.0 VALIDOracle Rules Manager 11.2.0.4.0 VALIDOracle Workspace Manager 11.2.0.4.0 VALIDOracle Database Catalog Views 11.2.0.4.0 VALIDOracle Database Packages and Types 11.2.0.4.0 VALIDJServer JAVA Virtual Machine 11.2.0.4.0 VALIDOracle XDK 11.2.0.4.0 VALIDOracle Database Java Packages 11.2.0.4.0 VALIDOLAP Analytic Workspace 11.2.0.4.0 VALIDOracle OLAP API 11.2.0.4.0 VALID 18 rows selected. — SQL> set lines 1234 pages 1234col action_time for a30col action for a14col namespace for a14col version for a10col comments for a60col bundle_series for a14select action_time, action, namespace, version, comments from dba_registry_history; ACTION_TIME ACTION NAMESPACE VERSION COMMENTS—————————— ————– ————– ———- ————————————————————24-AUG-13 12.03.45.119862 PM APPLY SERVER 11.2.0.4 Patchset 11.2.0.2.027-OCT-23 03.12.35.474733 PM APPLY SERVER 11.2.0.4 Patchset 11.2.0.2.0 7. Take the compatible parameter value of 11g DB. Min value of COMPATIBLE parameter to upgrade 19.1 is “11.2.0”, make sure you have COMPATIBLE parameter is set to 11.2.0 or greater. SQL> show parameter compatible NAME TYPE VALUE———————————— ———– —————compatible string 11.2.0.4.0 8. Take the time zone value of 11g DB. Timezone should less than or equal to target database timezone version. set linesize 300col property_name for a30col value for a20SELECT PROPERTY_NAME, SUBSTR(property_value, 1, 30) valueFROM DATABASE_PROPERTIESWHERE PROPERTY_NAME LIKE ‘DST_%’ORDER BY PROPERTY_NAME; PROPERTY_NAME VALUE—————————— ——————–DST_PRIMARY_TT_VERSION 14DST_SECONDARY_TT_VERSION 0DST_UPGRADE_STATE NONE — SQL> col version for 999999999999999select * from v$timezone_file; FILENAME VERSION——————– —————-timezlrg_14.dat 14 8. Find the duplicate objects in the SYS and SYSTEM schema. Ensure that you do not have duplicate objects in the SYS and SYSTEM schema. Download dbupgdiag.sql from Doc Id 556610.1 to collect DB Upgrade/Migrate Diagnostic Information. The dbupgdiag.sql will generate log file and provife upgaraded related information. 9. Upgrade the APEX. If APEX is installed in 11g DB, it is recommended to upgrade APEX before upgrading DB. 10. Disable the Custom Triggers. Disable any custom triggers that would get executed before or after DDL statements. Re-enable them after the upgrade. 11. Enable archive mode and Fast Recovery Area (FRA). SQL> select name,open_mode,log_mode from v$database; NAME OPEN_MODE LOG_MODE——— ——————– ————ORA11G READ WRITE ARCHIVELOG — SQL> select flashback_on from v$database; FLASHBACK_ON——————NO SQL> show parameter recovery NAME TYPE VALUE———————————— ———– ——————————db_recovery_file_dest string /u01/app/oracle/fast_recovery_areadb_recovery_file_dest_size big integer 10Grecovery_parallelism integer 0 Create GRP=========SQL> CREATE RESTORE POINT BEFORE_UPGRADE GUARANTEE FLASHBACK DATABASE;Restore point created. 12. Check the status of all materialized views (MV), and refresh any materialized views that are not fresh. Use this procedure to query the system to determine if there are any materialized view refreshes still in progress. SQL> SELECT o.name FROM sys.obj$ o, sys.user$ u, sys.sum$ s WHERE o.type# = 42 AND bitand(s.mflags, 8) =8;no rows selected Use below SQL to check COMPILATION_ERROR. SQL> select owner, mview_name, staleness, compile_state from dba_mviews; OWNER MVIEW_NAME STALENESS COMPILE_STATE—————————— —————————— ——————- ————-SYSMAN MGMT_ECM_MD_ALL_TBL_COLUMNS FRESH VALIDSH CAL_MONTH_SALES_MV UNKNOWN VALIDSH FWEEK_PSCAT_SALES_MV UNKNOWN VALID SQL> EXECUTE DBMS_MVIEW.REFRESH(‘SH.CAL_MONTH_SALES_MV’, method => ‘C’);PL/SQL procedure successfully completed. SQL> EXECUTE DBMS_MVIEW.REFRESH(‘SH.FWEEK_PSCAT_SALES_MV’, method => ‘C’);PL/SQL procedure successfully completed. SQL> select owner, mview_name, staleness, compile_state from dba_mviews; OWNER MVIEW_NAME STALENESS COMPILE_STATE—————————— —————————— ——————- ——————SYSMAN MGMT_ECM_MD_ALL_TBL_COLUMNS FRESH VALIDSH FWEEK_PSCAT_SALES_MV FRESH VALIDSH CAL_MONTH_SALES_MV FRESH VALID 13. Disable scheduled database custom jobs and cron jobs. 14. check the definition of the PUBLIC synonym AREA. Before the upgrade, if Oracle Multimedia and/or Oracle Spatial is installed, check the definition of the PUBLICsynonym AREA. It should be defined to be a synonym for OGC_AREA, otherwise, it causes invalid db components uponaupgrading. SQL> set linesize 300SQL> select owner, synonym_name, table_owner, table_name from dba_synonyms where synonym_name =’AREA’; OWNER SYNONYM_NAME TABLE_OWNER TABLE_NAME—————————— —————————— —————————— ——————————PUBLIC AREA MDSYS OGC_AREA 15. Gather dictionary statistics anf fixed objects stats before upgrade. SQL> EXEC DBMS_STATS.GATHER_DICTIONARY_STATS; PL/SQL procedure successfully completed. — SQL> EXECUTE DBMS_STATS.GATHER_FIXED_OBJECTS_STATS; PL/SQL procedure successfully completed. 16. Purge the Recycle bin before upgrade. SQL> PURGE DBA_RECYCLEBIN; DBA Recyclebin purged. 17. Increase the processes parameter value to 300, if it is lower than 300. SQL> show parameter processes; NAME TYPE VALUE———————————— ———– ——————————aq_tm_processes integer 1db_writer_processes integer 1gcs_server_processes integer 0global_txn_processes integer 1job_queue_processes integer 1000log_archive_max_processes integer 4processes integer 150 SQL> alter system set processes=300 scope=spfile;System altered. SQL> shut immediateDatabase closed.Database dismounted.ORACLE instance shut down. SQL> startupORACLE instance started.Total System Global Area 3607691264 bytesFixed Size 2258480 bytesVariable Size 838863312 bytesDatabase Buffers 2751463424 bytesRedo Buffers 15106048 bytesDatabase mounted.Database opened. SQL> show parameter processes;NAME TYPE VALUE———————————— ———– ——————————aq_tm_processes integer 1db_writer_processes integer 1gcs_server_processes
Downgrade Oracle Database from 19c to 11g by using dbdowngrade (Non CDB)
Downgrade Oracle Database from 19c to 11g by using dbdowngrade (Non CDB) oracledna Oracle Standalone Database July 5, 2025 This post is to demonstrate downgrade Oracle Database from 19c (19.3) to 11g (11.2.0.4) by using dbdowngrade (Non CDB). 1. Check the Compatibility Matrix to downgrade the database. 2. Disable the Oracle Database Vault. If Oracle Database Vault is enabled, need to disable the Oracle Database Vault before downgrading. Use CDB_DV_STATUS to check the status of Oracle Database Vault. SQL> SELECT * FROM V$OPTION WHERE PARAMETER = ‘Oracle Database Vault’; PARAMETER VALUE CON_ID———————— ——————– ———-Oracle Database Vault FALSE 0 If the output is TRUE, then Oracle Database Vault is enabled, so we must disable it. 3. If your database uses Oracle Label Security, and you are downgrading to release 11.2, then run the Oracle Label Security (OLS) preprocess downgrade olspredowngrade.sql script in the new Oracle Database 12c Oracle home. SQL> SELECT VALUE FROM V$OPTION WHERE PARAMETER = ‘Oracle Label Security’; VALUE—————————————————————-FALSE If Oracle Label Security enabled, run the olspredowngrade.sql script:SQL> @ORACLE_HOME/rdbms/admin/olspredowngrade.sql Caution:Run olspredowngrade.sql before you downgrade from Oracle Database 12c to database release 11.2 for databases that use Oracle Label Security and Oracle Database Vault. 4. If Unified Auditing is enabled, take the backup and purge the unified audit trail. SQL> SELECT VALUE FROM V$OPTION WHERE PARAMETER = ‘Unified Auditing’; VALUE——————–FALSE If enabled, perform the below steps. 4.a Get the unified audit records SQL> SELECT COUNT(*) FROM UNIFIED_AUDIT_TRAIL; 4.b Get the unified audit records SQL> SELECT COUNT(*) FROM UNIFIED_AUDIT_TRAIL; 4.c Backup existing data to backup table. SQL> CREATE TABLE UA_DATA_BKP AS (SELECT * FROM UNIFIED_AUDIT_TRAIL); 4.d Clean up the audit trail. SQL> EXEC DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL(audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED, use_last_arch_timestamp => FALSE); 5. Before downgrade, check the the version of time zone file. SQL> col version for 999999999999select * from V$TIMEZONE_FILE; FILENAME VERSION CON_ID——————– ————- ———-timezlrg_32.dat 32 0 This version of time zone file should exist in Oracle 11g home. If not exists, need to apply patch 28125601 (p28125601_112040_Linux-x86-64). [oracle@prod db_1]$ cd /u01/app/oracle/product/11.0.0/db_1/oracore/zoneinfo/[oracle@prod zoneinfo]$ ls -lrt timezlrg_32.datls: cannot access timezlrg_32.dat: No such file or directory export ORACLE_HOME=/u01/app/oracle/product/11.0.0/db_1export PATH=$ORACLE_HOME/bin:$PATH === [oracle@prod ~]$ /u01/app/oracle/product/11.0.0/db_1/OPatch/opatch apply -oh /u01/app/oracle/product/11.0.0/db_1 -local /patch/patches/28125601 Oracle Interim Patch Installer version 11.2.0.3.50Copyright (c) 2025, Oracle Corporation. All rights reserved. Oracle Home : /u01/app/oracle/product/11.0.0/db_1Central Inventory : /u01/app/oraInventoryfrom : /u01/app/oracle/product/11.0.0/db_1/oraInst.locOPatch version : 11.2.0.3.50OUI version : 11.2.0.4.0Log file location : /u01/app/oracle/product/11.0.0/db_1/cfgtoollogs/opatch/opatch2025-06-28_10-16-14AM_1.log Verifying environment and performing prerequisite checks…OPatch continues with these patches: 28125601 Do you want to proceed? [y|n]yUser Responded with: YAll checks passed.Backing up files…Applying interim patch ‘28125601’ to OH ‘/u01/app/oracle/product/11.0.0/db_1’ApplySession: Optional component(s) [ oracle.oracore.rsf.core, 11.2.0.4.0 ] not present in the Oracle Home or a higher version is found. Patching component oracle.oracore.rsf, 11.2.0.4.0…Patch 28125601 successfully applied.Log file location: /u01/app/oracle/product/11.0.0/db_1/cfgtoollogs/opatch/opatch2025-06-28_10-16-14AM_1.log OPatch succeeded.— [oracle@prod ~]$ cd /u01/app/oracle/product/11.0.0/db_1/oracore/zoneinfo/[oracle@prod zoneinfo]$ ls -lrt timezlrg_32.dat-rw-r–r– 1 oracle oinstall 786909 Jul 19 2018 timezlrg_32.dat [oracle@prod OPatch]$ cd /u01/app/oracle/product/11.0.0/db_1/OPatch[oracle@prod OPatch]$ ./opatch lsinventory | grep appliedPatch 28125601 : applied on Sat Jun 28 10:16:25 IST 2025 6. Apply the Patches on 11g home – 20348910 and 20898997 [oracle@prod ~]$ /u01/app/oracle/product/11.0.0/db_1/OPatch/opatch apply -oh /u01/app/oracle/product/11.0.0/db_1 -local /patch/patches/20348910 Oracle Interim Patch Installer version 11.2.0.3.50Copyright (c) 2025, Oracle Corporation. All rights reserved. Oracle Home : /u01/app/oracle/product/11.0.0/db_1Central Inventory : /u01/app/oraInventoryfrom : /u01/app/oracle/product/11.0.0/db_1/oraInst.locOPatch version : 11.2.0.3.50OUI version : 11.2.0.4.0Log file location : /u01/app/oracle/product/11.0.0/db_1/cfgtoollogs/opatch/opatch2025-06-29_13-57-16PM_1.log Verifying environment and performing prerequisite checks…OPatch continues with these patches: 20348910 Do you want to proceed? [y|n]yUser Responded with: YAll checks passed.Backing up files…Applying interim patch ‘20348910’ to OH ‘/u01/app/oracle/product/11.0.0/db_1’ Patching component oracle.rdbms.dbscripts, 11.2.0.4.0…Patch 20348910 successfully applied.Log file location: /u01/app/oracle/product/11.0.0/db_1/cfgtoollogs/opatch/opatch2025-06-29_13-57-16PM_1.log OPatch succeeded. —– [oracle@prod ~]$ /u01/app/oracle/product/11.0.0/db_1/OPatch/opatch apply -oh /u01/app/oracle/product/11.0.0/db_1 -local /patch/patches/20898997 Oracle Interim Patch Installer version 11.2.0.3.50Copyright (c) 2025, Oracle Corporation. All rights reserved. Oracle Home : /u01/app/oracle/product/11.0.0/db_1Central Inventory : /u01/app/oraInventoryfrom : /u01/app/oracle/product/11.0.0/db_1/oraInst.locOPatch version : 11.2.0.3.50OUI version : 11.2.0.4.0Log file location : /u01/app/oracle/product/11.0.0/db_1/cfgtoollogs/opatch/opatch2025-06-29_13-57-53PM_1.log Verifying environment and performing prerequisite checks… ——————————————————————————–Start OOP by Prereq process.Launch OOP… Oracle Interim Patch Installer version 11.2.0.3.50Copyright (c) 2025, Oracle Corporation. All rights reserved. Oracle Home : /u01/app/oracle/product/11.0.0/db_1Central Inventory : /u01/app/oraInventoryfrom : /u01/app/oracle/product/11.0.0/db_1/oraInst.locOPatch version : 11.2.0.3.50OUI version : 11.2.0.4.0Log file location : /u01/app/oracle/product/11.0.0/db_1/cfgtoollogs/opatch/opatch2025-06-29_13-57-59PM_1.log Verifying environment and performing prerequisite checks…OPatch continues with these patches: 20898997 Do you want to proceed? [y|n]yUser Responded with: YAll checks passed. Please shutdown Oracle instances running out of this ORACLE_HOME on the local system.(Oracle Home = ‘/u01/app/oracle/product/11.0.0/db_1’) Is the local system ready for patching? [y|n]yUser Responded with: YBacking up files…Applying interim patch ‘20898997’ to OH ‘/u01/app/oracle/product/11.0.0/db_1’ Patching component oracle.rdbms.rsf, 11.2.0.4.0… Patching component oracle.rdbms, 11.2.0.4.0…Patch 20898997 successfully applied.Log file location: /u01/app/oracle/product/11.0.0/db_1/cfgtoollogs/opatch/opatch2025-06-29_13-57-59PM_1.log OPatch succeeded. — [oracle@prod ~]$ cd /u01/app/oracle/product/11.0.0/db_1/OPatch [oracle@prod OPatch]$ ./opatch lsinventory | grep appliedPatch 20898997 : applied on Sun Jun 29 13:58:13 IST 2025Patch 20348910 : applied on Sun Jun 29 13:57:26 IST 2025Patch 28125601 : applied on Sun Jun 29 12:48:49 IST 2025 7. Before downgrade, check the status of dba_registry components. set lines 1234 pages 1234col comp_name for a50col version for a15col status for a10SELECT comp_name, version, status FROM dba_registry; COMP_NAME VERSION STATUS————————————————– ————— ———-Oracle Database Catalog Views 19.0.0.0.0 VALIDOracle Database Packages and Types 19.0.0.0.0 VALIDJServer JAVA Virtual Machine 19.0.0.0.0 VALIDOracle XDK 19.0.0.0.0 VALIDOracle Database Java Packages 19.0.0.0.0 VALIDOLAP Analytic Workspace 19.0.0.0.0 VALIDOracle Real Application Clusters 19.0.0.0.0 OPTION OFFOracle Workspace Manager 19.0.0.0.0 VALIDOracle Text 19.0.0.0.0 VALIDOracle XML Database 19.0.0.0.0 VALIDOracle Multimedia 19.0.0.0.0 VALIDSpatial 19.0.0.0.0 VALIDOracle OLAP API 19.0.0.0.0 VALIDOracle Application Express 3.2.1.00.12 VALID 14 rows selected. — SQL> set lines 1234 pages 1234col action_time for a30col action for a14col namespace for a14col version for a10col comments for a60col bundle_series for a14select action_time,action,namespace,version,comments from dba_registry_history; ACTION_TIME ACTION NAMESPACE VERSION COMMENTS—————————— ————– ————– ———- ————————————————————24-08-13 12:03:45.119862 PM APPLY SERVER 11.2.0.4 Patchset 11.2.0.2.002-07-25 2:07:15.468709 PM APPLY SERVER 11.2.0.4 Patchset 11.2.0.2.0BOOTSTRAP DATAPATCH 19 RDBMS_19.3.0.0.0DBRU_LINUX.X64_19041702-07-25 3:25:55.137723 PM RU_APPLY SERVER 19.0.0.0.0 Patch applied on 19.3.0.0.0: Release_Update – 19041012272002-07-25 3:27:50.404590 PM UPGRADE SERVER 19.0.0.0.0 Upgraded from 11.2.0.4.0 to 19.3.0.0.0 8. If Oracle Enterprise Manager configured in database, then the drop the Enterprise Manager user. SQL> select username,account_status from dba_users where username=’SYSMAN’;no rows selected In this scenario, OEM is not configured. If OEM configured, drop the SYSMAN user by below drop command. DROP USER sysman CASCADE; Note: After we drop
Upgrade Oracle Database from 11g to 19c by DBUA (Non CDB)
Upgrade Oracle Database from 11g to 19c by DBUA (Non CDB) oracledna Oracle Standalone Database July 2, 2025 This post is to demonstrate upgrade Oracle Database from 11g (11.2.0.4) to 19c (19.3) by DBUA (Non CDB). 1. Take the RMAN full backup of 11g DB. 2. Take the 11g ORACLE Home backup. 3. Check the hidden parameters in 11g DB. 19c DBUA restricts the carry over of hidden parameters since Oracle recommends not to have hidden parameters other than those suggested by Oracle Support during the upgrade. SQL> SELECT name, description from SYS.V$PARAMETER WHERE name LIKE ‘_%’ ESCAPE ”; no rows selected 4. Ensure DB backup is completed before upgrade. SQL> SELECT * FROM v$backup WHERE status != ‘NOT ACTIVE’; no rows selected 5. Check the invalid objects and make them valid. Also, SYS and SYSTEM objects should not be in invalid state. SQL> select count(*) from dba_objects where status=’INVALID’; COUNT(*)———-0 6. Check the status of dba registry components before upgrade. All components should be in valid status. set lines 1234 pages 1234col comp_name for a50col version for a15col status for a10SELECT comp_name, version, status FROM dba_registry; COMP_NAME VERSION STATUS————————————————– ————— ———-OWB 11.2.0.4.0 VALIDOracle Application Express 3.2.1.00.12 VALIDOracle Enterprise Manager 11.2.0.4.0 VALIDOLAP Catalog 11.2.0.4.0 VALIDSpatial 11.2.0.4.0 VALIDOracle Multimedia 11.2.0.4.0 VALIDOracle XML Database 11.2.0.4.0 VALIDOracle Text 11.2.0.4.0 VALIDOracle Expression Filter 11.2.0.4.0 VALIDOracle Rules Manager 11.2.0.4.0 VALIDOracle Workspace Manager 11.2.0.4.0 VALIDOracle Database Catalog Views 11.2.0.4.0 VALIDOracle Database Packages and Types 11.2.0.4.0 VALIDJServer JAVA Virtual Machine 11.2.0.4.0 VALIDOracle XDK 11.2.0.4.0 VALIDOracle Database Java Packages 11.2.0.4.0 VALIDOLAP Analytic Workspace 11.2.0.4.0 VALIDOracle OLAP API 11.2.0.4.0 VALID 18 rows selected. — set lines 1234 pages 1234col action_time for a30col action for a14col namespace for a14col version for a10col comments for a60col bundle_series for a14select action_time, action, namespace, version, comments from dba_registry_history; ACTION_TIME ACTION NAMESPACE VERSION COMMENTS—————————— ————– ————– ———- ———————–24-08-13 12:03:45.119862 PM APPLY SERVER 11.2.0.4 Patchset 11.2.0.2.002-07-25 02:07:15.468709 PM APPLY SERVER 11.2.0.4 Patchset 11.2.0.2.0 7. Take the compatible parameter value of 11g DB. Min value of COMPATIBLE parameter to upgrade 19.1 is “11.2.0”, make sure you have COMPATIBLE parameter is set to 11.2.0 or greater. SQL> show parameter compatible NAME TYPE VALUE———————————— ———– —————compatible string 11.2.0.4.0 8. Take the time zone value of 11g DB. Time zone should less than or equal to target database time zone version. set linesize 300col property_name for a30col value for a20SELECT PROPERTY_NAME, SUBSTR(property_value, 1, 30) valueFROM DATABASE_PROPERTIESWHERE PROPERTY_NAME LIKE ‘DST_%’ORDER BY PROPERTY_NAME; PROPERTY_NAME VALUE—————————— ——————–DST_PRIMARY_TT_VERSION 14DST_SECONDARY_TT_VERSION 0DST_UPGRADE_STATE NONE — SQL> col version for 999999999999999select * from v$timezone_file; FILENAME VERSION——————– —————-timezlrg_14.dat 14 8. Find the duplicate objects in the SYS and SYSTEM schema. Ensure that you do not have duplicate objects in the SYS and SYSTEM schema. Download dbupgdiag.sql from Doc Id 556610.1 to collect DB Upgrade/Migrate Diagnostic Information 9. Upgrade the APEX. If APEX is installed in 11g DB, it is recommended to upgrade APEX before upgrading DB. 10. Disable the Custom Triggers. Disable any custom triggers that would get executed before or after DDL statements. Re-enable after the upgrade. 11. Enable archive mode and Fast Recovery Area (FRA). SQL> select flashback_on from v$database; FLASHBACK_ON——————NO SQL> show parameter recovery NAME TYPE VALUE———————————— ———–db_recovery_file_dest stringdb_recovery_file_dest_size big integer 0recovery_parallelism integer 0 SQL> alter system set db_recovery_file_dest_size=20G; System altered. SQL> alter system set db_recovery_file_dest=’/oem/fra’ scope=both; System altered. SQL> show parameter recovery NAME TYPE VALUE———————————— ———– db_recovery_file_dest string /oem/fradb_recovery_file_dest_size big integer 20Grecovery_parallelism integer 0 Note:= Ensure the log_archive_dest_1 must have sufficient space, at least 4535 MB for archive logs generation. — SQL> select name,open_mode,log_mode from v$database; NAME OPEN_MODE LOG_MODE———- ———- ————PROD READ WRITE NOARCHIVELOG SQL> shutdown immediate;Database closed.Database dismounted.ORACLE instance shut down. SQL> startup mount;ORACLE instance started.Total System Global Area 3323752448 bytesFixed Size 2257800 bytesVariable Size 788532344 bytesDatabase Buffers 2516582400 bytesRedo Buffers 16379904 bytesDatabase mounted. SQL> alter database archivelog;Database altered. SQL> alter database open;Database altered. SQL> select name,open_mode,log_mode from v$database; NAME OPEN_MODE LOG_MODE———- ———- ————PROD READ WRITE ARCHIVELOG 12. Check the status of all materialized views (MV), and refresh any materialized views that are not fresh. Use this procedure to query the system to determine if there are any materialized view refreshes still in progress. SQL> SELECT o.name FROM sys.obj$ o, sys.user$ u, sys.sum$ s WHERE o.type# = 42 AND bitand(s.mflags, 8) =8;no rows selected Use below SQL to check COMPILATION_ERROR. SQL> select owner, mview_name, staleness, compile_state from dba_mviews; OWNER MVIEW_NAME STALENESS COMPILE_STATE—————————— —————————— ——————- ———–SYSMAN MGMT_ECM_MD_ALL_TBL_COLUMNS FRESH VALIDSH CAL_MONTH_SALES_MV UNKNOWN VALIDSH FWEEK_PSCAT_SALES_MV UNKNOWN VALID SQL> EXECUTE DBMS_MVIEW.REFRESH(‘SH.CAL_MONTH_SALES_MV’, method => ‘C’);PL/SQL procedure successfully completed. SQL> EXECUTE DBMS_MVIEW.REFRESH(‘SH.FWEEK_PSCAT_SALES_MV’, method => ‘C’);PL/SQL procedure successfully completed. SQL> select owner, mview_name, staleness, compile_state from dba_mviews; OWNER MVIEW_NAME STALENESS COMPILE_STATE—————————— —————————— ——————- ———–SYSMAN MGMT_ECM_MD_ALL_TBL_COLUMNS FRESH VALIDSH FWEEK_PSCAT_SALES_MV FRESH VALIDSH CAL_MONTH_SALES_MV FRESH VALID 13. Disable scheduled database custom jobs and cron jobs. 14. check the definition of the PUBLIC synonym AREA. Before the upgrade, if Oracle Multimedia and/or Oracle Spatial is installed, check the definition of the PUBLICsynonym AREA. It should be defined to be a synonym for OGC_AREA, otherwise, it causes invalid db components uponaupgrading. SQL> set linesize 300SQL> select owner, synonym_name, table_owner, table_name from dba_synonyms where synonym_name =’AREA’; OWNER SYNONYM_NAME TABLE_OWNER TABLE_NAME—————————— —————————— —————————— ——————————PUBLIC AREA MDSYS OGC_AREA 15. Gather dictionary statistics before upgrade. SQL> EXEC DBMS_STATS.GATHER_DICTIONARY_STATS; PL/SQL procedure successfully completed. 16. Purge the Recycle bin before upgrade. We can purge the recycle bin via DBUA. SQL> PURGE DBA_RECYCLEBIN; DBA Recyclebin purged. 17. Increase the processes parameter value to 300, if it is lower than 300. SQL> show parameter processes; NAME TYPE VALUE———————————— ———– ——————————aq_tm_processes integer 1db_writer_processes integer 1gcs_server_processes integer 0global_txn_processes integer 1job_queue_processes integer 1000log_archive_max_processes integer 4processes integer 150 SQL> alter system set processes=300 scope=spfile;System altered. SQL> shut immediateDatabase closed.Database dismounted.ORACLE instance shut down. SQL> startupORACLE instance started.Total System Global Area 3607691264 bytesFixed Size 2258480 bytesVariable Size 838863312 bytesDatabase Buffers 2751463424 bytesRedo Buffers 15106048 bytesDatabase mounted.Database opened. SQL> show parameter processes;NAME TYPE VALUE———————————— ———– ——————————aq_tm_processes integer 1db_writer_processes integer 1gcs_server_processes integer 0global_txn_processes integer 1job_queue_processes integer 1000log_archive_max_processes integer 4processes integer 300 18. If any ACLs existed, need to take the backup. set linesize 300col acl for a60col host for a14SELECT
Downgrade Oracle Database from 19c (19.3) to 11g (11.2.0.4) manually
Downgrade Oracle Database from 19c (19.3) to 11g (11.2.0.4) manually oracledna Oracle Standalone Database June 29, 2025 This post is to demonstrate downgrade Oracle Database from 19c (19.3) to 11g (11.2.0.4) manually. 1. Check the Compatibility Matrix to downgrade the database. 2. Disable the Oracle Database Vault. If Oracle Database Vault is enabled, need to disable the Oracle Database Vault before downgrading. Use CDB_DV_STATUS to check the status of Oracle Database Vault. SQL> SELECT * FROM V$OPTION WHERE PARAMETER = ‘Oracle Database Vault’; PARAMETER VALUE CON_ID———————— ——————– ———-Oracle Database Vault FALSE 0 If the output is TRUE, then Oracle Database Vault is enabled, so we must disable it. 3. If your database uses Oracle Label Security, and you are downgrading to release 11.2, then run the Oracle Label Security (OLS) preprocess downgrade olspredowngrade.sql script in the new Oracle Database 12c Oracle home. SQL> SELECT VALUE FROM V$OPTION WHERE PARAMETER = ‘Oracle Label Security’; VALUE—————————————————————-FALSE If Oracle Label Security enabled, run the olspredowngrade.sql script: SQL> @ORACLE_HOME/rdbms/admin/olspredowngrade.sql Caution: Run olspredowngrade.sql before you downgrade from Oracle Database 12c to database release 11.2 for databases that use Oracle Label Security and Oracle Database Vault. 4. If Unified Auditing is enabled, take the backup and purge the unified audit trail. SQL> SELECT VALUE FROM V$OPTION WHERE PARAMETER = ‘Unified Auditing’; VALUE——————–FALSE If enabled, perform the below steps. 4.a Get the unified audit records SQL> SELECT COUNT(*) FROM UNIFIED_AUDIT_TRAIL; 4.b Get the unified audit records SQL> SELECT COUNT(*) FROM UNIFIED_AUDIT_TRAIL; 4.c Backup existing data to backup table. SQL> CREATE TABLE UA_DATA_BKP AS (SELECT * FROM UNIFIED_AUDIT_TRAIL); 4.d Clean up the audit trail. SQL> EXEC DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL(audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED, use_last_arch_timestamp => FALSE); 5. Before downgrade, check the the version of time zone file. SQL> col version for 999999999999select * from V$TIMEZONE_FILE; FILENAME VERSION CON_ID——————– ————- ———-timezlrg_32.dat 32 0 This version of time zone file should exist in Oracle 11g home. If not exists, need to apply patch 28125601 (p28125601_112040_Linux-x86-64). [oracle@prod db_1]$ cd /u01/app/oracle/product/11.0.0/db_1/oracore/zoneinfo/[oracle@prod zoneinfo]$ ls -lrt timezlrg_32.datls: cannot access timezlrg_32.dat: No such file or directory export ORACLE_HOME=/u01/app/oracle/product/11.0.0/db_1export PATH=/u01/app/oracle/product/11.0.0/db_1/bin === ==Run OPatch Conflict Check[oracle@prod ~]$ /u01/app/oracle/product/11.0.0/db_1/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /patch/patches/28125601 Oracle Interim Patch Installer version 11.2.0.3.50Copyright (c) 2025, Oracle Corporation. All rights reserved. PREREQ session Oracle Home : /u01/app/oracle/product/11.0.0/db_1Central Inventory : /u01/app/oraInventoryfrom : /u01/app/oracle/product/11.0.0/db_1/oraInst.locOPatch version : 11.2.0.3.50OUI version : 11.2.0.4.0Log file location : /u01/app/oracle/product/11.0.0/db_1/cfgtoollogs/opatch/opatch2025-06-28_10-12-49AM_1.log Invoking prereq “checkconflictagainstohwithdetail” Prereq “checkConflictAgainstOHWithDetail” passed. OPatch succeeded. — ===Run OPatch System Space Check [oracle@prod ~]$ /u01/app/oracle/product/11.0.0/db_1/OPatch/opatch prereq CheckSystemSpace -phBaseDir /patch/patches/28125601Oracle Interim Patch Installer version 11.2.0.3.50Copyright (c) 2025, Oracle Corporation. All rights reserved. PREREQ session Oracle Home : /u01/app/oracle/product/11.0.0/db_1Central Inventory : /u01/app/oraInventoryfrom : /u01/app/oracle/product/11.0.0/db_1/oraInst.locOPatch version : 11.2.0.3.50OUI version : 11.2.0.4.0Log file location : /u01/app/oracle/product/11.0.0/db_1/cfgtoollogs/opatch/opatch2025-06-28_10-13-28AM_1.log Invoking prereq “checksystemspace” Prereq “checkSystemSpace” passed. OPatch succeeded. — ===Apply the Patch/u01/app/oracle/product/11.0.0/db_1/OPatch/opatch apply -oh /u01/app/oracle/product/11.0.0/db_1 -local /patch/patches/28125601 [oracle@prod ~]$ /u01/app/oracle/product/11.0.0/db_1/OPatch/opatch apply -oh /u01/app/oracle/product/11.0.0/db_1 -local /patch/patches/28125601Oracle Interim Patch Installer version 11.2.0.3.50Copyright (c) 2025, Oracle Corporation. All rights reserved. Oracle Home : /u01/app/oracle/product/11.0.0/db_1Central Inventory : /u01/app/oraInventoryfrom : /u01/app/oracle/product/11.0.0/db_1/oraInst.locOPatch version : 11.2.0.3.50OUI version : 11.2.0.4.0Log file location : /u01/app/oracle/product/11.0.0/db_1/cfgtoollogs/opatch/opatch2025-06-28_10-16-14AM_1.log Verifying environment and performing prerequisite checks…OPatch continues with these patches: 28125601 Do you want to proceed? [y|n]yUser Responded with: YAll checks passed.Backing up files…Applying interim patch ‘28125601’ to OH ‘/u01/app/oracle/product/11.0.0/db_1’ApplySession: Optional component(s) [ oracle.oracore.rsf.core, 11.2.0.4.0 ] not present in the Oracle Home or a higher version is found. Patching component oracle.oracore.rsf, 11.2.0.4.0…Patch 28125601 successfully applied.Log file location: /u01/app/oracle/product/11.0.0/db_1/cfgtoollogs/opatch/opatch2025-06-28_10-16-14AM_1.log OPatch succeeded. — [oracle@prod ~]$ cd /u01/app/oracle/product/11.0.0/db_1/oracore/zoneinfo/[oracle@prod zoneinfo]$ ls -lrt timezlrg_32.dat-rw-r–r– 1 oracle oinstall 786909 Jul 19 2018 timezlrg_32.dat [oracle@prod OPatch]$ cd /u01/app/oracle/product/11.0.0/db_1/OPatch[oracle@prod OPatch]$ ./opatch lsinventory | grep appliedPatch 28125601 : applied on Sat Jun 28 10:16:25 IST 2025 6. Apply the Patches on 11g home – 20348910 and 20898997 [oracle@prod ~]$ /u01/app/oracle/product/11.0.0/db_1/OPatch/opatch apply -oh /u01/app/oracle/product/11.0.0/db_1 -local /patch/patches/20348910 Oracle Interim Patch Installer version 11.2.0.3.50Copyright (c) 2025, Oracle Corporation. All rights reserved. Oracle Home : /u01/app/oracle/product/11.0.0/db_1Central Inventory : /u01/app/oraInventoryfrom : /u01/app/oracle/product/11.0.0/db_1/oraInst.locOPatch version : 11.2.0.3.50OUI version : 11.2.0.4.0Log file location : /u01/app/oracle/product/11.0.0/db_1/cfgtoollogs/opatch/opatch2025-06-29_13-57-16PM_1.log Verifying environment and performing prerequisite checks…OPatch continues with these patches: 20348910 Do you want to proceed? [y|n]yUser Responded with: YAll checks passed.Backing up files…Applying interim patch ‘20348910’ to OH ‘/u01/app/oracle/product/11.0.0/db_1’ Patching component oracle.rdbms.dbscripts, 11.2.0.4.0…Patch 20348910 successfully applied.Log file location: /u01/app/oracle/product/11.0.0/db_1/cfgtoollogs/opatch/opatch2025-06-29_13-57-16PM_1.log OPatch succeeded. —– [oracle@prod ~]$ /u01/app/oracle/product/11.0.0/db_1/OPatch/opatch apply -oh /u01/app/oracle/product/11.0.0/db_1 -local /patch/patches/20898997Oracle Interim Patch Installer version 11.2.0.3.50Copyright (c) 2025, Oracle Corporation. All rights reserved. Oracle Home : /u01/app/oracle/product/11.0.0/db_1Central Inventory : /u01/app/oraInventoryfrom : /u01/app/oracle/product/11.0.0/db_1/oraInst.locOPatch version : 11.2.0.3.50OUI version : 11.2.0.4.0Log file location : /u01/app/oracle/product/11.0.0/db_1/cfgtoollogs/opatch/opatch2025-06-29_13-57-53PM_1.log Verifying environment and performing prerequisite checks… ——————————————————————————–Start OOP by Prereq process.Launch OOP… Oracle Interim Patch Installer version 11.2.0.3.50Copyright (c) 2025, Oracle Corporation. All rights reserved. Oracle Home : /u01/app/oracle/product/11.0.0/db_1Central Inventory : /u01/app/oraInventoryfrom : /u01/app/oracle/product/11.0.0/db_1/oraInst.locOPatch version : 11.2.0.3.50OUI version : 11.2.0.4.0Log file location : /u01/app/oracle/product/11.0.0/db_1/cfgtoollogs/opatch/opatch2025-06-29_13-57-59PM_1.log Verifying environment and performing prerequisite checks…OPatch continues with these patches: 20898997 Do you want to proceed? [y|n]yUser Responded with: YAll checks passed. Please shutdown Oracle instances running out of this ORACLE_HOME on the local system.(Oracle Home = ‘/u01/app/oracle/product/11.0.0/db_1’) Is the local system ready for patching? [y|n]yUser Responded with: YBacking up files…Applying interim patch ‘20898997’ to OH ‘/u01/app/oracle/product/11.0.0/db_1’ Patching component oracle.rdbms.rsf, 11.2.0.4.0… Patching component oracle.rdbms, 11.2.0.4.0…Patch 20898997 successfully applied.Log file location: /u01/app/oracle/product/11.0.0/db_1/cfgtoollogs/opatch/opatch2025-06-29_13-57-59PM_1.log OPatch succeeded. — [oracle@prod ~]$ cd /u01/app/oracle/product/11.0.0/db_1/OPatch[oracle@prod OPatch]$ ./opatch lsinventory | grep appliedPatch 20898997 : applied on Sun Jun 29 13:58:13 IST 2025Patch 20348910 : applied on Sun Jun 29 13:57:26 IST 2025Patch 28125601 : applied on Sun Jun 29 12:48:49 IST 2025 7. Before downgrade, check the status of dba_registry components. set lines 1234 pages 1234col comp_name for a50col version for a15col status for a10SELECT comp_name, version, status FROM dba_registry; COMP_NAME VERSION STATUS————————————————– ————— ———-Oracle Database Catalog Views 19.0.0.0.0 VALIDOracle Database Packages and Types 19.0.0.0.0 VALIDJServer JAVA Virtual Machine 19.0.0.0.0 VALIDOracle XDK 19.0.0.0.0 VALIDOracle Database Java Packages 19.0.0.0.0 VALIDOracle Real Application Clusters 19.0.0.0.0 OPTION OFFOLAP Analytic Workspace 19.0.0.0.0 VALIDOracle Workspace Manager 19.0.0.0.0 VALIDOracle Text 19.0.0.0.0 VALIDOracle XML Database 19.0.0.0.0 VALIDOracle Multimedia 19.0.0.0.0 VALIDSpatial 19.0.0.0.0 VALIDOracle OLAP API 19.0.0.0.0 VALIDOracle Application Express 3.2.1.00.12 VALID 14 rows selected. — SQL> set lines 1234 pages 1234 col action_time for a30 col action for a14 col namespace for a14 col version for a10
Oracle Database Upgrade from 11g (11.2.0.4) to 19c (19.3) by Autoupgrade
Oracle Database Upgrade from 11g (11.2.0.4) to 19c (19.3) by Autoupgrade oracledna Oracle Standalone Database June 28, 2025 This post is demonstrate the upgrading Standalone Non-CDB Oracle Database from 11g (11.2.0.4) to 19c (19.3). 1. Take the full RMAN backup of 11g Oracle Database. 2. Take the 11g Home backup. [oracle@prod 11.0.0]$ cd /u01/app/oracle/product/11.0.0[oracle@prod 11.0.0]$ [oracle@prod 11.0.0]$ tar -pcvf db_1_bkp.tar db_1 [oracle@prod 11.0.0]$ lsdb_1 db_1_bkp.tar 3. Ensure DB backup is completed before upgrade. SQL> SELECT * FROM v$backup WHERE status != ‘NOT ACTIVE’; no rows selected 4. Check the invalid objects and make them valid. Also, SYS and SYSTEM objects should not be in invalid state. SQL> select count(*) from dba_objects where status=’INVALID’; COUNT(*)———-0 — SQL> SELECT owner,object_name,object_type,status,created FROM dba_objects where status=’INVALID’ and owner=’SYS’; no rows selected — SQL> SELECT owner,object_name,object_type,status,created FROM dba_objects where status=’INVALID’ and owner=’SYSTEM’; no rows selected 5. Check the status of dba registry components before upgrade. All components should be in valid status. set lines 1234 pages 1234col comp_name for a50col version for a15col status for a10SELECT comp_name, version, status FROM dba_registry; COMP_NAME VERSION STATUS————————————————– ————— ———-OWB 11.2.0.4.0 VALIDOracle Application Express 3.2.1.00.12 VALIDOracle Enterprise Manager 11.2.0.4.0 VALIDOLAP Catalog 11.2.0.4.0 VALIDSpatial 11.2.0.4.0 VALIDOracle Multimedia 11.2.0.4.0 VALIDOracle XML Database 11.2.0.4.0 VALIDOracle Text 11.2.0.4.0 VALIDOracle Expression Filter 11.2.0.4.0 VALIDOracle Rules Manager 11.2.0.4.0 VALIDOracle Workspace Manager 11.2.0.4.0 VALIDOracle Database Catalog Views 11.2.0.4.0 VALIDOracle Database Packages and Types 11.2.0.4.0 VALIDJServer JAVA Virtual Machine 11.2.0.4.0 VALIDOracle XDK 11.2.0.4.0 VALIDOracle Database Java Packages 11.2.0.4.0 VALIDOLAP Analytic Workspace 11.2.0.4.0 VALIDOracle OLAP API 11.2.0.4.0 VALID 18 rows selected. 6. Take the compatible parameter value of 11g DB to compare after the DB upgrade. SQL> show parameter compatible NAME TYPE VALUE———————————— ———– ——————————compatible string 11.2.0.4.0 7. Take the time zone value of 11g DB. set linesize 300col property_name for a30col value for a20SELECT PROPERTY_NAME, SUBSTR(property_value, 1, 30) valueFROM DATABASE_PROPERTIESWHERE PROPERTY_NAME LIKE ‘DST_%’ORDER BY PROPERTY_NAME; PROPERTY_NAME VALUE—————————— ——————–DST_PRIMARY_TT_VERSION 14DST_SECONDARY_TT_VERSION 0DST_UPGRADE_STATE NONE — col version for 9999999999999SELECT * FROM v$timezone_file; FILENAME VERSION——————– ————–timezlrg_14.dat 14 8. Enable archive mode mode and Fast Recovery Area (FRA). SQL> select flashback_on from v$database; FLASHBACK_ON——————NO — SQL> show parameter recovery NAME TYPE VALUE———————————— ———– ——————————db_recovery_file_dest stringdb_recovery_file_dest_size big integer 0recovery_parallelism integer 0 — SQL> alter system set db_recovery_file_dest_size=20G; System altered. — SQL> alter system set db_recovery_file_dest=’/oem/fra’; System altered. — SQL> show parameter recovery NAME TYPE VALUE———————————— ———– ——————————db_recovery_file_dest string /oem/fradb_recovery_file_dest_size big integer 20Grecovery_parallelism integer 0 — SQL> select name,open_mode,log_mode from v$database; NAME OPEN_MODE LOG_MODE——— ——————– ————PROD READ WRITE ARCHIVELOG 9. Check the status of all materialized views (MV), and refresh any materialized views that are not fresh. SQL> SELECT o.name FROM sys.obj$ o, sys.user$ u, sys.sum$ s WHERE o.type# = 42 AND bitand(s.mflags, 8) =8; no rows selected 10. Download the most recent version of “Autoupgrade.jar” file, from Doc 2485457.1 or frim https://www.oracle.com/database/upgrades/. In 19c home, take the backup of existing autoupgrade.jar file and place the latest autoupgrade.jar file. cd /u01/app/oracle/product/19.0.0/db_1/rdbms/admin mv autoupgrade.jar autoupgrade.jar_bkp cp /tmp/autoupgrade.jar . 11. Generate a sample config file and edit accordingly. Make sure export the 11g Oracle home before running the “autoupgrade.jar” commands. [oracle@prod ~]$ /u01/app/oracle/product/19.0.0/db_1/jdk/bin/java -jar /u01/app/oracle/product/19.0.0/db_1/rdbms/admin/autoupgrade.jar -create_sample_file config /u01/config.cfg Created sample configuration file /u01/config.cfg — Now, edit the config file upg1.log_dir=/u01/app/oracle/cfgtoollogs/autoupgradeupg1.sid=produpg1.source_home=/u01/app/oracle/product/11.0.0/db_1upg1.target_home=/u01/app/oracle/product/19.0.0/db_1upg1.start_time=NOWupg1.upgrade_node=produpg1.run_utlrp=yesupg1.timezone_upg=yesupg1.target_version=19 To check the list of checks which autoaupgrade.jar performs use below command. /u01/app/oracle/product/19.0.0/db_1/jdk/bin/java -jar /u01/app/oracle/product/19.0.0/db_1/rdbms/admin/autoupgrade.jar -listchecks 12. Run the upgrade in analyze mode to validate any expected issues with the upgrade. /u01/app/oracle/product/19.0.0/db_1/jdk/bin/java -jar /u01/app/oracle/product/19.0.0/db_1/rdbms/admin/autoupgrade.jar -config /u01/config.cfg -mode analyze [oracle@prod ~]$ /u01/app/oracle/product/19.0.0/db_1/jdk/bin/java -jar /u01/app/oracle/product/19.0.0/db_1/rdbms/admin/autoupgrade.jar -config /u01/config.cfg -mode analyze AutoUpgrade 25.3.250509 launched with default internal optionsProcessing config file …+——————————–+| Starting AutoUpgrade execution |+——————————–+1 Non-CDB(s) will be analyzedType ‘help’ to list console commandsupg> status Config User configuration file [/u01/config.cfg]General logs location [/u01/app/oracle/cfgtoollogs/autoupgrade/cfgtoollogs/upgrade/auto]Mode [ANALYZE]Jobs Summary Total databases in configuration file [1]Total Non-CDB being processed [1]Total Containers being processed [0] Jobs finished successfully [0]Jobs finished/stopped [0]Jobs in progress [1] Progress+—+———————————————————+|Job| Progress|+—+———————————————————+|100|[||||||||||||||||| ] 33 %|+—+———————————————————+ upg> status -job 100Job 100 completed——————- Final Summary ——————–Number of databases [ 1 ] Jobs finished [1]Jobs failed [0] Please check the summary report at:/u01/app/oracle/cfgtoollogs/autoupgrade/cfgtoollogs/upgrade/auto/status/status.html/u01/app/oracle/cfgtoollogs/autoupgrade/cfgtoollogs/upgrade/auto/status/status.log — [oracle@prod ~]$ cat /u01/app/oracle/cfgtoollogs/autoupgrade/cfgtoollogs/upgrade/auto/status/status.log==========================================Autoupgrade Summary Report==========================================[Date] Sat Jun 28 06:06:40 IST 2025[Number of Jobs] 1==========================================[Job ID] 100==========================================[DB Name] prod[Version Before Upgrade] 11.2.0.4.0[Version After Upgrade] 19.3.0.0.0——————————————[Stage Name] PRECHECKS[Status] SUCCESS[Start Time] 2025-06-28 06:06:23[Duration] 0:00:16[Log Directory] /u01/app/oracle/cfgtoollogs/autoupgrade/prod/100/prechecks[Detail] /u01/app/oracle/cfgtoollogs/autoupgrade/prod/100/prechecks/prod_preupgrade.logCheck passed and no manual intervention needed —- We must refer below preupgrade.log for more details. /u01/app/oracle/cfgtoollogs/autoupgrade/prod/100/prechecks/prod_preupgrade.log 13. Run Autoupgrade in Deploy mode. Important: Before running Autoupgrade in Deploy mode, we must validate that there are no invalid objects or components that may affect the process. [oracle@prod ~]$ /u01/app/oracle/product/19.0.0/db_1/jdk/bin/java -jar /u01/app/oracle/product/19.0.0/db_1/rdbms/admin/autoupgrade.jar -config /u01/config.cfg -mode deploy AutoUpgrade 25.3.250509 launched with default internal optionsProcessing config file …+——————————–+| Starting AutoUpgrade execution |+——————————–+1 Non-CDB(s) will be processedType ‘help’ to list console commandsupg> status Config User configuration file [/u01/config.cfg]General logs location [/u01/app/oracle/cfgtoollogs/autoupgrade/cfgtoollogs/upgrade/auto]Mode [DEPLOY]Jobs Summary Total databases in configuration file [1]Total Non-CDB being processed [1]Total Containers being processed [0] Jobs finished successfully [0]Jobs finished/stopped [0]Jobs in progress [1] Progress+—+———————————————————+|Job| Progress|+—+———————————————————+|101|[|||||||||||| ] 23 %|+—+———————————————————+ upg>upg>upg> status -job 101Details Job No 101Oracle SID prodStart Time 25/06/28 06:16:49Elapsed (min): 0End time: N/A Logfiles Logs Base: /u01/app/oracle/cfgtoollogs/autoupgrade/prodJob logs: /u01/app/oracle/cfgtoollogs/autoupgrade/prod/101Stage logs: /u01/app/oracle/cfgtoollogs/autoupgrade/prod/101/prechecksTimeZone: /u01/app/oracle/cfgtoollogs/autoupgrade/prod/tempRemote Dirs: StagesSETUP <1 minGRP <1 minPREUPGRADE <1 minPRECHECKS ~0 min (RUNNING)PREFIXUPSDRAINDBUPGRADEPOSTCHECKSPOSTFIXUPSPOSTUPGRADESYSUPDATES Stage-Progress Per Container +——–+———+|Database|PRECHECKS|+——–+———+| prod| 100% |+——–+———+ — upg> status -job 101Details Job No 101Oracle SID prodStart Time 25/06/28 06:16:49Elapsed (min): 75End time: N/A Logfiles Logs Base: /u01/app/oracle/cfgtoollogs/autoupgrade/prodJob logs: /u01/app/oracle/cfgtoollogs/autoupgrade/prod/101Stage logs: /u01/app/oracle/cfgtoollogs/autoupgrade/prod/101/postfixupsTimeZone: /u01/app/oracle/cfgtoollogs/autoupgrade/prod/tempRemote Dirs: StagesSETUP <1 minGRP <1 minPREUPGRADE <1 minPRECHECKS <1 minPREFIXUPS 6 minDRAIN <1 minDBUPGRADE 49 minDISPATCH <1 minPOSTCHECKS <1 minDISPATCH <1 minPOSTFIXUPS ~18 min (RUNNING)POSTUPGRADESYSUPDATES Stage-Progress Per Container +——–+———-+|Database|POSTFIXUPS|+——–+———-+| prod| 100% |+——–+———-+ — upg> status -job 101Details Job No 101Oracle SID prodStart Time 25/06/28 06:16:49Elapsed (min): 72End time: N/A Logfiles Logs Base: /u01/app/oracle/cfgtoollogs/autoupgrade/prodJob logs: /u01/app/oracle/cfgtoollogs/autoupgrade/prod/101Stage logs: /u01/app/oracle/cfgtoollogs/autoupgrade/prod/101/postfixupsTimeZone: /u01/app/oracle/cfgtoollogs/autoupgrade/prod/tempRemote Dirs: StagesSETUP <1 minGRP <1 minPREUPGRADE <1 minPRECHECKS <1 minPREFIXUPS 6 minDRAIN <1 minDBUPGRADE 49 minDISPATCH <1 minPOSTCHECKS <1 minDISPATCH <1 minPOSTFIXUPS ~16 min (RUNNING)POSTUPGRADESYSUPDATES Stage-Progress Per Container +——–+———-+|Database|POSTFIXUPS|+——–+———-+| prod| 80 % |+——–+———-+ upg> lsj+—-+——-+———-+———+——-+———-+——-+—————-+|Job#|DB_NAME| STAGE|OPERATION| STATUS|START_TIME|UPDATED| MESSAGE|+—-+——-+———-+———+——-+———-+——-+—————-+| 101| prod|POSTFIXUPS|EXECUTING|RUNNING| 06:16:49|27s ago|Executing fixups|+—-+——-+———-+———+——-+———-+——-+—————-+ 14. Post upgrade, check the DB version. [oracle@prod ~]$ export ORACLE_HOME=/u01/app/oracle/product/19.0.0/db_1[oracle@prod ~]$ export ORACLE_SID=prod[oracle@prod ~]$ export PATH=/u01/app/oracle/product/19.0.0/db_1/bin [oracle@prod ~]$ sqlplus
Downgrade Standalone Oracle database (Non-CDB) from 19c (19.3) to 12c (12.2.0.1) manually using dbdowngrade utility
Downgrade Standalone Oracle database (Non-CDB) from 19c (19.3) to 12c (12.2.0.1) manually using dbdowngrade utility oracledna Oracle Standalone Database June 24, 2025 This post is to demonstrate to downgrade Standalone Oracle Database (Non-CDB) from 19c (19.3) to 12c (12.2.0.1) manually using dbdowngrade utility. 1. Check the Compatibility Matrix to downgrade the database. 2. Disable the Oracle Database Vault. If Oracle Database enabled, need to disable the Oracle Database Vault before downgrading. Use CDB_DV_STATUS to check the status of Oracle Database Vault. set lines 1234 pages 1234col NAME for a24SELECT * FROM CDB_DV_STATUS; NAME STATUS CON_ID———————— ————– ———-DV_APP_PROTECTION NOT CONFIGURED 0DV_CONFIGURE_STATUS FALSE 0DV_ENABLE_STATUS FALSE 0 If the output is TRUE, then Oracle Database Vault is enabled, so we must disable it. 3. If Unified Auditing is enabled, take the backup and purge the unified audit trail. SQL> SELECT VALUE FROM V$OPTION WHERE PARAMETER = ‘Unified Auditing’;VALUE—————————————————————-FALSE Here Unified Auditing is not Enabled. If enabled, perform the below steps. 3.a Get the unified audit records SQL> SELECT COUNT(*) FROM UNIFIED_AUDIT_TRAIL; COUNT(*)———-53 3.b Backup existing data to backup table. SQL> CREATE TABLE UA_DATA_BKP AS (SELECT * FROM UNIFIED_AUDIT_TRAIL); Table created. 3.c Clean up the audit trail. SQL> EXEC DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL(audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED, use_last_arch_timestamp => FALSE); PL/SQL procedure successfully completed. 4. Before downgrade, check the the version of time zone file. SQL> col version for 999999999999select * from V$TIMEZONE_FILE; FILENAME VERSION CON_ID——————– ————- ———-timezlrg_32.dat 32 0 This version of time zone file should exist in Oracle 12c home. If not exists, need to apply patch 28125601 (p28125601_122010_Linux-x86-64). [oracle@prod ~]$ cd /u01/app/oracle/product/12c/db_1/oracore/zoneinfo/[oracle@prod zoneinfo]$ ls -lrt timezlrg_32.datls: cannot access timezlrg_32.dat: No such file or directory export ORACLE_HOME=/u01/app/oracle/product/12c/db_1export PATH=/u01/app/oracle/product/12c/db_1/binexport PATH=$ORACLE_HOME/OPatch:$PATH — ==Run OPatch Conflict Check [oracle@prod OPatch]$ /u01/app/oracle/product/12c/db_1/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -phBaseDir /patch/patches/28125601 Oracle Interim Patch Installer version 12.2.0.1.6Copyright (c) 2025, Oracle Corporation. All rights reserved. PREREQ session Oracle Home : /u01/app/oracle/product/12c/db_1Central Inventory : /u01/app/oraInventoryfrom : /u01/app/oracle/product/12c/db_1/oraInst.locOPatch version : 12.2.0.1.6OUI version : 12.2.0.1.4Log file location : /u01/app/oracle/product/12c/db_1/cfgtoollogs/opatch/opatch2025-06-24_05-45-03AM_1.log Invoking prereq “checkconflictagainstohwithdetail” Prereq “checkConflictAgainstOHWithDetail” passed. OPatch succeeded. — ===Run OPatch System Space Check [oracle@prod OPatch]$ /u01/app/oracle/product/12c/db_1/OPatch/opatch prereq CheckSystemSpace -phBaseDir /patch/patches/28125601 Oracle Interim Patch Installer version 12.2.0.1.6Copyright (c) 2025, Oracle Corporation. All rights reserved. PREREQ session Oracle Home : /u01/app/oracle/product/12c/db_1Central Inventory : /u01/app/oraInventoryfrom : /u01/app/oracle/product/12c/db_1/oraInst.locOPatch version : 12.2.0.1.6OUI version : 12.2.0.1.4Log file location : /u01/app/oracle/product/12c/db_1/cfgtoollogs/opatch/opatch2025-06-24_05-47-03AM_1.log Invoking prereq “checksystemspace” Prereq “checkSystemSpace” passed. OPatch succeeded. — ==Analyze for Patch Conflict Detection and Resolution [oracle@prod OPatch]$ /u01/app/oracle/product/12c/db_1/OPatch/opatch apply /patch/patches/28125601 -analyze Oracle Interim Patch Installer version 12.2.0.1.6Copyright (c) 2025, Oracle Corporation. All rights reserved. Oracle Home : /u01/app/oracle/product/12c/db_1Central Inventory : /u01/app/oraInventoryfrom : /u01/app/oracle/product/12c/db_1/oraInst.locOPatch version : 12.2.0.1.6OUI version : 12.2.0.1.4Log file location : /u01/app/oracle/product/12c/db_1/cfgtoollogs/opatch/opatch2025-06-24_05-48-19AM_1.log Verifying environment and performing prerequisite checks…OPatch continues with these patches: 28125601 Do you want to proceed? [y|n]yUser Responded with: YAll checks passed.You are calling OPatch with -ocmrf option while this OPatch is generic, not being bundled with OCM. The -ocmrf option is being deprecated. Please remove it while calling OPatch.Backing up files…Applying interim patch ‘28125601’ to OH ‘/u01/app/oracle/product/12c/db_1’Users request no RAC file generation. Do not create MP files. Skip patching component oracle.oracore.rsf, 12.2.0.1.0 and its actions.The actions are reported here, but are not performed. ApplySession skipping inventory update.Users request no RAC file generation. Do not create MP files.Patch 28125601 successfully applied.Log file location: /u01/app/oracle/product/12c/db_1/cfgtoollogs/opatch/opatch2025-06-24_05-48-19AM_1.log OPatch succeeded. — ===Apply the Patch [oracle@prod OPatch]$ /u01/app/oracle/product/12c/db_1/OPatch/opatch apply -oh /u01/app/oracle/product/12c/db_1 -local /patch/patches/28125601 Oracle Interim Patch Installer version 12.2.0.1.6Copyright (c) 2025, Oracle Corporation. All rights reserved. Oracle Home : /u01/app/oracle/product/12c/db_1Central Inventory : /u01/app/oraInventoryfrom : /u01/app/oracle/product/12c/db_1/oraInst.locOPatch version : 12.2.0.1.6OUI version : 12.2.0.1.4Log file location : /u01/app/oracle/product/12c/db_1/cfgtoollogs/opatch/opatch2025-06-24_05-52-26AM_1.log Verifying environment and performing prerequisite checks…OPatch continues with these patches: 28125601 Do you want to proceed? [y|n]yUser Responded with: YAll checks passed.Backing up files…Applying interim patch ‘28125601’ to OH ‘/u01/app/oracle/product/12c/db_1’ Patching component oracle.oracore.rsf, 12.2.0.1.0…Patch 28125601 successfully applied.Log file location: /u01/app/oracle/product/12c/db_1/cfgtoollogs/opatch/opatch2025-06-24_05-52-26AM_1.log OPatch succeeded. — Now, check the timezone file available or not at OS level. [oracle@prod ~]$ cd /u01/app/oracle/product/12c/db_1/oracore/zoneinfo/ [oracle@prod zoneinfo]$ ls -lrt timezlrg_32.dat-rw-r–r– 1 oracle oinstall 786909 Jul 19 2018 timezlrg_32.dat [oracle@prod OPatch]$ ./opatch lsinventory | grep appliedPatch 28125601 : applied on Tue Jun 24 05:52:33 IST 2025 5. Before downgrade, check the status of dba_registry components. set lines 1234 pages 1234col comp_name for a50col version for a15col status for a10SELECT comp_name, version, status FROM dba_registry; COMP_NAME VERSION STATUS————————————————– ————— ———-Oracle Database Catalog Views 19.0.0.0.0 VALIDOracle Database Packages and Types 19.0.0.0.0 VALIDJServer JAVA Virtual Machine 19.0.0.0.0 VALIDOracle XDK 19.0.0.0.0 VALIDOracle Database Java Packages 19.0.0.0.0 VALIDOLAP Analytic Workspace 19.0.0.0.0 VALIDOracle Real Application Clusters 19.0.0.0.0 OPTION OFFOracle XML Database 19.0.0.0.0 VALIDOracle Workspace Manager 19.0.0.0.0 VALIDOracle Text 19.0.0.0.0 VALIDOracle Multimedia 19.0.0.0.0 VALIDSpatial 19.0.0.0.0 VALIDOracle OLAP API 19.0.0.0.0 VALIDOracle Label Security 19.0.0.0.0 VALIDOracle Database Vault 19.0.0.0.0 VALID 15 rows selected. — set linesize 300col status for a10col ACTION_TIME for a35select PATCH_ID,PATCH_TYPE,ACTION,ACTION_TIME,SOURCE_VERSION,TARGET_VERSION,STATUS,description from dba_registry_sqlpatch order by ACTION_TIME; PATCH_ID PATCH_TYPE ACTION ACTION_TIME SOURCE_VERSION TARGET_VERSION STATUS DESCRIPTION———- ———- ————— ———————————– ————— ————— ———- —————————————————-29517242 RU APPLY 22-06-25 4:01:09.881240 PM 19.1.0.0.0 19.3.0.0.0 SUCCESS Database Release Update : 19.3.0.0.190416 (29517242) 6. If Oracle Enterprise Manager configured in database, then the drop the Enterprise Manager user. SQL> select username, account_status from dba_users where username=’SYSMAN’;no rows selected In this scenario, OEM is not configured. If OEM configured, drop the SYSMAN user by below drop command. DROP USER sysman CASCADE; Note: After we drop the Enterprise Manager user, we can find that MGMT* synonyms are invalid. You must reconfigure Oracle Enterprise Manager to use any Oracle Enterprise Manager controls in the downgraded database. 7. Check the invalid objects in database. SQL> select count(*) from dba_objects where status=’INVALID’; COUNT(*)———-4 — SQL> set lines 1234 pages 1234col owner for a15select owner,count(*) from dba_objects where status=’INVALID’ group by owner order by owner; OWNER COUNT(*)————— ———-HR 4 — SQL> set lines 1234 pages 1234col owner for a18col object_name for a30col object_type for a18col status for a10select owner,object_name,object_type,created,status from dba_objects where status = ‘INVALID’; OWNER OBJECT_NAME OBJECT_TYPE CREATED STATUS—————— —————————— —————— ——– ———-HR SECURE_DML PROCEDURE 11-06-25 INVALIDHR SECURE_EMPLOYEES TRIGGER 11-06-25 INVALIDHR ADD_JOB_HISTORY PROCEDURE 11-06-25 INVALIDHR UPDATE_JOB_HISTORY TRIGGER 11-06-25 INVALID — To recompile the invalid objects run the utlrp.sql @?/rdbms/admin/utlrp.sql SQL> select count(*)
Downgrade Standalone DB (Non-CDB) from 19c (19.27) to 12c (12.2.0.1) Using Flashback Database
Downgrade Standalone DB (Non-CDB) from 19c (19.27) to 12c (12.2.0.1) Using Flashback Database oracledna Oracle Standalone Database June 14, 2025 This post is to demonstrate the downgrade standalone Oracle Database (Non-CDB) from 19c (19.27) to 12c (12.2.0.1) Using Flashback Database. In this scenario compatible parameter was not updated after DB upgrade from 12c to 19c. 1. Check the GRP created before upgrading 12c DB to 19c. set linesize 300col name format a30col time format a32col scn for 999999999999999999col storage_size for 999999999999999SELECT name, scn, time, database_incarnation#, guarantee_flashback_database, storage_size FROM v$restore_point; NAME SCN TIME DATABASE_INCARNATION# GUA STORAGE_SIZE—————————— ——————- ——————————– ——————— — —————-AUTOUPGRADE_9212_PROD122010 1551009 14-06-25 8:40:55.000000000 AM 2 YES 1048576000 2. Flashback to the GRP using the upgraded 19c home. 2.1 Shutdown the 19c DB. SQL> shutdown immediateDatabase closed.Database dismounted.ORACLE instance shut down. 2.2 Startup the 19c DB in mount state.Ensure 19c Home and Environment variable is set. SQL> startup mountORACLE instance started.Total System Global Area 2063597432 bytesFixed Size 8941432 bytesVariable Size 520093696 bytesDatabase Buffers 1526726656 bytesRedo Buffers 7835648 bytesDatabase mounted. 2.3 Flashback to the GRP. SQL> flashback database to restore point AUTOUPGRADE_9212_PROD122010;Flashback complete. 2.4 Shutdown the DB SQL> shutdown immediate;ORA-01109: database not openDatabase dismounted.ORACLE instance shut down. 3. Open the database using 12c home. Set the environment variable to point to the 12c (12.2.0.1) Oracle Home (12.2.0.1). export ORACLE_HOME=/u01/app/oracle/product/12c/db_1export ORACLE_SID=prodexport PATH=/u01/app/oracle/product/12c/db_1/bin [oracle@prod ~]$ echo $ORACLE_HOME/u01/app/oracle/product/12c/db_1 [oracle@prod ~]$ echo $ORACLE_SIDprod [oracle@prod ~]$ sqlplus -VSQL*Plus: Release 12.2.0.1.0 Production [oracle@prod ~]$ sqlplus / as sysdbaSQL*Plus: Release 12.2.0.1.0 Production on Sat Jun 14 16:35:31 2025Copyright (c) 1982, 2016, Oracle. All rights reserved.Connected to an idle instance. SQL> startup mount;ORACLE instance started.Total System Global Area 2063597568 bytesFixed Size 8622528 bytesVariable Size 587206208 bytesDatabase Buffers 1459617792 bytesRedo Buffers 8151040 bytesDatabase mounted. SQL> alter database open resetlogs;Database altered. SQL> select name,version,status from v$database, v$instance;NAME VERSION STATUS———- —————– ———-PROD 12.2.0.1.0 OPEN 4. Post downgrade check the status of components of dba_registry. set lines 1234 pages 1234col comp_name for a50col version for a15col status for a10SELECT comp_name, version, status FROM dba_registry; COMP_NAME VERSION STATUS————————————————– ————— ———-Oracle Database Catalog Views 12.2.0.1.0 VALIDOracle Database Packages and Types 12.2.0.1.0 VALIDJServer JAVA Virtual Machine 12.2.0.1.0 VALIDOracle XDK 12.2.0.1.0 VALIDOracle Database Java Packages 12.2.0.1.0 VALIDOLAP Analytic Workspace 12.2.0.1.0 VALIDOracle Real Application Clusters 12.2.0.1.0 OPTION OFFOracle XML Database 12.2.0.1.0 VALIDOracle Workspace Manager 12.2.0.1.0 VALIDOracle Text 12.2.0.1.0 VALIDOracle Multimedia 12.2.0.1.0 VALIDSpatial 12.2.0.1.0 VALIDOracle OLAP API 12.2.0.1.0 VALIDOracle Label Security 12.2.0.1.0 VALIDOracle Database Vault 12.2.0.1.0 VALID 15 rows selected. 5. Check the timezone version whether it is reverted or not. SQL> SELECT version FROM v$timezone_file;VERSION————–26 6. Take the RMAN backup. Disclaimer: Please note the above information is only for educational purpose and practised in personal test database only. Always test in test database before implementing in production database. The pre-requisites and ways of implementing may vary from one environment to another. Hence, not providing guarantee that it will work in your environment. Popular Posts Downgrade Standalone DB (Non-CDB) from 19c (19.27) to 12c (12.2.0.1) Using Flashback Database Upgrading Standalone Oracle Database (Non-CDB) from 12c (12.2.0.1) to 19c (19.27) by Autoupgrade Creating multitenant physical standby database in oracle 19c Recover lost datafile of primary database by using a copy of datafile of physical standby database OCI 2025 Certification Learning Paths and Exams Categories ASM (2) DataGuard (2) News (1) Oracle Standalone Database (3) Patching (1)