The Installation of Oracle Apps R12.2.0 has been Completed successfully. Now we can proceed for the
Oracle EBS Apps Upgrade from 12.2.0 to 12.2.12
Oracle ACE Pro
Oracle Solution Architect
Oracle E-Business Suite
Oracle Cloud Infrastructure
Oracle Fusion Middleware
Oracle Database Administration
Oracle Weblogic Administration
Oracle ACE Pro
Oracle Solution Architect
Oracle E-Business Suite
Oracle Cloud Infrastructure
Oracle Fusion Middleware
Oracle Database Administration
Oracle Weblogic Administration
Welcome to our comprehensive Installation guide for Oracle Apps R12.2.12, the latest release by Oracle, on the Oracle Linux OEL 7.9 platform, utilizing Oracle VirtualBox. This post, along with the subsequent ones, will provide step-by-step instructions to ensure a successful installation.
To proceed with the installation, please ensure that your hardware meets the following prerequisites. For reference, we will be using a laptop with the following configuration:
Before proceeding with the installation, ensure that you have the following software components available:
The installation process will be divided into the following parts, as illustrated below. Each part will be thoroughly explored and discussed in detail as presented below.
This involves setting up the virtualization software and configuring the required network adapters and storage settings.
Here, we will guide you through the installation of Oracle Linux 7.9 and the configuration of essential RPM packages. Furthermore, we will cover the necessary pre-installation setups specific to Oracle Linux.
Oracle Linux Installation Link
Oracle Linux Configuration Link
In this Part, we will provide a comprehensive walkthrough of the process for downloading and creating a dedicated staging area specifically designed for Oracle Apps R12.2. By following these steps, you will be able to establish a well-organized staging area, guaranteeing a seamless installation process.
Oracle Media Download Procedure Link
Creating Staging Area for EBS Link
This Part covers the installation of Oracle Apps R12.2.0, followed by a verification process to ensure successful deployment.
Oracle Apps R12.2.0 Installation Link
This Part covers the upgrade process of Oracle Apps R12.2.0 to 12.2.12, followed by a verification process to ensure a successful upgrade.
Oracle EBS Apps Upgrade from 12.2.0 to 12.2.12
This Part covers the upgrade process of Oracle Apps R12.2.12 Database from 12c to 19c, followed by a verification process to ensure a successful upgrade.
Oracle EBS Database Upgrade from 12c to 19c Part-1
Oracle EBS Database Upgrade from 12c to 19c Part-2
This post is a continuation of the previous article on Oracle EBS Database Upgrade from 12c to 19c Part-1. Here, we will delve into the remaining part of the database upgrade process from 12c to 19c. Let’s begin with Section 6, building upon Section 5 discussed in the last post.
Step 1. Create the CDB
On the database server node Source 19c environment and run below from GUI Terminal/VNC
|
[oracle@test1 ~]$ . ./19c.env
[oracle@test1 ~]$ cd $ORACLE_HOME/bin
[oracle@test1 bin]$ ./dbca
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
Database Creation Process Starts |
![]() |
|
![]() |
Use the following commands to load any necessary patches on the CDB.
Source 19 environment File
[oracle@test1 ~]$ . ./19c.env [oracle@test1 ~]$ export ORACLE_SID=prodcdb [oracle@test1 ~]$ $ORACLE_HOME/OPatch/datapatch SQL Patching tool version 19.19.0.0.0 Production on Mon Jul 17 03:01:50 2023 Copyright (c) 2012, 2023, Oracle. All rights reserved. Log file for this invocation: /u01/app/oracle/cfgtoollogs/sqlpatch/sqlpatch_29132_2023_07_17_03_01_50/ sqlpatch_invocation.log Connecting to database…OK Gathering database info…done
Note: Datapatch will only apply or rollback SQL fixes for PDBs that are in an open state, no patches will be applied to closed PDBs. Please refer to Note: Datapatch: Database 12c Post Patch SQL Automation (Doc ID 1585822.1) Bootstrapping registry and package to current versions…done Determining current state…done Current state of interim SQL patches: Interim patch 35050341 (OJVM RELEASE UPDATE: 19.19.0.0.230418 (35050341)): Binary registry: Installed PDB CDB$ROOT: Applied successfully on 17-JUL-23 02.35.23.436147 AM PDB PDB$SEED: Applied successfully on 17-JUL-23 02.47.06.787785 AM Interim patch 35406065 (RESTORE DATABASE PREVIEW FAILING WITH RMAN-00600 [7004] [0] [KRMR_GET_ARCHIVED_NEXT_SCN_ALSCN] AFTER): Binary registry: Installed PDB CDB$ROOT: Applied successfully on 17-JUL-23 02.35.23.546590 AM PDB PDB$SEED: Applied successfully on 17-JUL-23 02.47.06.898928 AM Current state of release update SQL patches: Binary registry: 19.19.0.0.0 Release_Update 230322020406: Installed PDB CDB$ROOT: Applied 19.19.0.0.0 Release_Update 230322020406 successfully on 17-JUL-23 02.35.23.428107 AM PDB PDB$SEED: Applied 19.19.0.0.0 Release_Update 230322020406 successfully on 17-JUL-23 02.47.06.781113 AM Adding patches to installation queue and performing prereq checks…done Installation queue: For the following PDBs: CDB$ROOT PDB$SEED No interim patches need to be rolled back No release update patches need to be installed No interim patches need to be applied SQL Patching tool complete on Mon Jul 17 03:02:14 2023 |
Use SQL*Plus to connect to the CDB as SYSDBA and run the $ORACLE_HOME/rdbms/admin/catmgd.sql script. This creates the new MGDSYS schema on the CDB
Source 19c Environment
[oracle@test1 ~]$ . ./19c.env [oracle@test1 ~]$ sqlplus ‘/as sysdba’ SQL*Plus: Release 19.0.0.0.0 – Production on Mon Jul 17 03:04:08 2023 Version 19.19.0.0.0 Copyright (c) 1982, 2022, Oracle. All rights reserved. Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 – Production Version 19.19.0.0.0 SQL> @$ORACLE_HOME/rdbms/admin/catmgd.sql This creates the new MGDSYS schema on the CDB. |
On the database server node, run the following perl script to generate the required TNS files. Note that this script does not create a listener. $ cd $ORACLE_HOME/appsutil$ . ./txkSetCfgCDB.env dboraclehome=<full path of ORACLE_HOME> $ cd $ORACLE_HOME/appsutil/bin $ perl txkGenCDBTnsAdmin.pl -dboraclehome=<ORACLE_HOME> -cdbname=<CDB SID> -cdbsid=<CDB SID> -dbport=<Database port> -outdir=<ORACLE_HOME>/appsutil/log |
[oracle@test1 ~]$ . ./19c.env [oracle@test1 ~]$ cd $ORACLE_HOME/appsutil [oracle@test1 appsutil]$ . ./txkSetCfgCDB.env dboraclehome=$ORACLE_HOME Oracle Home being passed: /u01/oracle/PROD/19.0.0 [oracle@test1 appsutil]$ cd $ORACLE_HOME/appsutil/bin [oracle@test1 bin]$ perl txkGenCDBTnsAdmin.pl -dboraclehome=$ORACLE_HOME -cdbname=prodcdb -cdbsid=prodcdb -dbport=1522 -outdir=$ORACLE_HOME/appsutil/log Script Name : txkGenCDBTnsAdmin.pl Script Version : 120.0.12020000.11 Started : Mon Jul 17 03:10:02 PKT 2023 Log File : /u01/oracle/PROD/19.0.0/appsutil/log/ TXK_CDB_TNS_ADMIN_Mon_Jul_17_03_10_02_2023/txkGenCDBTnsAdmin.log ———– Values used ———– Database Oracle Home : /u01/oracle/PROD/19.0.0 CDB NAME : prodcdb CDB SID : prodcdb Database port : 1522 OUT Directory : /u01/oracle/PROD/19.0.0/appsutil/log Is RAC? : No Virtual Hostname : Logical Hostname : Script execution mode : generate ========================= Validating oracle home… ========================= Oracle Home: /u01/oracle/PROD/19.0.0 exists. =========================== Validating out directory… =========================== Out directory: /u01/oracle/PROD/19.0.0/appsutil/log exists. =================================== Validating script execution mode… =================================== Script execution mode: generate Script execution mode is valid. ============================ Inside getDBHostDetails()… ============================ DB Hostname : test1 DB Domain : example.com Logical hostname is not passed, hence using physical hostname details. Logical Hostname : test1 Logical Domain : example.com ===================== Inside getDBPort()… ===================== DB Port passed as an argument, using the same. DB Port: 1522 ====================================== Inside generateCDBTNSAdminContent()… ====================================== Creating the directory: /u01/oracle/PROD/19.0.0/appsutil/log/ TXK_CDB_TNS_ADMIN_Mon_Jul_17_03_10_02_2023/tns_admin_cdb_bkp Creating the directory: /u01/oracle/PROD/19.0.0/appsutil/log/ TXK_CDB_TNS_ADMIN_Mon_Jul_17_03_10_02_2023/tns_admin_cdb_temp listener_template: listener_ora_cdb_db19.tmp sqlnet_template: sqlnet_ora_cdb_db19.tmp Copying the file —————- SOURCE : /u01/oracle/PROD/19.0.0/appsutil/template/listener_ora_cdb_db19.tmp TARGET : /u01/oracle/PROD/19.0.0/appsutil/log/TXK_CDB_TNS_ADMIN_Mon_Jul_17_03_10_02_2023 /tns_admin_cdb_temp/listener.ora =================================== Inside replaceContextVariables()… =================================== File /u01/oracle/PROD/19.0.0/network/admin/listener.ora does not exist. Copying the file —————- SOURCE : /u01/oracle/PROD/19.0.0/appsutil/log/TXK_CDB_TNS_ADMIN_Mon_Jul_17_03_10_02_2023 /tns_admin_cdb_temp/listener.ora TARGET : /u01/oracle/PROD/19.0.0/network/admin/listener.ora Copying the file —————- SOURCE : /u01/oracle/PROD/19.0.0/appsutil/template/tnsnames_ora_cdb_db121.tmp TARGET : /u01/oracle/PROD/19.0.0/appsutil/log/TXK_CDB_TNS_ADMIN_Mon_Jul_17_03_10_02_2023 /tns_admin_cdb_temp/tnsnames.ora =================================== Inside replaceContextVariables()… =================================== File /u01/oracle/PROD/19.0.0/network/admin/tnsnames.ora does not exist. Copying the file —————- SOURCE : /u01/oracle/PROD/19.0.0/appsutil/log/TXK_CDB_TNS_ADMIN_Mon_Jul_17_03_10_02_2023 /tns_admin_cdb_temp/tnsnames.ora TARGET : /u01/oracle/PROD/19.0.0/network/admin/tnsnames.ora Copying the file —————- SOURCE : /u01/oracle/PROD/19.0.0/appsutil/template/sqlnet_ora_cdb_db19.tmp TARGET : /u01/oracle/PROD/19.0.0/appsutil/log/TXK_CDB_TNS_ADMIN_Mon_Jul_17_03_10_02_2023 /tns_admin_cdb_temp/sqlnet.ora =================================== Inside replaceContextVariables()… =================================== File /u01/oracle/PROD/19.0.0/network/admin/sqlnet.ora does not exist. Copying the file —————- SOURCE : /u01/oracle/PROD/19.0.0/appsutil/log/TXK_CDB_TNS_ADMIN_Mon_Jul_17_03_10_02_2023 /tns_admin_cdb_temp/sqlnet.ora TARGET : /u01/oracle/PROD/19.0.0/network/admin/sqlnet.ora ============================== Inside updateCDBSqlNetOra()… ============================== Updating the IFILE entry… Exiting from the script. Ended: Mon Jul 17 03:10:02 PKT 2023 |
Source 19c environment file and Use SQL*Plus to connect to the CDB as SYSDBA and use the following command to shut down the database:
[oracle@test1 bin]$ sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 – Production on Mon Jul 17 03:12:11 2023 Version 19.19.0.0.0 Copyright (c) 1982, 2022, Oracle. All rights reserved. Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 – Production Version 19.19.0.0.0 SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. |
As the owner of the source administration server, execute any of the following commands that have not been executed before. This action will remove any editions that were created during previous adop patching cycles, thereby cleaning up the environment. Additionally, these commands will finalize any pending patching cycles that are still open.
On Application Tier source run file system environment
[oracle@test1 ~]$ . ./EBSapps.env run E-Business Suite Environment Information —————————————- RUN File System : /u01/oracle/PROD/fs2/EBSapps/appl PATCH File System : /u01/oracle/PROD/fs1/EBSapps/appl Non-Editioned File System : /u01/oracle/PROD/fs_ne DB Host: test1.example.com Service/SID: PROD Sourcing the RUN File System … |
$ adop phase=prepare
$ adop phase=actualize_all
$ adop phase=finalize finalize_mode=full
$ adop phase=cutover mtrestart=no
Note: The steps mentioned above may require a significant amount of time to complete. Therefore, it is advised to relax and monitor the progress during this period.
Source the Environment Again On the new run file system
oracle@test1 ~]$ . ./EBSapps.env run E-Business Suite Environment Information —————————————- RUN File System : /u01/oracle/PROD/fs2/EBSapps/appl PATCH File System : /u01/oracle/PROD/fs1/EBSapps/appl Non-Editioned File System : /u01/oracle/PROD/fs_ne DB Host: test1.example.com Service/SID: PROD Sourcing the RUN File System … |
$ adop phase=cleanup cleanup_mode=full
These maintenance operations will have a significantly longer duration compared to a typical online patching cycle. Therefore, it is recommended to perform them only when there is no urgent requirement to initiate a new online patching cycle.
The applications will be unavailable to users until all remaining tasks are completed.
You Can monitor the above process through ADOPMON
[oracle@test1 PROD]$ adopmon Running script. Press Ctrl-C to quit. Enter the APPS password: Validating credentials… Printing the log statements starting from sequence #702651 Timestamp Node name Message Type Message Text ————————————————————————————————————————— 2023/07/17 17:30:38 test1 EVENT Drop covered objects, pass #11 complete, dropped: 122, errors: 0 2023/07/17 17:31:03 test1 EVENT Drop covered objects, pass #12 complete, dropped: 52, errors: 0 2023/07/17 17:31:19 test1 EVENT Drop covered objects, pass #13 complete, dropped: 15, errors: 0 2023/07/17 17:31:35 test1 EVENT Drop covered objects, pass #14 complete, dropped: 1, errors: 0 2023/07/17 17:31:47 test1 EVENT Drop covered objects, pass #15 complete, dropped: 0, errors: 0 2023/07/17 17:31:47 test1 EVENT Drop Covered Objects – alternate method 2023/07/17 17:32:10 test1 EVENT Cleanup crossedition triggers 2023/07/17 17:32:11 test1 EVENT Cleanup unused columns 2023/07/17 17:33:04 EVENT Drop Edition: “ORA$BASE” 2023/07/17 18:25:51 EVENT Drop Edition: “V_20230716_1415” 2023/07/17 18:25:55 test1 EVENT Generating log report. 2023/07/17 18:25:55 test1 EVENT Output: /u01/oracle/PROD/fs_ne/EBSapps /log/adop/8/20230717_144033/clea nup/test1/adzdshowlog.out 2023/07/17 18:25:56 test1 EVENT The cleanup phase completed successfully. |
Step 2. Store the UTL_FILE_DIR parameter values
In Oracle EBS, the PLSQL IO files are typically stored in the /usr/tmp directory of the Database Node. This is a common practice across all EBS versions, starting from 11i to R12.2. EBS achieves this by utilizing the UTL_FILE_DIR initialization parameter. However, starting from version 18c, the UTL_FILE_DIR initialization parameter has been deprecated and is no longer supported.
To address this change in Oracle 19c, Oracle for EBS has introduced new views in the APPS schema, namely apps.v$parameter and apps.v$parameter2, which provide a supplemental parameter for UTL_FILE_DIR. In order to configure this parameter, please refer to the instructions provided in Section 3.1.1 of the document titled ‘Using UTL_FILE_DIR or Database Directories for PL/SQL File I/O in Oracle E-Business Suite Releases 12.1 and 12.2′ (Doc ID 2525754.1).”
Now, we need to execute the txkCfgUtlfileDir.pl script twice in different modes to complete this task. First, run the script in the ‘getUtlFileDir‘ mode to retrieve the directory paths previously specified in the UTL_FILE_DIR database initialization parameter and prepare them for the upgrade. Subsequently, execute the script in the ‘setUtlFileDir’ mode to store the directory paths in the new Oracle E-Business Suite tables that underlie the apps.v$parameter and apps.v$parameter2 views, and to create the corresponding directory objects.
To retrieve the directory path values from the source UTL_FILE_DIR database initialization parameter, follow these steps:
a) Source the Oracle E-Business Suite database environment of your 11g or 12c Oracle home.
[oracle@test1 ~]$ . ./PROD_test1.env [oracle@test1 ~]$ echo $CONTEXT_FILE /u01/oracle/PROD/12.1.0/appsutil/PROD_test1.xml [oracle@test1 ~]$ echo $ORACLE_HOME /u01/oracle/PROD/12.1.0 |
b) Run txkCfgUtlfileDir.pl script in getUtlFileDir mode using the following command:
$ perl $ORACLE_HOME/appsutil/bin/txkCfgUtlfileDir.pl -contextfile=<DB Context File> -oraclehome=<11g/12c ORACLE_HOME> -outdir=<Output/Log location> -upgradedhome=<19c ORACLE_HOME> -mode=getUtlFileDir -servicetype=onpremise|opc [oracle@test1 ~]$ perl $ORACLE_HOME/appsutil/bin/txkCfgUtlfileDir.pl -contextfile=/u01/oracle/PROD/12.1.0/appsutil/PROD_test1.xml -oraclehome=/u01/oracle/PROD/12.1.0 -outdir=/tmp -upgradedhome=/u01/oracle/PROD/19.0.0 -mode=getUtlFileDir -servicetype=onpremise Enter the APPS Password: Script Name : txkCfgUtlfileDir.pl Script Version : 120.0.12020000.29 Started : Mon Jul 17 18:47:47 PKT 2023 Log File : /tmp/TXK_UTIL_DIR_Mon_Jul_17_18_47_46_2023/txkCfgUtlfileDir.log
Context file: /u01/oracle/PROD/12.1.0/appsutil/PROD_test1.xml exists.
==============================================================================
Successfully generated the below file with UTL_FILE_DIR content: /u01/oracle/PROD/12.1.0/dbs/PROD_utlfiledir.txt
==============================================================================
Completed : Mon Jul 17 18:47:48 PKT 2023 Successfully Completed the script ERRORCODE = 0 ERRORCODE_END Using this command, the script retrieves the directory paths stored in the UTL_FILE_DIR database initialization parameter. It then modifies these paths to prepare them for usage in Oracle Database 19c. As a result, a text file named <DB_NAME>_utlfiledir.txt is created in the <ORACLE_HOME>/dbs directory. This file contains the list of modified directory paths. Additionally, the script saves the original values from the 11g or 12c UTL_FILE_DIR database initialization parameter, along with the corresponding 19c replacement values, in a text file located in the log directory. To review the modifications made by the script, you can compare this log file with the <DB_NAME>_utlfiledir.txt file present in the <ORACLE_HOME>/dbs directory. |
c) Creating the directory paths of the directories for UTL in the end of the file created /u01/oracle/PROD/12.1.0/dbs/PROD_utlfiledir.txt
[oracle@test1 ~]$ cat /u01/oracle/PROD/12.1.0/dbs/PROD_utlfiledir.txt /u01/oracle/PROD/temp/PROD /u01/oracle/PROD/temp/PROD /u01/oracle/PROD/19.0.0/appsutil/outbound/PROD_test1 /u01/oracle/PROD/temp/PROD [oracle@test1 ~]$ mkdir -p /u01/oracle/PROD/temp/PROD [oracle@test1 ~]$ mkdir -p /u01/oracle/PROD/temp/PROD [oracle@test1 ~]$ mkdir -p /u01/oracle/PROD/19.0.0/appsutil/outbound/PROD_test1 [oracle@test1 ~]$ mkdir -p /u01/oracle/PROD/temp/PROD |
Source the Oracle E-Business Suite database environment of your 11g or 12c Oracle home.
[oracle@test1 ~]$ . ./PROD_test1.env Run the txkCfgUtlfileDir.pl script in setUtlFileDir mode using the following command: $ perl $ORACLE_HOME/appsutil/bin/txkCfgUtlfileDir.pl -contextfile=<DB Context File> -oraclehome=<11g/12c ORACLE_HOME> -outdir=<Output/Log location> -upgradedhome=<19c ORACLE_HOME> -mode=setUtlFileDir -servicetype=onpremise|opc [ -skipdirvalidation=Yes ] [oracle@test1 ~]$ perl $ORACLE_HOME/appsutil/bin/txkCfgUtlfileDir.pl -contextfile=/u01/oracle/PROD/12.1.0/appsutil/PROD_test1.xml -oraclehome=/u01/oracle/PROD/12.1.0 -outdir=/tmp -upgradedhome=/u01/oracle/PROD/19.0.0 -mode=setUtlFileDir -servicetype=onpremise Enter the APPS Password: Script Name : txkCfgUtlfileDir.pl Script Version : 120.0.12020000.29 Started : Mon Jul 17 19:03:46 PKT 2023 Log File : /tmp/TXK_UTIL_DIR_Mon_Jul_17_19_03_45_2023/txkCfgUtlfileDir.log Context file: /u01/oracle/PROD/12.1.0/appsutil/PROD_test1.xml exists. Enter the ebs_system Password: Completed : Mon Jul 17 19:03:52 PKT 2023 Successfully Completed the script ERRORCODE = 0 ERRORCODE_END |
On each application tier server node, shut down all server processes or services. The applications will be unavailable to users until all remaining tasks in this section are completed.
This should be already down based on pervious adop cycle steps.
Source 12c Database environment file
If the SYS.ENABLED$INDEXES table exists, connect to the database as SYSDBA, and run the following command to drop the table:
[oracle@test1 ~]$ sqlplus / as sysdba SQL> drop table sys.enabled$indexes; drop table sys.enabled$indexes * ERROR at line 1: ORA-00942: table or view does not exist Proceed Further if table doesn’t exists. |
Source 12c Environment file
[oracle@test1 ~]$ . ./PROD_test1.env
On the database tier server node, shut down the Oracle Net or Net8 database listener in the old Oracle home.
[oracle@test1 ~]$ lsnrctl stop $ORACLE_SID
LSNRCTL for Linux: Version 12.1.0.2.0 – Production on 17-JUL-2023 19:09:23
Copyright (c) 1991, 2014, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test1.example.com)(PORT=1521)))
The command was completed successfully
Note: To ensure that the database does not inadvertently point to a non-existent listener during the upgrade, verify that you do not have the LOCAL_LISTENER initialization parameter set.
[oracle@test1 ~]$ sqlplus / as sysdba
SQL> show parameter LOCAL_LISTENER
NAME TYPE VALUE
———————————— ———– ——————————
local_listener string PROD_LOCAL
SQL> alter system set local_listener=”;
System altered.
SQL> show parameter LOCAL_LISTENER
NAME TYPE VALUE
———————————— ———– —- ————————–
local_listener string
Modify the following initialization parameters before the upgrade:
SQL> alter system set olap_page_pool_size=0 scope=spfile;
SQL> alter system set event=’10946 trace name context forever, level 8454144′ scope=spfile;
Shut down and restart the database to enable the parameters.
Connect to the 12c Database and run the command as below:
[oracle@test1 ~]$ /u01/oracle/PROD/12.1.0/jdk/bin/java -jar /u01/oracle/PROD/19.0.0/rdbms/admin/preupgrade.jar
==================
PREUPGRADE SUMMARY
==================
/u01/oracle/PROD/12.1.0/cfgtoollogs/PROD/preupgrade/preupgrade.log
/u01/oracle/PROD/12.1.0/cfgtoollogs/PROD/preupgrade/preupgrade_fixups.sql
/u01/oracle/PROD/12.1.0/cfgtoollogs/PROD/preupgrade/postupgrade_fixups.sql
Execute fixup scripts as indicated below:
Before upgrade:
Log into the database and execute the preupgrade fixups
@/u01/oracle/PROD/12.1.0/cfgtoollogs/PROD/preupgrade/preupgrade_fixups.sql
After the upgrade:
Log into the database and execute the postupgrade fixups
@/u01/oracle/PROD/12.1.0/cfgtoollogs/PROD/preupgrade/postupgrade_fixups.sql
As per the recommendation above by the Pre Upgrade tool we will execute preupgrade_fixups.sql
SQL> alter system set processes=300 scope=spfile; SQL>set head off SQL>zet lines 200 pages 200 SQL>set echo off SQL>set feedback off; SQL>spool hidden_parameter.sql SQL>SELECT ‘alter system reset ‘||'”‘||name||'”‘||’ scope =spfile;’ FROM SYS.V$PARAMETER WHERE name LIKE ‘_%’ ESCAPE ”; SQL>spool off SQL>@hidden_parameter.sql
SQL> @/u01/oracle/PROD/12.1.0/cfgtoollogs/PROD/preupgrade/preupgrade_fixups.sql Executing Oracle PRE-Upgrade Fixup Script Auto-Generated by: Oracle Preupgrade Script Version: 19.0.0.0.0 Build: 13 Generated on: 2023-07-17 21:56:05 For Source Database: PROD Source Database Version: 12.1.0.2.0 For Upgrade to Version: 19.0.0.0.0 Preup Preupgrade Action Issue Is Number Preupgrade Check Name Remedied Further DBA Action —— ———————— ———- ——————————–
Further action is optional.
Further action is optional.
Further action is optional.
Further action is optional.
Further action is optional.
Further action is optional.
Further action is optional. The fixup scripts have been run and resolved what they can. However, there are still issues originally identified by the preupgrade that have not been remedied and are still present in the database. Depending on the severity of the specific issue, and the nature of the issue itself, that could mean that your database is not ready for upgrade. To resolve the outstanding issues, start by reviewing the preupgrade_fixups.sql and searching it for the name of the failed CHECK NAME or Preupgrade Action Number listed above. There you will find the original corresponding diagnostic message from the preupgrade which explains in more detail what still needs to be done.
PL/SQL procedure successfully completed. |
Invoke DBUA using the following command. The keep events parameter allows events in the pre-upgraded database to be enabled during the upgrade.
In Oracle Database 19c, the DMSYS schema is no longer used. The Data Mining option is installed in the SYS schema. The Oracle 19c pre-upgrade tool has been extended to include a warning that the DMSYS schema should be dropped. If this warning is reported, it is recommended to drop the schema. Removing the DMSYS schema has no effect on the functioning of Data Mining.
Disregard warnings related to Network ACLs. AutoConfig manages all the Oracle E-Business Suite Network ACLs.
When upgrading all statistics tables, note that Oracle E-Business Suite has only one statistics table (APPLSYS.FND_STATTAB) that needs to be upgraded.
Make sure 12c db entry is present in /etc/oratab. Open GUI and run the below command
Source 19c Environment file
[oracle@test1 ~]$ . ./19c.env
[oracle@test1 ~]$ $ORACLE_HOME/bin/dbua -keepEvents
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
![]() |
The database upgrade has been completed successfully, and the database is ready to use.
SQL> select banner from v$version;
BANNER
——————————————————————————–
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 – Production
Source 19c Environment
[oracle@test1 ~]$ . ./19c.env
[oracle@test1 ~]$ export ORACLE_SID=PROD
SQL> @/u01/oracle/PROD/12.1.0/cfgtoollogs/PROD/preupgrade/postupgrade_fixups.sql
Source 19c Environment
[oracle@test1 ~]$ . ./19c.env
[oracle@test1 ~]$ export ORACLE_SID=PROD
There are few important post-upgrade miscellaneous tasks that need to be performed.
If you previously had the SEC_CASE_SENSITIVE_LOGON initialization parameter set to FALSE, re-enable the parameter.
In case spfile is not there then create spfile and restart database.
SQL> alter system set SEC_CASE_SENSITIVE_LOGON=false;
System altered.
SQL> alter trigger SYSTEM.EBS_LOGON compile;
Trigger altered.
SQL> alter system set compatible=’19.0.0′ scope=spfile;
System altered.
Restart DB
SQL> shu immediate;
Database closed.
Databas edismounted.
ORACLE instance shut down.
SQL> startup
ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance
ORACLE instance started.
Total System Global Area 4294963248 bytes
Fixed Size 8933424 bytes
Variable Size 2583691264 bytes
Database Buffers 1677721600 bytes
Redo Buffers 24616960 bytes
Database mounted.
Database opened.
SQL> show parameter compatible
NAME TYPE VALUE
———————————— ———– ——————————
compatible string 19.0.0
noncdb_compatible boolean FALSE
Source 19c Environment
[oracle@test1 ~]$ . ./19c.env
[oracle@test1 ~]$ export ORACLE_SID=PROD
[oracle@test1 OPatch]$ $ORACLE_HOME/OPatch/datapatch
Source 19c Environment
[oracle@test1 ~]$ . ./19c.env
[oracle@test1 ~]$ export ORACLE_SID=PROD
SQL> @?/rdbms/admin/dbmsxdbschmig.sql
SQL> @?/rdbms/admin/prvtxdbschmig.plb
Source 19c Environment
[oracle@test1 ~]$ . ./19c.env
[oracle@test1 ~]$ export ORACLE_SID=PROD
Copy adgrants.sql from $APPL_TOP/admin to DB tier and run it
[oracle@test1 ~]$ cp /u01/oracle/PROD/fs1/EBSapps/appl/admin/adgrants.sql /u01/oracle/PROD/19.0.0/appsutil
SQL> @/u01/oracle/PROD/19.0.0/appsutil/adgrants.sql apps
Source 19c Environment
[oracle@test1 ~]$ . ./19c.env
[oracle@test1 ~]$ export ORACLE_SID=PROD
Copy $AD_TOP/patch/115/sql/adctxprv.sql from the administration server node to the database server node.
Use SQL*Plus to connect to the database as apps and run the script using the following command:
[oracle@test1 admin]$ cp $AD_TOP/patch/115/sql/adctxprv.sql /u01/oracle/PROD/19.0.0/
$ sqlplus apps/<apps password> @adctxprv.sql <SYSTEM password> CTXSYS
[oracle@test1 ~]$ cd /u01/oracle/PROD/19.0.0/
[oracle@test1 19.0.0]$ sqlplus apps/apps @adctxprv.sql oracle CTXSYS
SQL*Plus: Release 19.0.0.0.0 – Production on Tue Jul 18 01:16:40 2023
Version 19.19.0.0.0
Copyright (c) 1982, 2022, Oracle. All rights reserved.
Last Successful login time: Mon Jul 17 2023 19:03:52 +05:00
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 – Production
Version 19.19.0.0.0
Commit complete.
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 – Production
Version 19.19.0.0.0
Source 19c Environment
[oracle@test1 ~]$ . ./19c.env
[oracle@test1 ~]$ export ORACLE_SID=PROD
Use SQL*Plus to connect to the database as SYSDBA and run the $ORACLE_HOME/rdbms/admin/utlrp.sql script to compile invalid objects.
$ sqlplus “/ as sysdba” @$ORACLE_HOME/rdbms/admin/utlrp.sql
Run the following Query to check the INVALID Objects
SQL> select count(*) from dba_objects where status=’INVALID’;
Source 19c Environment
[oracle@test1 ~]$ . ./19c.env
[oracle@test1 ~]$ export ORACLE_SID=PROD
Use SQL*Plus to connect to the database as SYSDBA and run the following command:
[oracle@test1 ~]$ sqlplus “/ as sysdba”
SQL> grant text datastore access to public;
Grant succeeded.
Source 19c Environment
[oracle@test1 ~]$ . ./19c.env
[oracle@test1 ~]$ export ORACLE_SID=PROD
Copy $APPL_TOP/admin/adstats.sql from the administration server node to the database server node. Note that adstats.sql has to be run in restricted mode.
Use SQL*Plus to connect to the database as SYSDBA and use the following commands to run adstats.sql in restricted mode:
[oracle@test1 19.0.0]$ cp /u01/oracle/PROD/fs1/EBSapps/appl/admin/adstats.sql /u01/oracle/PROD/19.0.0/
[oracle@test1 ~]$ sqlplus / as sysdba
SQL> alter system enable restricted session;
System altered.
SQL> @adstats.sql
Connected.
————————————————–
— adstats.sql started at 2023-07-18 11:48:37 —
Checking for the DB version and collecting statistics …
PL/SQL procedure successfully completed.
————————————————
— adstats.sql ended at 2023-07-18 11:55:38 —
Commit complete.
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 – Production
Version 19.19.0.0.0
[oracle@test1 19.0.0]$ sqlplus / as sysdba
SQL> alter system disable restricted session;
System altered.
SQL> exit
Source 19c Environment
[oracle@test1 ~]$ . ./19c.env
[oracle@test1 ~]$ export ORACLE_SID=PROD
|
a) Create the PDB descriptor
[oracle@test1 ~]$ cd $ORACLE_HOME/appsutil[oracle@test1 appsutil]$ . ./txkSetCfgCDB.env dboraclehome=/u01/oracle/PROD/19.0.0 Oracle Home being passed: /u01/oracle/PROD/19.0.0
oracle@test1 appsutil]$ export ORACLE_SID=PROD
oracle@test1 appsutil]$ cd $ORACLE_HOME/appsutil/bin
oracle@test1 bin]$ perl txkOnPremPrePDBCreationTasks.pl -dboraclehome=/u01/oracle/PROD/19.0.0 -outdir=/u01/oracle/PROD/19.0.0/appsutil/log -appsuser=apps -dbsid=PROD
Enter the APPS Password:
****************************************************************************************
* *
* IMPORTANT NOTE: DO NOT START THE DB TILL THE DATA FILES ARE MIGRATED *
* *
* IF DB IS STARTED, THEN PDB DESCRIPTOR XML GENERATED BECOMES INVALID *
* *
****************************************************************************************
Exiting from the script.
Ended: Tue Jul 18 12:01:42 PKT 2023
b) Update the CDB initialization parameters
On the database server node, copy the <source SID>_initparam.sql and <source SID>_datatop.txt files from the source $ORACLE_HOME/dbs directory to the new$ORACLE_HOME/dbs directory. Then use SQL*Plus to connect to the CDB as SYSDBA, and run the following commands to update the CDB initialization parameters
[oracle@test1 bin]$ cd /u01/oracle/PROD/12.1.0/dbs
[oracle@test1 dbs]$ cp PROD_initparam.sql PROD_datatop.txt /u01/oracle/PROD/19.0.0/dbs/
[oracle@test1 dbs]$ cd $ORACLE_HOME/appsutil
[oracle@test1 appsutil]$ . ./txkSetCfgCDB.env dboraclehome=$ORACLE_HOME
Oracle Home being passed: /u01/oracle/PROD/19.0.0
[oracle@test1 appsutil]$ export ORACLE_SID=prodcdb
[oracle@test1 appsutil]$ sqlplus “/ as sysdba”
SQL*Plus: Release 19.0.0.0.0 – Production on Tue Jul 18 12:07:23 2023
Version 19.19.0.0.0
Copyright (c) 1982, 2022, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup nomount;
ORACLE instance started.
Total System Global Area 2147482336 bytes
Fixed Size 9136864 bytes
Variable Size 570425344 bytes
Database Buffers 1560281088 bytes
Redo Buffers 7639040 bytes
SQL> @$ORACLE_HOME/dbs/PROD_initparam.sql
SQL> alter system set LOCAL_LISTENER=”test1.example.com:1522″ scope=both;
System altered.
SQL> shutdown
ORA-01507: database not mounted
ORACLE instance shut down.
SQL> startup
ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance
ORACLE instance started.
Total System Global Area 4294963736 bytes
Fixed Size 9171480 bytes
Variable Size 2583691264 bytes
Database Buffers 1677721600 bytes
Redo Buffers 24379392 bytes
Database mounted.
Database opened.
SQL> select name,open_mode from v$database;
NAME OPEN_MODE
——— ——————–
PRODCDB READ WRITE
Use the following commands to run the txkChkPDBCompatability.pl script. This checks the PDB for any violations.
[oracle@test1 appsutil]$ cd $ORACLE_HOME/appsutil
[oracle@test1 appsutil]$ . ./txkSetCfgCDB.env dboraclehome=$ORACLE_HOME
Oracle Home being passed: /u01/oracle/PROD/19.0.0
[oracle@test1 appsutil]$ export ORACLE_SID=prodcdb
[oracle@test1 appsutil]$ cd $ORACLE_HOME/appsutil/bin
[oracle@test1 bin]$ perl txkChkPDBCompatability.pl -dboraclehome=$ORACLE_HOME -outdir=$ORACLE_HOME/appsutil/log -cdbsid=prodcdb -pdbsid=PROD -servicetype=onpremise
****************************************************************************************
* *
* IMPORTANT NOTE: RESOLVE ALL VIOLATIONS BEFORE PROCEEDING TO CREATE PDB *
* *
* – All the errors except SQL PATCH ERRORS should be resolved *
* *
* – All the warnings except CHARACTER SET WARNINGS can be ignored *
* *
* – Review and set the INIT PARAMETERs to match the EBS requirements *
* *
****************************************************************************************
Note: Use the same command options for Oracle Cloud Infrastructure Compute environments.
Review all warnings and resolve all errors. Re-run the script to verify all errors have been resolved. Do not run noncdb_to_pdb.sql as that will be run by txkCreatePDB.pl in the next step.
d) Create the PDB
Load the environment variables by running the following commands.
Make sure to extend tablespaces on CDB to have sufficient space.
$ cd $ORACLE_HOME/appsutil
$ . ./txkSetCfgCDB.env dboraclehome=<full path of ORACLE_HOME>
$ cd $ORACLE_HOME/appsutil/bin
$ perl txkCreatePDB.pl -dboraclehome=<ORACLE_HOME> -outdir=<ORACLE_HOME>/appsutil/log
-cdbsid=<CDB SID> -pdbsid=<source SID> -dbuniquename=<CDB SID> -servicetype=onpremise
Note: Use the same command options for Oracle Cloud Infrastructure Compute environments.
The PDB datafile location can be the same as the source datafile location.
[oracle@test1 bin]$ cd $ORACLE_HOME/appsutil
[oracle@test1 appsutil]$ . ./txkSetCfgCDB.env dboraclehome=$ORACLE_HOME
Oracle Home being passed: /u01/oracle/PROD/19.0.0
[oracle@test1 appsutil]$ cd $ORACLE_HOME/appsutil/bin
[oracle@test1 bin]$ perl txkCreatePDB.pl -dboraclehome=$ORACLE_HOME -outdir=$ORACLE_HOME/appsutil/log -cdbsid=prodcdb -pdbsid=PROD -dbuniquename=prodcdb -servicetype=onpremise
============================
Inside promptDataTopDir()…
============================
Number of DATA_TOPs: 1
DATA_TOP_1
===========
Enter the non-CDB data top [/u01/oracle/PROD/data]:
Enter the corresponding PDB data top [/u01/oracle/PROD/data]:
The PDB datafile location can be the same as the source datafile location.
e) Run the post-PDB script
Source 19c Environment
[oracle@test1 ~]$ . ./19c.env
[oracle@test1 ~]$ export ORACLE_SID=PROD
change CDB system password
[oracle@test1 ~]$ sqlplus / as sysdba
SQL> alter user system identified by oracle#123;
User altered.
Use the following commands to run the txkPostPDBCreationTasks.pl script. This updates the PDB configuration.
$ cd $ORACLE_HOME/appsutil
$ . ./txkSetCfgCDB.env dboraclehome=<full path of ORACLE_HOME>
$ perl $ORACLE_HOME/appsutil/bin/txkPostPDBCreationTasks.pl -dboraclehome=<ORACLE_HOME>
-outdir=<ORACLE_HOME>/appsutil/log -cdbsid=<CDB SID> -pdbsid=<PDB SID>
-appsuser=apps -dbport=<CDB TNS port number> -servicetype=onpremise
[oracle@test1 bin]$ cd $ORACLE_HOME/appsutil
[oracle@test1 appsutil]$ . ./txkSetCfgCDB.env dboraclehome=$ORACLE_HOME
Oracle Home being passed: /u01/oracle/PROD/19.0.0
[oracle@test1 appsutil]$ cd $ORACLE_HOME/appsutil/bin
[oracle@test1 appsutil perl $ORACLE_HOME/appsutil/bin/txkPostPDBCreationTasks.pl -dboraclehome=$ORACLE_HOME -outdir=$ORACLE_HOME/appsutil/log -cdbsid=prodcdb -pdbsid=PROD -appsuser=apps -dbport=1522 -servicetype=onpremise
Enter the APPS Password:
Enter the CDB SYSTEM Password:
#####################################################################
# I M P O R T A N T N O T E #
# #
# EBS_SYSTEM credentials are set to same value as that of SYSTEM #
Note: Use the same command options for Oracle Cloud Infrastructure Compute environments.
This step also runs the autoconfig at DB level.
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
———- —————————— ———- ———-
2 PDB$SEED READ ONLY NO
3 PROD READ WRITE NO
f) Change Initialization Parameters
Use the following sections in My Oracle Support Knowledge Document 396009.1, Database Initialization Parameter Settings for Oracle E-Business Suite Release 12, as a guideline in modifying your initialization parameters.
[oracle@test1 appsutil]$ export ORACLE_SID=prodcdb
[oracle@test1 appsutil]$ sqlplus / as sysdba
SQL> alter system set event=’10946 trace name context forever, level 8454144′ scope=spfile;
System altered.
SQL> alter system set sec_case_sensitive_logon=FALSE scope=spfile;
System altered.
Add the CDB entry in tnsnames.ora of Application
<TWO_TASK> =
(DESCRIPTION =
(ADDRESS = (PROTOCOL=tcp)(HOST=<hostname>.<domain>)(PORT=<port number>))
(CONNECT_DATA = (SERVICE_NAME=ebs_<PDB SID>)(INSTANCE_NAME=<CDB SID>))
)
As the user of the applications server node, on both the Patch and Run APPL_TOP, modify the $TNS_ADMIN/tnsnames.ora file to specify the CDB instance name. The following shows the format of the new TNS entry.
[oracle@test1 ~]$ . ./EBSapps.env run
E-Business Suite Environment Information
—————————————-
RUN File System : /u01/oracle/PROD/fs1/EBSapps/appl
PATCH File System : /u01/oracle/PROD/fs2/EBSapps/appl
Non-Editioned File System : /u01/oracle/PROD/fs_ne
DB Host: test1.example.com Service/SID: PROD
Sourcing the RUN File System …
[oracle@test1 ~]$ cd $TNS_ADMIN
[oracle@test1 admin]$ pwd
/u01/oracle/PROD/fs1/inst/apps/PROD_test1/ora/10.1.2/network/admin
[oracle@test1 admin]$ vi tnsnames.ora
prodcdb =
(DESCRIPTION =
(ADDRESS = (PROTOCOL=tcp)(HOST= test1.example.com)(PORT=1522))
(CONNECT_DATA = (SERVICE_NAME=ebs_PROD)(INSTANCE_NAME=prodcdb))
)
[oracle@test1 ~]$ . ./EBSapps.env patch
E-Business Suite Environment Information
—————————————-
RUN File System : /u01/oracle/PROD/fs1/EBSapps/appl
PATCH File System : /u01/oracle/PROD/fs2/EBSapps/appl
Non-Editioned File System : /u01/oracle/PROD/fs_ne
DB Host: test1.example.com Service/SID: PROD
Sourcing the PATCH File System …
[oracle@test1 ~]$ cd $TNS_ADMIN
[oracle@test1 admin]$ vi tnsnames.ora
Update the following values in the context file of every Applications tier server node.
Variable Name Value
s_dbport New database port
s_apps_jdbc_connect_descriptor NULL
s_applptmp Directory (not /usr/tmp) defined in UTL_FILE_DIR
[oracle@test1 admin]$ grep s_dbport $CONTEXT_FILE
<dbport oa_var=”s_dbport” oa_type=”EXT_PORT” base=”1521″ step=”1″ range=”-1″ label=”Database Port”>1521</dbport>
[oracle@test1 admin]$ grep s_apps_jdbc_connect_descriptor $CONTEXT_FILE
<jdbc_url oa_var=”s_apps_jdbc_connect_descriptor”>jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=YES)(FAILOVER=YES)(ADDRESS=(PROTOCOL=tcp)(HOST=test1.example.com)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=PROD)))</jdbc_url>
[oracle@test1 admin]$ grep s_applptmp $CONTEXT_FILE
<APPLPTMP oa_var=”s_applptmp” osd=”UNIX”>/usr/tmp</APPLPTMP>
To identify the allowable directories for s_applptmp use, connect to the Oracle E-Business Suite database instance as the app’s user (on PDB)and run the following query:
[oracle@test1 appsutil]$ sqlplus apps/apps@PROD
SQL> select value from v$parameter where name=’utl_file_dir’;
VALUE
——————————————————————————–
/u01/oracle/PROD/temp/PROD,/u01/oracle/PROD/temp/PROD,/u01/oracle/PROD/19.0.0/ap
psutil/outbound/PROD_test1,/u01/oracle/PROD/temp/PROD
/u01/oracle/PROD/temp/PROD
/u01/oracle/PROD/temp/PROD
/u01/oracle/PROD/19.0.0/appsutil/outbound/PROD_test1
[oracle@test1 admin]$ vi $CONTEXT_FILE
Enter the values of s_applptmp and save
[oracle@test1 admin]$ grep s_applptmp $CONTEXT_FILE
<APPLPTMP oa_var=”s_applptmp” osd=”UNIX”>/u01/oracle/PROD/19.0.0/appsutil/outbound/PROD_test1</APPLPTMP>
Edit the same in Patch file System
[oracle@test1 admin]$ vi $CONTEXT_FILE
Enter the values of s_applptmp and save
[oracle@test1 admin]$ grep s_applptmp $CONTEXT_FILE
<APPLPTMP oa_var=”s_applptmp” osd=”UNIX”>/u01/oracle/PROD/19.0.0/appsutil/outbound/PROD_test1</APPLPTMP>
Now, Run AutoConfig on both ‘PATCH’ and ‘RUN’ APPL_TOPs using the following command.
[oracle@test1 admin]$ $INST_TOP/admin/scripts/adautocfg.sh
[oracle@test1 admin]$ $INST_TOP/admin/scripts/adautocfg.sh
Note: When running AutoConfig on the patch file system APPL_TOP, ignore all errors.
[oracle@test1 ~]$. ./EBSapps.env run
E-Business Suite Environment Information
—————————————-
RUN File System : /u01/oracle/PROD/fs1/EBSapps/appl
PATCH File System : /u01/oracle/PROD/fs2/EBSapps/appl
Non-Editioned File System : /u01/oracle/PROD/fs_ne
DB Host: test1.example.com Service/SID: PROD
Sourcing the RUN File System …
[oracle@test1 ~]$ cd $ADMIN_SCRIPTS_HOME
[oracle@test1 scripts]$ ./adstrtal.sh apps/apps
Thank you all for accompanying us on this journey of upgrading the EBS Apps Database from version12.1.0.2 to 19.19. I sincerely appreciate your time and interest. Please stay tuned for more informative content and updates. We look forward to welcoming you back soon.
If you have not yet explored the blog on Oracle Apps R12.2.12 Installation Steps, we kindly encourage you to follow the provided link.
Oracle Apps R12.2.12 on Oracle Linux OEL 7.9 using Oracle VirtualBox
In this article, I will be discussing the process of upgrading Oracle Database 12.1.0.2 to the latest version, 19.19 (Latest PSU APR-23), while using Oracle EBS Apps R12.2.12. This post follows the previous article on upgrading Oracle EBS Apps from version 12.2.0 to 12.2.12.
If you are new here and interested in installing and upgrading Oracle E-Business Suite R12.2.x, you can refer to the following link for a step-by-step installation guide for Oracle APPS R12.2.12
Throughout this Upgrade Process, I will be following Oracle Standard DOC ID “Oracle E-Business Suite Release 12.2 with Oracle Database 19c (Doc ID 2552181.1)”
[oracle@test1 ~]$ cd /home/apps/stage/stage12212
[oracle@test1 stage12212]$ ls -ltrh hcheck.sql
-rw-r–r–. 1 oracle oinstall 144729 Oct 13 2022 hcheck.sql
SQL> @hcheck.sql
HCheck Version 07MAY18 on 15-JUL-2023 23:19:16
———————————————-
Catalog Version 12.1.0.2.0 (1201000200)
db_name: PROD
Is CDB?: NO
Catalog Fixed
Procedure Name Version Vs Release Timestamp
Result
—————————— … ———- — ———- ————–
——
.- LobNotInObj … 1201000200 <= *All Rel* 07/15 23:19:16 PASS
.- MissingOIDOnObjCol … 1201000200 <= *All Rel* 07/15 23:19:16 PASS
.- SourceNotInObj … 1201000200 <= *All Rel* 07/15 23:19:16 FAIL
HCKE-0003: SOURCE$ for OBJ# not in OBJ$ (Doc ID 1360233.1)
SOURCE$ has 283 rows for 22 OBJ# values not in OBJ$
.- OversizedFiles … 1201000200 <= *All Rel* 07/15 23:19:56 PASS
.- PoorDefaultStorage … 1201000200 <= *All Rel* 07/15 23:19:56 PASS
.- PoorStorage … 1201000200 <= *All Rel* 07/15 23:19:56 PASS
.- TabPartCountMismatch … 1201000200 <= *All Rel* 07/15 23:19:57 PASS
.- OrphanedTabComPart … 1201000200 <= *All Rel* 07/15 23:19:57 PASS
.- MissingSum$ … 1201000200 <= *All Rel* 07/15 23:19:57 PASS
.- MissingDir$ … 1201000200 <= *All Rel* 07/15 23:19:57 PASS
.- DuplicateDataobj … 1201000200 <= *All Rel* 07/15 23:19:57 PASS
.- ObjSynMissing … 1201000200 <= *All Rel* 07/15 23:19:58 PASS
.- ObjSeqMissing … 1201000200 <= *All Rel* 07/15 23:19:58 PASS
.- OrphanedUndo … 1201000200 <= *All Rel* 07/15 23:19:58 PASS
.- OrphanedIndex … 1201000200 <= *All Rel* 07/15 23:19:58 PASS
.- OrphanedIndexPartition … 1201000200 <= *All Rel* 07/15 23:19:58 PASS
.- OrphanedIndexSubPartition … 1201000200 <= *All Rel* 07/15 23:19:58 PASS
.- OrphanedTable … 1201000200 <= *All Rel* 07/15 23:19:58 PASS
.- OrphanedTablePartition … 1201000200 <= *All Rel* 07/15 23:19:58 PASS
.- OrphanedTableSubPartition … 1201000200 <= *All Rel* 07/15 23:19:59 PASS
.- MissingPartCol … 1201000200 <= *All Rel* 07/15 23:19:59 PASS
.- OrphanedSeg$ … 1201000200 <= *All Rel* 07/15 23:19:59 FAIL
HCKE-0023: Orphaned SEG$ Entry (Doc ID 1360934.1)
ORPHAN SEG$: SegType=INDEX TS=381 RFILE/BLOCK=401/177675
ORPHAN SEG$: SegType=INDEX TS=381 RFILE/BLOCK=401/140907
ORPHAN SEG$: SegType=LOB TS=381 RFILE/BLOCK=401/134987
ORPHAN SEG$: SegType=LOB TS=381 RFILE/BLOCK=401/177659
ORPHAN SEG$: SegType=TYPE2 UNDO TS=368 RFILE/BLOCK=379/33
.- OrphanedIndPartObj# … 1201000200 <= *All Rel* 07/15 23:19:59 PASS
.- DuplicateBlockUse … 1201000200 <= *All Rel* 07/15 23:19:59 PASS
.- FetUet … 1201000200 <= *All Rel* 07/15 23:19:59 PASS
.- Uet0Check … 1201000200 <= *All Rel* 07/15 23:19:59 PASS
.- SeglessUET … 1201000200 <= *All Rel* 07/15 23:19:59 PASS
.- BadInd$ … 1201000200 <= *All Rel* 07/15 23:20:02 PASS
.- BadTab$ … 1201000200 <= *All Rel* 07/15 23:20:02 PASS
.- BadIcolDepCnt … 1201000200 <= *All Rel* 07/15 23:20:02 PASS
.- ObjIndDobj … 1201000200 <= *All Rel* 07/15 23:20:02 PASS
.- TrgAfterUpgrade … 1201000200 <= *All Rel* 07/15 23:20:02 PASS
.- ObjType0 … 1201000200 <= *All Rel* 07/15 23:20:02 PASS
.- BadOwner … 1201000200 <= *All Rel* 07/15 23:20:02 PASS
.- StmtAuditOnCommit … 1201000200 <= *All Rel* 07/15 23:20:02 WARN
HCKW-0013: option# in STMT_AUDIT_OPTION_MAP(ON COMMIT REFRESH) (Doc ID
1361021.1)
— Please run the following:
SQL> update STMT_AUDIT_OPTION_MAP set option#=234
where name =’ON COMMIT REFRESH’;
SQL> commit;
.- BadPublicObjects … 1201000200 <= *All Rel* 07/15 23:20:02 PASS
.- BadSegFreelist … 1201000200 <= *All Rel* 07/15 23:20:02 PASS
.- BadDepends … 1201000200 <= *All Rel* 07/15 23:20:02 PASS
.- CheckDual … 1201000200 <= *All Rel* 07/15 23:20:04 PASS
.- ObjectNames … 1201000200 <= *All Rel* 07/15 23:20:04 PASS
.- BadCboHiLo … 1201000200 <= *All Rel* 07/15 23:20:04 PASS
.- ChkIotTs … 1201000200 <= *All Rel* 07/15 23:20:04 PASS
.- NoSegmentIndex … 1201000200 <= *All Rel* 07/15 23:20:04 PASS
.- BadNextObject … 1201000200 <= *All Rel* 07/15 23:20:04 PASS
.- DroppedROTS … 1201000200 <= *All Rel* 07/15 23:20:04 PASS
.- FilBlkZero … 1201000200 <= *All Rel* 07/15 23:20:04 PASS
.- DbmsSchemaCopy … 1201000200 <= *All Rel* 07/15 23:20:04 PASS
.- OrphanedIdnseqObj … 1201000200 > 1201000000 07/15 23:20:04 PASS
.- OrphanedIdnseqSeq … 1201000200 > 1201000000 07/15 23:20:04 PASS
.- OrphanedObjError … 1201000200 > 1102000000 07/15 23:20:04 PASS
.- ObjNotLob … 1201000200 <= *All Rel* 07/15 23:20:05 PASS
.- MaxControlfSeq … 1201000200 <= *All Rel* 07/15 23:20:05 PASS
.- SegNotInDeferredStg … 1201000200 > 1102000000 07/15 23:20:05 PASS
.- SystemNotRfile1 … 1201000200 > 902000000 07/15 23:20:05 PASS
.- DictOwnNonDefaultSYSTEM … 1201000200 <= *All Rel* 07/15 23:20:05 PASS
.- OrphanTrigger … 1201000200 <= *All Rel* 07/15 23:20:05 PASS
.- ObjNotTrigger … 1201000200 <= *All Rel* 07/15 23:20:05 PASS
—————————————
15-JUL-2023 23:20:05 Elapsed: 49 secs
—————————————
Found 6 potential problem(s) and 1 warning(s)
Contact Oracle Support with the output and trace file
to check if the above needs attention or not
PL/SQL procedure successfully completed.
Statement processed.
Complete output is in trace file:
/u01/oracle/PROD/12.1.0/admin/PROD_test1/diag/
rdbms/prod/PROD/trace/PROD_ora_3726_HCHECK.trc
Run the Fowllowing Statement in sqlplus prompt.
SQL> update STMT_AUDIT_OPTION_MAP set option#=234 where name =’ON COMMIT REFRESH’;
1 row updated.
SQL> commit;
Commit complete.
|
Apply the necessary patches to EBS as per the requirements, considering the version and the AD/TXK delta versions.
The current AD and TXK versions in my environment are already at Delta 14 as shown below
SQL> col ABBREVIATION for a10 ABBREVIATION NAME CODELEVEL |
As per our Application Version, The following software component versions must exist in our environment.
Patch 25452805
For my specific environment, the patches mentioned in the above list have already been applied. If these patches have not been applied in your environment, it is necessary to apply them.
sql> SELECT bug_number, creation_date BUG_NUMBER CREATION_ 9 rows selected. |
Note: Since we have applied all the patches except (26521736, 28732161) for the ones listed below, we will proceed to download these two patches from Oracle Support Metalink and transfer them to the Linux environment.
[oracle@test1 ~]$ cd /u01/oracle/PROD/19.0.0/media/interoperability [oracle@test1 interoperability]$ unzip p26521736_12.2.0_R12_LINUX.zip Now Applying the patches through ADOP in one command after sourcing the application run environment [oracle@test1 ~]$ . ./EBSapps.env E-Business Suite Environment Information DB Host: test1.example.com Service/SID: PROD E-Business Suite Environment Setting Please choose the environment file you wish to source [R/P]:R Sourcing the RUN File System … [oracle@test1 ~]$ cd /u01/oracle/PROD/19.0.0/media/interoperability [oracle@test1 ~]$ adop phase=prepare,apply,finalize,cutover,cleanup mtrestart=no patches= 26521736,28732161 Enter the APPS password: Validating credentials. Initializing. Validating system setup. ADOP (C.Delta.14) |
Step 1. Make sure the below parameter is false in DB.
SQL> show parameter SEC_CASE_SENSITIVE_LOGON
NAME TYPE VALUE
———————————— ———– ——————————
sec_case_sensitive_logon boolean FALSE
Step 2. Creating the initialization parameter files
Run the following commands to create the $ORACLE_HOME/dbs/<ORACLE_SID>_initparam.sql and $ORACLE_HOME/dbs/<ORACLE_SID>_datatop.txt files.
[oracle@test1 ~]$ cd $ORACLE_HOME/appsutil Oracle Home being passed: /u01/oracle/PROD/12.1.0 Once completed you can check the below highlighted are created in cd $ORACLE_HOME/dbs [oracle@test1 bin]$ cd $ORACLE_HOME/dbs |
I have downloaded the Software of 19.3 From Download Link 19c and moved it to /u01/oracle/PROD/19.0.0 directory.
[oracle@test1 ~]$ cd /u01/oracle/PROD/19.0.0
[oracle@test1 19.0.0]$ unzip -oq LINUX.X64_193000_db_home.zip
Now after unzipping the 19c software files we will launch the installer to install the 19c software
[oracle@test1 19.0.0]$ ./runInstaller
|
![]() |
|
![]() |
|
![]() |
Click Next |
![]() |
|
![]() |
|
![]() |
|
![]() |
Installation Process Starts |
![]() |
Click Yes |
![]() |
Click Close |
![]() |
Step 1. Creating 19c ENV File
After successfully installing the 19c Oracle Home, you can create a straightforward environment by configuring the following parameters. In this case, “prod” represents the CDB that will be created.
Ensure to export these environment variables for easy configuration and access in the environment. |
Open New Terminal and Create 19c.env file with the following parameters given below and save the file as shown in the Picture below
[oracle@test1 ~]$ vi 19c.env
export ORACLE_HOME=/u01/oracle/PROD/19.0.0
export ORACLE_SID=PROD
export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$ORACLE_HOME/perl/bin
export ORACLE_BASE=/u01/oracle/PROD
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
export PERL5LIB=$ORACLE_HOME/perl/lib/5.28.1:$ORACLE_HOME/perl/lib/site_perl/5.28.1
Step 2. Applying the Latest DB PSU 19.19
Here we are going to apply the Latest Database 19c Patch Set (Release Update 19.19.0.0.230418) Certified with Oracle E-Business Suite As per Oracle (Doc ID 1594274.1) (Oracle E-Business Suite Release 12.2: Consolidated List of Oracle Database Patches and Bug Fixes)
I have downloaded the patches mentioned in Pictures below and moved them to the Linux Machine on /u01/oracle/PROD/19.0.0/media directory
[oracle@test1 ~]$ cd /u01/oracle/PROD/19.0.0/media
[oracle@test1 media]$ ls -ltrh p3504*
-rwxrwxr-x. 1 oracle oinstall 4.7M Jul 16 15:40 p35047599_1919000DBRU_Linux-x86-64.zip
-rwxrwxr-x. 1 oracle oinstall 1.7G Jul 16 15:41 p35042068_190000_Linux-x86-64.zip
Unzip the Patches
[oracle@test1 media]$ unzip p35047599_1919000DBRU_Linux-x86-64.zip
[oracle@test1 media]$ unzip p35042068_190000_Linux-x86-64.zip
Also, download the latest Opatch from the link given in README.html of p35042068_190000_Linux-x86-64.zip patch files when unzipped
[oracle@test1 media]$ ls -ltrh p6880880_122010_Linux-x86-64.zip
-rwxrwxr-x. 1 oracle oinstall 120M Jul 16 15:53 p6880880_122010_Linux-x86-64.zip
[oracle@test1 media]$ unzip p6880880_122010_Linux-x86-64.zip
Create a Backup of the OLD Opatch Directory
[oracle@test1 ~]$ cd /u01/oracle/PROD/19.0.0
[oracle@test1 19.0.0]$ mv OPatch/ OPatch_BKP/
Now copy the new Opatch Directory
[oracle@test1 19.0.0]$ mv /u01/oracle/PROD/19.0.0/media/OPatch .
Now Start Applying the Database Patches Download and Unzipped
Patch 1: Patch 35042068: Database Release Update Patch 19.19.0.0.230418 (Apr 2023).
[oracle@test1 ~]$ . ./19c.env [oracle@test1 ~]$ cd /u01/oracle/PROD/19.0.0/media/35042068 [oracle@test1 35042068]$ opatch prereq CheckConflictAgainstOHWithDetail -ph ./ Oracle Interim Patch Installer version 12.2.0.1.37 Copyright (c) 2023, Oracle Corporation. All rights reserved. PREREQ session Oracle Home : /u01/oracle/PROD/19.0.0 Central Inventory : /u01/oracle/oraInventory from : /u01/oracle/PROD/19.0.0/oraInst.loc OPatch version : 12.2.0.1.37 OUI version : 12.2.0.7.0 Log file location : /u01/oracle/PROD/19.0.0/cfgtoollogs/opatch/opatch2023-07-16_16-20-19PM_1.log Invoking prereq “checkconflictagainstohwithdetail” Prereq “checkConflictAgainstOHWithDetail” passed. OPatch succeeded.
[oracle@test1 35042068]$ opatch apply Oracle Interim Patch Installer version 12.2.0.1.37 Copyright (c) 2023, Oracle Corporation. All rights reserved. Oracle Home : /u01/oracle/PROD/19.0.0 Central Inventory : /u01/oracle/oraInventory from : /u01/oracle/PROD/19.0.0/oraInst.loc OPatch version : 12.2.0.1.37 OUI version : 12.2.0.7.0 Log file location : /u01/oracle/PROD/19.0.0/cfgtoollogs/opatch/opatch2023-07-16_16-21-39PM_1.log Verifying environment and performing prerequisite checks… |
Patch 2: Patch 35050341: OJVM RELEASE UPDATE 19.19.0.0.0
[oracle@test1 media]$ cd 35050341 [oracle@test1 35050341]$ opatch prereq CheckConflictAgainstOHWithDetail -ph ./ Oracle Interim Patch Installer version 12.2.0.1.37 Copyright (c) 2023, Oracle Corporation. All rights reserved. PREREQ session Oracle Home : /u01/oracle/PROD/19.0.0 Central Inventory : /u01/oracle/oraInventory from : /u01/oracle/PROD/19.0.0/oraInst.loc OPatch version : 12.2.0.1.37 OUI version : 12.2.0.7.0 Log file location : /u01/oracle/PROD/19.0.0/cfgtoollogs/opatch/opatch2023-07-16_17-09-58PM_1.log Invoking prereq “checkconflictagainstohwithdetail” Prereq “checkConflictAgainstOHWithDetail” passed. OPatch succeeded.
[oracle@test1 35050341]$ opatch apply Oracle Interim Patch Installer version 12.2.0.1.37 Copyright (c) 2023, Oracle Corporation. All rights reserved. Oracle Home : /u01/oracle/PROD/19.0.0 Central Inventory : /u01/oracle/oraInventory from : /u01/oracle/PROD/19.0.0/oraInst.loc OPatch version : 12.2.0.1.37 OUI version : 12.2.0.7.0 Log file location : /u01/oracle/PROD/19.0.0/cfgtoollogs/opatch/opatch2023-07-16_17-10-45PM_1.log Verifying environment and performing prerequisite checks…
|
Patch 1: Patch 35406065: RESTORE DATABASE PREVIEW FAILING WITH RMAN-00600
[oracle@test1 ~]$ cd /u01/oracle/PROD/19.0.0/media/ [oracle@test1 media]$ cd 35406065 [oracle@test1 35406065]$ opatch prereq CheckConflictAgainstOHWithDetail -ph ./ Oracle Interim Patch Installer version 12.2.0.1.37 Copyright (c) 2023, Oracle Corporation. All rights reserved. PREREQ session Oracle Home : /u01/oracle/PROD/19.0.0 Central Inventory : /u01/oracle/oraInventory from : /u01/oracle/PROD/19.0.0/oraInst.loc OPatch version : 12.2.0.1.37 OUI version : 12.2.0.7.0 Log file location : /u01/oracle/PROD/19.0.0/cfgtoollogs/opatch/opatch2023-07-16_18-44-53PM_1.log Invoking prereq “checkconflictagainstohwithdetail” Prereq “checkConflictAgainstOHWithDetail” passed. OPatch succeeded.
[oracle@test1 35406065]$ opatch apply Oracle Interim Patch Installer version 12.2.0.1.37 Copyright (c) 2023, Oracle Corporation. All rights reserved. Oracle Home : /u01/oracle/PROD/19.0.0 Central Inventory : /u01/oracle/oraInventory from : /u01/oracle/PROD/19.0.0/oraInst.loc OPatch version : 12.2.0.1.37 OUI version : 12.2.0.7.0 Log file location : /u01/oracle/PROD/19.0.0/cfgtoollogs/opatch/opatch2023-07-16_18-45-17PM_1.log Verifying environment and performing prerequisite checks… OPatch continues with these patches: 35406065 |
Step 3. Create the nls/data/9idata directory
On the database server node, as the owner of the Oracle RDBMS file system and database instance, run the following command to create the $ORACLE_HOME/nls/data/9idata directory.
[oracle@test1 ~]$ . ./19c.env
[oracle@test1 ~]$ unset PERL5LIB
[oracle@test1 ~]$ perl $ORACLE_HOME/nls/data/old/cr9idata.pl
Creating directory /u01/oracle/PROD/19.0.0/nls/data/9idata …
Copying files to /u01/oracle/PROD/19.0.0/nls/data/9idata…
Copy finished.
Please reset environment variable ORA_NLS10 to /u01/oracle/PROD/19.0.0/nls/data/9idata!
After creating the directory, make sure that the ORA_NLS10 environment variable is set to the full path of the 9idata directory whenever you enable the 19c Oracle home. Add export ORA_NLS10=/u01/oracle/PROD/19.0.0/nls/data/9idata in 19c environment file
[oracle@test1 ~]$ vi 19c.env
[oracle@test1 ~]$ cat 19c.env
export ORACLE_HOME=/u01/oracle/PROD/19.0.0export ORACLE_SID=PROD
export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$ORACLE_HOME/perl/bin
export ORACLE_BASE=/u01/oracle/PROD
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
export PERL5LIB=$ORACLE_HOME/perl/lib/5.28.1:$ORACLE_HOME/perl/lib/site_perl/5.28.1
export ORA_NLS10=/u01/oracle/PROD/19.0.0/nls/data/9idata
Step 4. Create appsutil.zip and copy it to the database tier
On Application Tier source run file system environment
[oracle@test1 ~]$ . ./EBSapps.env run
E-Business Suite Environment Information
—————————————-
RUN File System : /u01/oracle/PROD/fs2/EBSapps/appl
PATCH File System : /u01/oracle/PROD/fs1/EBSapps/appl
Non-Editioned File System : /u01/oracle/PROD/fs_ne
DB Host: test1.example.com Service/SID: PROD
Sourcing the RUN File System …
Run the below-given command to create appsutil.zip
[oracle@test1 ~]$ perl $AD_TOP/bin/admkappsutil.pl
Starting the generation of appsutil.zip
Log file located at /u01/oracle/PROD/fs2/inst/apps/PROD_test1/admin/log/MakeAppsUtil_07161853.log
output located at /u01/oracle/PROD/fs2/inst/apps/PROD_test1/admin/out/appsutil.zip
MakeAppsUtil completed successfully.
Copy appsutil.zip file to 19c Oracle Home and unzip
[oracle@test1 ~]$ cp /u01/oracle/PROD/fs2/inst/apps/PROD_test1/admin/out/appsutil.zip /u01/oracle/PROD/19.0.0/
[oracle@test1 ~]$ cd $ORACLE_HOME
[oracle@test1 19.0.0]$ unzip -o appsutil.zip
Step 5. Install JRE 8
To install JRE 8 on the appsutil directory, copy the $ORACLE_HOME/jdk/jre directory to $ORACLE_HOME/appsutil/jre. Run the following commands:
[oracle@test1 19.0.0]$ cd $ORACLE_HOME/appsutil
[oracle@test1 appsutil]$ cp -r $ORACLE_HOME/jdk/jre .
[oracle@test1 appsutil]$ cp $ORACLE_HOME/jlib/orai18n.jar $ORACLE_HOME/appsutil/jre/lib/ext
Once all the prereqs steps are completed as discussed in an earlier post we are ready to do the installation of Apps12.2.0
In Case You are here for the first time, Kindly go through the Following Link given below before Proceeding with the Installation Of Oracle Apps 12.2.0
[oracle@test1 rapidwiz]$ cd /home/apps/stage/startCD/Disk1/rapidwiz [oracle@test1 rapidwiz]$ export DISPLAY=192.168.1.147:0.0 |
Note: Before Running rapidwiz, Make sure display is set properly by running below command.
Note: The IP provided above is of your local machine from where the Rapidwiz is being executed not Virtual Machine
[oracle@test1 rapidwiz]$ cd /home/apps/stage/startCD/Disk1/rapidwiz [oracle@test1 rapidwiz]$ export DISPLAY=192.168.1.147:0.0 Note: the ip is of your local machine not Virtual Machine [oracle@test1 rapidwiz]$ ./rapidwiz Click Next |
![]() |
Click Next | ![]() |
Click Next |
![]() |
Click Next | ![]() |
Click Next | ![]() |
Enter the Following Details Highlighted as per the environment and then Click Next
|
![]() |
Click Next | ![]() |
Click Next | ![]() |
Click Next | ![]() |
Click Next | ![]() |
Enter the Following Details Highlighted as per the environment and then Click Next | ![]() |
Enter the Following Details Highlighted as per the environment and then Click Next | ![]() |
Click Next | ![]() |
It will Perform all the Pre-RequisiteTests for the Smooth Installation of Oracle APPS | ![]() |
Make Sure all The Pre-Requisite Test Pass Successfully with Green Tick as Shown in the Picture. Now Click Next |
![]() |
Click Next | ![]() |
Click Yes to Start the Installation Process | ![]() |
The installer will initiate and will be closely monitored for any potential issues throughout the installation process. It is important to note that the installation is expected to take approximately 10 hours to complete.
Upon completion of the installation, a post-verification procedure will be performed to ensure the successful execution of all post-installation tasks. This verification step is essential in confirming that all necessary tasks have been completed without any errors or issues. |
![]() |
Click Next | ![]() |
Click Finish | ![]() |
The Installation of Oracle Apps R12.2.0 has been Completed successfully. Now we can proceed for the
Oracle EBS Apps Upgrade from 12.2.0 to 12.2.12
All Rights Reserved