Complete Guide: Upgrading to Oracle Database 19c for E-Business Suite 12.1.3
Overview
This comprehensive guide documents the step-by-step process of upgrading an Oracle E-Business Suite (EBS) environment to Oracle Database 19c. The upgrade involves several critical phases including pre-upgrade checks, patch application, and preparation for the new database version.
1. Pre-Upgrade Verification and Preparation
1.1 Database Status Check
First, verify your current database is in READ WRITE mode:
SYS@FBS > select name, open_mode from v$database; NAME OPEN_MODE --------- -------------------- FBS READ WRITE
1.2 Tablespace Management
Ensure sufficient tablespace space to avoid issues during the upgrade:
Check Data Files:
select file_id, file_name, autoextensible from dba_data_files;
Check Temporary Files:
select file_id, file_name, autoextensible from dba_temp_files;
Enable Autoextend for Data Files:
select 'alter database datafile ' || file_id || ' autoextend on;' from dba_data_files;
Enable Autoextend for Temporary Files:
select 'alter database tempfile ' || file_id || ' autoextend on;' from dba_temp_files;
Note: If your custom patch location is
/labsoft/19cDB_Upgrade_EBS, ensure all patches are stored and unzipped in this directory.
1.3 Data Dictionary Health Check (hcheck.sql)
Run Oracle's hcheck.sql script to identify known data dictionary problems. This script is available in Oracle Document 136697.1.
Execute as SYS schema:
[oracle@fbstest 19cDB_Upgrade_EBS]$ sqlplus '/as sysdba' SQL*Plus: Release 12.1.0.2.0 Production on Sat Mar 12 14:07:11 2022 Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production With the Partitioning, Automatic Storage Management, OLAP, Advanced Analytics and Real Application Testing options SYS@FBS > spool hcheck_output.log SYS@FBS > @hcheck.sql PL/SQL procedure successfully completed. Complete output is in trace file: /u01/app/FBS/db/tech_st/12.1.0/admin/FBS_fbstest/diag/rdbms/fuat/FBS/trace/FBS_ora_4726_HCHECK.trc
Interpreting Health Check Results
| Status | Description |
|---|---|
| CRITICAL | Highest risk - requires urgent fix |
| FAIL | Requires resolution with priority |
| WARN | Good to resolve |
| PASS | No problem identified |
Example Warning and Resolution
In this execution, one warning was found:
StmtAuditOnCommit ... 1201000200 <= *All Rel* 04/10 14:16:09 WARN HCKW-0013: option# in STMT_AUDIT_OPTION_MAP(ON COMMIT REFRESH) (Doc ID 1361021.1)
Fix the issue:
SYS@FBS > update STMT_AUDIT_OPTION_MAP set option#=234 where name='ON COMMIT REFRESH'; 1 row updated. SYS@FBS > commit; Commit complete.
Re-run the script to ensure all issues are resolved.
2. Apply Required EBS Patches
2.1 Verify Current AD/TXK Versions
Check your current AD (Applications DBA) and TXK (Oracle Applications Technology Stack) versions:
col ABBREVIATION for a10 set lines 1000 col NAME for a50 col CODELEVEL for a20 SELECT ABBREVIATION, NAME, codelevel FROM apps.AD_TRACKABLE_ENTITIES WHERE abbreviation in ('txk', 'ad'); ABBREVIATI NAME CODELEVEL ---------- -------------------------------------------------- -------------------- ad Applications DBA C.12 txk Oracle Applications Technology Stack C.12
Note: This environment is already on Delta 12 for both AD and TXK.
2.2 Required Patch List
Based on Oracle documentation, apply the following patches:
| Patch Number | Description |
|---|---|
| 25452805 | Required patch |
| 26052406 | Required patch |
| 30433124 | Required patch |
| 33346385 | Required patch |
| 26521736 | 19c interoperability patch for Release 12.2 |
| 31088182 | Required patch |
| 31349591 | Required patch |
| 31800803 | Required patch |
| 28732161 | Apply on Release 12.2.6 or later versions |
Always check the latest Oracle documentation for the most current patch list.
2.3 Verify Applied Patches
Check which patches are already installed in your environment:
SELECT bug_number, creation_date FROM ad_bugs WHERE bug_number IN (25452805, 26052406, 30433124, 33346385, 31088182, 26521736, 31349591, 31800803, 28732161);
Sample Output:
BUG_NUMBER CREATION_DATE ------------------------------ ------------------ 31800803 15-DEC-24 33346385 15-DEC-24 31349591 15-DEC-24 25452805 15-DEC-24 31088182 15-DEC-24 30433124 15-DEC-24 26052406 15-DEC-24
2.4 Apply Patches Using ADOP
Source the EBS environment:
[applmgr@fbstest ~]$ . EBSapps.env run E-Business Suite Environment Information ---------------------------------------- RUN File System : /u01/app/FBS/fs2/EBSapps/appl PATCH File System : /u01/app/FBS/fs1/EBSapps/appl Non-Editioned File System : /u01/app/FBS/fs_ne DB Host: fbstest.finsys.co.ke Service/SID: FBS Sourcing the RUN File System ...
Execute the ADOP command:
adop phase=prepare,apply,finalize,cutover,cleanup mtrestart=no \ patchtop=/u01/app/FBS/fs_ne/EBSapps/patch patches=26052406,28732161
⚠️ Important: Copy the command into a text editor and ensure it's on a single line before executing.
Sample Execution Output:
Enter the APPS password:
Enter the EBS_SYSTEM password:
Enter the WLSADMIN password:
Validating credentials.
Warning: WebLogic Admin Server is not running.
Trying to start Admin Server.
===========================================================================
ADOP (C.Delta.16)
Session ID: 13
Node: fbsebs
Phase: prepare,apply,finalize,cutover,cleanup
Log: /u01/app/FBS/fs_ne/EBSapps/log/adop/13/20241220_085840/adop.log
===========================================================================
Applying patch 26052406.
[WARNING] Skipping patch 26052406 as it has already been applied.
Applying patch 28732161.
[WARNING] Skipping patch 28732161 as it has already been applied.Successful completion:
The apply phase completed successfully. The finalize phase completed successfully. The cutover phase completed successfully. The cleanup phase completed successfully. adop exiting with status = 0 (Success)
2.5 Post-Patch Steps (Patch 31800803)
On Application RUN File System:
Run AutoConfig:
[applmgr@fbsebs ~]$ . /u01/app/FBS/EBSapps.env run [applmgr@fbsebs ~]$ adautocfg.sh Enter the APPS user password: AutoConfig is configuring the Applications environment... AutoConfig completed successfully.
Generate appsutil.zip:
[applmgr@fbsebs ~]$ $AD_TOP/bin/admkappsutil.pl Starting the generation of appsutil.zip Log file located at /u01/app/FBS/fs2/inst/apps/FBS_fbsebs/admin/log/MakeAppsUtil_12200927.log output located at /u01/app/FBS/fs2/inst/apps/FBS_fbsebs/admin/out/appsutil.zip MakeAppsUtil completed successfully.
3. Database Tier Preparation for 19c
3.1 Copy appsutil.zip to Database Tier
As the ORACLE user:
[oracle@fbsebs 12.1.0]$ scp -r /u01/app/FBS/fs2/inst/apps/FBS_fbsebs/admin/out/appsutil.zip . [oracle@fbsebs 12.1.0]$ . FBS_fbsebs.env [oracle@fbsebs 12.1.0]$ unzip -o appsutil.zip
3.2 Run Database Tier AutoConfig
Navigate to the appsutil scripts directory and run AutoConfig:
[oracle@fbsebs FBS_fbsebs]$ pwd /u01/app/FBS/db/tech_st/12.1.0/appsutil/scripts/FBS_fbsebs [oracle@fbsebs FBS_fbsebs]$ ./adautocfg.sh Enter the APPS user password: AutoConfig is configuring the Database environment... AutoConfig completed successfully.
✅ Ensure AutoConfig completes successfully.
3.3 Verify Security Parameter
Check that SEC_CASE_SENSITIVE_LOGON is set to FALSE:
SQL> show parameter SEC_CASE_SENSITIVE_LOGON; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ sec_case_sensitive_logon boolean FALSE
3.4 Create Initialization Parameter Setup Files
Create the following files:
$ORACLE_HOME/dbs/<ORACLE_SID>_initparam.sql$ORACLE_HOME/dbs/<ORACLE_SID>_datatop.txt
Commands to generate them:
$ cd $ORACLE_HOME/appsutil $ . ./txkSetCfgCDB.env dboraclehome=<full path of ORACLE_HOME> $ export ORACLE_SID=<ORACLE_SID> $ cd $ORACLE_HOME/appsutil/bin $ perl txkOnPremPrePDBCreationTasks.pl -dboraclehome=<ORACLE_HOME> \ -outdir=<ORACLE_HOME>/appsutil/log -appsuser=<apps user> \ -dbsid=<ORACLE_SID> -skipdbshutdown=yes
Example Execution:
[oracle@fbsebs FBS_fbsebs]$ echo $ORACLE_HOME /u01/app/FBS/db/tech_st/12.1.0 [oracle@fbsebs FBS_fbsebs]$ cd $ORACLE_HOME/appsutil [oracle@fbsebs appsutil]$ . ./txkSetCfgCDB.env dboraclehome=$ORACLE_HOME [oracle@fbsebs appsutil]$ export ORACLE_SID=FBS [oracle@fbsebs appsutil]$ cd $ORACLE_HOME/appsutil/bin [oracle@fbsebs bin]$ perl txkOnPremPrePDBCreationTasks.pl -dboraclehome=$ORACLE_HOME \ -outdir=$ORACLE_HOME/appsutil/log -appsuser=apps -dbsid=FBS -skipdbshutdown=yes Enter the APPS Password:
Successful output:
PDB Descriptor XML /u01/app/FBS/db/tech_st/12.1.0/dbs/FBS_PDBDesc.xml created successfully.
Verify created files:
[oracle@fbsebs dbs]$ ls -lst total 96 32 -rw-r--r-- 1 oracle oinstall 31475 Dec 20 09:38 FBS_PDBDesc.xml 4 -rw-r--r-- 1 oracle oinstall 426 Dec 20 09:38 FBS_datatop.txt 4 -rw-r--r-- 1 oracle oinstall 2925 Dec 20 09:38 FBS_initparam.sql
4. Install Oracle Database 19c Software
4.1 Create Directory and Unzip Software
[oracle@fbsebs 19c]$ mkdir -p /u01/app/FBS/db/tech_st/19c [oracle@fbsebs 19c]$ unzip -d /u01/app/FBS/db/tech_st/19c LINUX.X64_193000_db_home.zip
4.2 Set Environment and Run Installer
[oracle@fbsebs 19c]$ export _JAVA_OPTIONS='-Dsun.java2d.xrender=false' [oracle@fbsebs 19c]$ export CV_ASSUME_DISTID=OEL7.9 [oracle@fbsebs 19c]$ ./runInstaller
1. Creating the 19c Environment File
After installing the 19c Oracle Home, create an environment file to simplify configuration management. This file sets all necessary environment variables for your 19c database instance.
Environment File Content
Create a file named 19cdb.env with the following content:
export ORACLE_HOME=/u01/app/FBS/db/tech_st/19c export ORACLE_SID=fbscdb export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$ORACLE_HOME/perl/bin export ORACLE_BASE=/u01/app/FBS/db export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib export PERL5LIB=$ORACLE_HOME/perl/lib/5.38.2:$ORACLE_HOME/perl/lib/site_perl/5.38.2 export ORA_NLS10=/u01/app/FBS/db/tech_st/19c/nls/data/9idata
Environment Variable Breakdown
| Variable | Purpose | Value |
|---|---|---|
| ORACLE_HOME | Oracle software installation directory | /u01/app/FBS/db/tech_st/19c |
| ORACLE_SID | Database instance name | fbscdb |
| PATH | Executable search path | Includes $ORACLE_HOME/bin, OPatch, and Perl binaries |
| ORACLE_BASE | Base directory for Oracle files | /u01/app/FBS/db |
| LD_LIBRARY_PATH | Shared library search path | Includes $ORACLE_HOME/lib |
| PERL5LIB | Perl library directories | Custom Perl libraries for 19c |
| ORA_NLS10 | NLS data directory path | $ORACLE_HOME/nls/data/9idata |
2. Applying Database Patches
Patches are essential to maintain database stability and security. This section covers applying the latest database patches to upgrade from version 19.3 to 19.27.
Required Patches
| Patch ID | Description |
|---|---|
| 37642901 | Database Release Update 19.27.0.0.0 |
| 37499406 | OJVM Release Update 19.27.0.0.0 |
| 31424070 | Additional required patch |
Pre-Application Steps
Source the environment file:
[oracle@fbsebs 19c]$ . 19cdb.env
Verify current version:
[oracle@fbsebs 19c]$ sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on Fri Dec 20 09:44:00 2024 Version 19.24.0.0.0
Update OPatch utility (if required):
[oracle@fbsebs dba]$ cp p6880880_190000_Linux-x86-64.zip $ORACLE_HOME [oracle@fbsebs dba]$ cd $ORACLE_HOME/ [oracle@fbsebs 19c]$ mv OPatch OPatch_old [oracle@fbsebs 19c]$ unzip p6880880_190000_Linux-x86-64.zip
Patch Application Process
Apply OJVM Release Update:
cd 37499406 opatch apply
Apply Database Release Update:
cd 37642901 opatch apply
Post-Patch SQL Application
Run datapatch to apply SQL patches to the database:
[oracle@ebstest OPatch]$ ./datapatch
Sample Output (Verification):
SQL Patching tool version 19.28.0.0.0 Production on Wed Sep 17 10:28:46 2025
Current state of release update SQL patches:
Binary registry:
19.28.0.0.0 Release_Update 250705030417: Installed
Installing patches...
Patch installation complete. Total patches installed: 9
SQL Patching tool complete on Wed Sep 17 10:55:18 20253. Setting Up NLS Data Directory
Create the 9idata directory for Oracle National Language Support (NLS) data.
Steps to Create 9idata Directory
Source the 19c environment:
[oracle@fbsebs dba]$ . 19cdb.env
Navigate to Oracle Home and create NLS directory:
[oracle@fbsebs dba]$ cd $ORACLE_HOME [oracle@fbsebs 19c]$ unset PERL5LIB [oracle@fbsebs 19c]$ perl $ORACLE_HOME/nls/data/old/cr9idata.pl
Expected Output:
Directory /u01/app/FBS/db/tech_st/19c/nls/data/9idata already exist. Overwriting... Copying files to /u01/app/FBS/db/tech_st/19c/nls/data/9idata... Copy finished. Please reset environment variable ORA_NLS10 to /u01/app/FBS/db/tech_st/19c/nls/data/9idata!
Verify environment file includes ORA_NLS10:
[oracle@fbsebs 19c]$ cat 19cdb.env # Contains: export ORA_NLS10=/u01/app/FBS/db/tech_st/19c/nls/data/9idata
4. Copying appsutil.zip from Application Tier
The appsutil.zip file contains essential utilities needed for database configuration.
Generate appsutil.zip on Application Tier
As the application tier owner (applmgr), run:
[applmgr@fbsebs ~]$ perl $AD_TOP/bin/admkappsutil.pl
Output:
Starting the generation of appsutil.zip Log file located at /u01/app/FBS/fs2/inst/apps/FBS_fbsebs/admin/log/MakeAppsUtil_12200949.log output located at /u01/app/FBS/fs2/inst/apps/FBS_fbsebs/admin/out/appsutil.zip MakeAppsUtil completed successfully.
Transfer and Extract appsutil.zip
Copy to 19c Oracle Home:
[oracle@fbsebs 19c]$ cd $ORACLE_HOME [oracle@fbsebs 19c]$ scp -r /u01/app/FBS/fs2/inst/apps/FBS_fbsebs/admin/out/appsutil.zip .
Unzip the file:
[oracle@fbsebs 19c]$ unzip -o appsutil.zip
The appsutil.zip extraction creates the following directory structure:
appsutil/bin/- Utility scriptsappsutil/perl/- Perl modulesappsutil/template/- Configuration templatesappsutil/java/- Java librariesappsutil/sql/- SQL scriptsappsutil/html/- HTML resources
5. Installing JRE 8
Install Java Runtime Environment (JRE) 8 in the appsutil directory for Oracle utilities.
Installation Steps
Source the 19c environment:
[oracle@fbsebs 19c]$ . 19cdb.env
Copy JRE to appsutil directory:
[oracle@fbsebs 19c]$ cd $ORACLE_HOME/appsutil [oracle@fbsebs appsutil]$ cp -r $ORACLE_HOME/jdk/jre . [oracle@fbsebs appsutil]$ cp $ORACLE_HOME/jlib/orai18n.jar $ORACLE_HOME/appsutil/jre/lib/ext
Verification
After installation, verify the JRE installation:
[oracle@fbsebs appsutil]$ ls -la jre/ # Should display the JRE directory structure
6. Creating the Container Database (CDB)
Use Database Configuration Assistant (DBCA) to create the Container Database (CDB) for Oracle E-Business Suite.
Pre-Creation Steps
Source the 19c environment:
[oracle@fbsebs 19c]$ . 19cdb.env
Navigate to bin directory:
[oracle@fbsebs 19c]$ cd $ORACLE_HOME/bin
Set environment variables:
[oracle@fbsebs bin]$ export _JAVA_OPTIONS='-Dsun.java2d.xrender=false' [oracle@fbsebs bin]$ export CV_ASSUME_DISTID=OEL7.9
Launch DBCA:
[oracle@fbsebs bin]$ ./dbca
DBCA Configuration Options
| Step | Selection |
|---|---|
| Creation Type | Create Database |
| Configuration Type | Advanced Configuration |
| Database Type | General Purpose or Transaction Processing |
| Database Identification | Container Database (CDB) without PDB |
| Global Database Name | fbscdb |
| SID | fbscdb (maximum 8 characters) |
| PDB Option | Check "Use Local Undo tablespace for PDBs" |
| Network Configuration | Do NOT create a listener |
| SGA Size | 2 GB |
| PGA Size | 1 GB |
| Character Set | Same as source database |
| National Character Set | Same as source database |
| Redo Log Size | Same as source database |
In case of ASM filesystem the storage will be ASM.
CDB database should be running now.
[oracle@fbsebs bin]$ ps -ef |grep -i pmon
oracle 3432 2611 0 08:57 ? 00:00:00 ora_pmon_FBS
oracle 37215 2611 0 11:15 ? 00:00:00 ora_pmon_cdbfbs
oracle 37673 30161 0 11:17 pts/2 00:00:00 grep --color=auto -i pmon
10.14 Running Datapatch on the CDB
Before proceeding with the database upgrade, apply necessary patches to the Container Database (CDB) using the datapatch utility.
Prerequisites
Source the 19c environment
Ensure the Oracle SID is properly set
Source the 19c environment
Ensure the Oracle SID is properly set
Commands
# Source the 19c environment
[oracle@fbsebs 19c]$ . 19cdb.env
# Set the Oracle SID
[oracle@fbsebs 19c]$ export ORACLE_SID=cdbfbs
# Run datapatch
[oracle@fbsebs 19c]$ $ORACLE_HOME/OPatch/datapatch
# Source the 19c environment [oracle@fbsebs 19c]$ . 19cdb.env # Set the Oracle SID [oracle@fbsebs 19c]$ export ORACLE_SID=cdbfbs # Run datapatch [oracle@fbsebs 19c]$ $ORACLE_HOME/OPatch/datapatch
Expected Output
The datapatch utility will display:
Version information (e.g., 19.24.0.0.0)
Current state of interim SQL patches
Patch application status for CDBSEED
Key Observations:
Interim patch 36414915 (OJVM Release Update) should show "Applied successfully"
Release Update 19.24.0.0.0 should be installed and applied
No new patches should be required if the system is up-to-date
Important Notes
Datapatch only applies SQL fixes to PDBs in an open state
Closed PDBs will not receive patches during this operation
The process includes bootstrapping registry and package updates
Datapatch only applies SQL fixes to PDBs in an open state
Closed PDBs will not receive patches during this operation
The process includes bootstrapping registry and package updates
10.15 Creating the CDB MGDSYS Schema
The MGDSYS schema is required for Oracle Multitenant functionality.
Steps
# Source the 19c environment
[oracle@fbsebs 19c]$ export ORACLE_SID=cdbfbs
# Connect as SYSDBA
[oracle@fbsebs 19c]$ sqlplus / as sysdba
# Run the schema creation script
SQL> @$ORACLE_HOME/rdbms/admin/catmgd.sql
# Source the 19c environment [oracle@fbsebs 19c]$ export ORACLE_SID=cdbfbs # Connect as SYSDBA [oracle@fbsebs 19c]$ sqlplus / as sysdba # Run the schema creation script SQL> @$ORACLE_HOME/rdbms/admin/catmgd.sql
Expected Outcome
The MGDSYS schema is created in the CDB
This schema supports Oracle Multitenant administration
The MGDSYS schema is created in the CDB
This schema supports Oracle Multitenant administration
10.16 Generating CDB TNS Files
Create the required TNS files for database connectivity using the provided Perl script.
Prerequisites
Source the 19c environment
Navigate to the appsutil directory
Source the 19c environment
Navigate to the appsutil directory
Command Execution
# Navigate to appsutil directory
[oracle@fbsebs 19c]$ cd $ORACLE_HOME/appsutil
# Set the CDB configuration environment
[oracle@fbsebs appsutil]$ . ./txkSetCfgCDB.env dboraclehome=$ORACLE_HOME
# Navigate to the bin directory
[oracle@fbsebs appsutil]$ cd $ORACLE_HOME/appsutil/bin
# Generate TNS files
[oracle@fbsebs bin]$ perl txkGenCDBTnsAdmin.pl \
-dboraclehome=$ORACLE_HOME \
-cdbname=cdbfbs \
-cdbsid=cdbfbs \
-dbport=1531 \
-outdir=$ORACLE_HOME/appsutil/log
# Navigate to appsutil directory [oracle@fbsebs 19c]$ cd $ORACLE_HOME/appsutil # Set the CDB configuration environment [oracle@fbsebs appsutil]$ . ./txkSetCfgCDB.env dboraclehome=$ORACLE_HOME # Navigate to the bin directory [oracle@fbsebs appsutil]$ cd $ORACLE_HOME/appsutil/bin # Generate TNS files [oracle@fbsebs bin]$ perl txkGenCDBTnsAdmin.pl \ -dboraclehome=$ORACLE_HOME \ -cdbname=cdbfbs \ -cdbsid=cdbfbs \ -dbport=1531 \ -outdir=$ORACLE_HOME/appsutil/log
Script Parameters
Parameter Description Example -dboraclehome Full path of ORACLE_HOME /u01/app/FBS/db/tech_st/19c -cdbname CDB name cdbfbs -cdbsid CDB SID cdbfbs -dbport Database listener port 1531 -outdir Output directory for logs $ORACLE_HOME/appsutil/log
| Parameter | Description | Example |
|---|---|---|
| -dboraclehome | Full path of ORACLE_HOME | /u01/app/FBS/db/tech_st/19c |
| -cdbname | CDB name | cdbfbs |
| -cdbsid | CDB SID | cdbfbs |
| -dbport | Database listener port | 1531 |
| -outdir | Output directory for logs | $ORACLE_HOME/appsutil/log |
Generated Files
The script creates the following files in the network/admin directory:
listener.ora- Listener configurationtnsnames.ora- TNS names resolutionsqlnet.ora- SQL*Net configuration
10.17 Shutting Down the CDB
Properly shut down the CDB before proceeding with the upgrade.
Commands
# Connect as SYSDBA
[oracle@fbsebs bin]$ sqlplus / as sysdba
# Shut down the database immediately
SQL> shu immediate
# Connect as SYSDBA [oracle@fbsebs bin]$ sqlplus / as sysdba # Shut down the database immediately SQL> shu immediate
Expected Output
Database closed.
Database dismounted.
ORACLE instance shut down.
Database closed. Database dismounted. ORACLE instance shut down.
10.18 Application Tier Operations
Complete the patching cycle on the application tier to clean up editions created by previous ADOP patching cycles.
ADOP Phases
Phase Command Duration Purpose Prepare adop phase=prepareVaries Prepare the patching cycle Actualize All adop phase=actualize_all~13 hours Apply changes to the file system Finalize adop phase=finalize finalize_mode=fullVaries Complete the patching cycle Cutover adop phase=cutover mtrestart=noVaries Switch to the new run file system Cleanup adop phase=cleanup cleanup_mode=full~18 hours Clean up old editions
| Phase | Command | Duration | Purpose |
|---|---|---|---|
| Prepare | adop phase=prepare | Varies | Prepare the patching cycle |
| Actualize All | adop phase=actualize_all | ~13 hours | Apply changes to the file system |
| Finalize | adop phase=finalize finalize_mode=full | Varies | Complete the patching cycle |
| Cutover | adop phase=cutover mtrestart=no | Varies | Switch to the new run file system |
| Cleanup | adop phase=cleanup cleanup_mode=full | ~18 hours | Clean up old editions |
Important Notes
Applications will be unavailable during this process
These maintenance operations take significantly longer than typical online patching cycles
Perform these steps when no immediate patching cycles are scheduled
Applications will be unavailable during this process
These maintenance operations take significantly longer than typical online patching cycles
Perform these steps when no immediate patching cycles are scheduled
10.19 Configuring UTL_FILE_DIR
Oracle Database 19c has deprecated the UTL_FILE_DIR initialization parameter. EBS provides supplemental views (apps.vparameter2) to maintain compatibility.
Two-Step Process
Step 1: Retrieve Existing UTL_FILE_DIR Values
# Source the 12c environment
[applmgr@fbsebs ~]$ . /u01/app/FBS/db/tech_st/12.1.0/FBS_fbsebs.env
# Run the script in getUtlFileDir mode
[oracle@fbsebs appsutil]$ perl $ORACLE_HOME/appsutil/bin/txkCfgUtlfileDir.pl \
-contextfile=/u01/app/FBS/db/tech_st/12.1.0/appsutil/FBS_fbsebs.xml \
-oraclehome=/u01/app/FBS/db/tech_st/12.1.0 \
-outdir=/tmp \
-upgradedhome=/u01/app/FBS/db/tech_st/19c \
-mode=getUtlFileDir \
-servicetype=onpremise
# Source the 12c environment [applmgr@fbsebs ~]$ . /u01/app/FBS/db/tech_st/12.1.0/FBS_fbsebs.env # Run the script in getUtlFileDir mode [oracle@fbsebs appsutil]$ perl $ORACLE_HOME/appsutil/bin/txkCfgUtlfileDir.pl \ -contextfile=/u01/app/FBS/db/tech_st/12.1.0/appsutil/FBS_fbsebs.xml \ -oraclehome=/u01/app/FBS/db/tech_st/12.1.0 \ -outdir=/tmp \ -upgradedhome=/u01/app/FBS/db/tech_st/19c \ -mode=getUtlFileDir \ -servicetype=onpremise
Path Modifications
On-premises: /usr/tmp → <19c ORACLE_BASE>/temp/<PDB_NAME>
Cloud: /usr/tmp → <19c ORACLE_HOME>/temp/<PDB_NAME>
Old Oracle Home paths are replaced with the 19c Oracle Home
On-premises: /usr/tmp → <19c ORACLE_BASE>/temp/<PDB_NAME>
Cloud: /usr/tmp → <19c ORACLE_HOME>/temp/<PDB_NAME>
Old Oracle Home paths are replaced with the 19c Oracle Home
Generated File
The script creates FBS_utlfiledir.txt in the dbs directory with content similar to:
/u01/app/FBS/db/tech_st/temp/FBS /u01/app/FBS/db/tech_st/temp/FBS /u01/app/FBS/db/tech_st/19c/appsutil/outbound/FBS_fbsebs /u01/app/FBS/db/tech_st/temp/FBS
Step 2: Create Required Directories
# Create the required directories
[oracle@fbsebs appsutil]$ mkdir -p /u01/app/FBS/db/tech_st/19c/appsutil/outbound/FBS_fbsebs
[oracle@fbsebs appsutil]$ mkdir -p /u01/app/FBS/db/tech_st/temp/FBS
# Create the required directories [oracle@fbsebs appsutil]$ mkdir -p /u01/app/FBS/db/tech_st/19c/appsutil/outbound/FBS_fbsebs [oracle@fbsebs appsutil]$ mkdir -p /u01/app/FBS/db/tech_st/temp/FBS
Step 3: Store Values in Database
# Run the script in setUtlFileDir mode
[oracle@fbsebs appsutil]$ perl $ORACLE_HOME/appsutil/bin/txkCfgUtlfileDir.pl \
-contextfile=/u01/app/FBS/db/tech_st/12.1.0/appsutil/FBS_fbsebs.xml \
-oraclehome=/u01/app/FBS/db/tech_st/12.1.0 \
-outdir=/tmp \
-upgradedhome=/u01/app/FBS/db/tech_st/19c \
-mode=setUtlFileDir \
-servicetype=onpremise
# Run the script in setUtlFileDir mode [oracle@fbsebs appsutil]$ perl $ORACLE_HOME/appsutil/bin/txkCfgUtlfileDir.pl \ -contextfile=/u01/app/FBS/db/tech_st/12.1.0/appsutil/FBS_fbsebs.xml \ -oraclehome=/u01/app/FBS/db/tech_st/12.1.0 \ -outdir=/tmp \ -upgradedhome=/u01/app/FBS/db/tech_st/19c \ -mode=setUtlFileDir \ -servicetype=onpremise
Directory Object Naming Convention
First object: EBS_DB_DIR_UTIL
Subsequent objects: EBS_UTL_FILE_DIR_<random_number>
First object: EBS_DB_DIR_UTIL
Subsequent objects: EBS_UTL_FILE_DIR_<random_number>
Important Constraints
Maximum combined length: 4000 characters
No duplicate directory objects are created
Symbolic links must be replaced with physical paths
Paths must exist with proper permissions
Maximum combined length: 4000 characters
No duplicate directory objects are created
Symbolic links must be replaced with physical paths
Paths must exist with proper permissions
10.20 Shutting Down Application Tier Server Processes
Shut down all application tier server processes. This step may already be completed from previous ADOP cycle operations.
10.21 Dropping SYS.ENABLED$INDEXES
Check for and remove the SYS.ENABLED$INDEXES table if it exists.
Command
[oracle@fbsebs appsutil]$ sqlplus / as sysdba
SQL> drop table sys.enabled$indexes;
[oracle@fbsebs appsutil]$ sqlplus / as sysdba SQL> drop table sys.enabled$indexes;
Expected Response
If the table exists: Table dropped.
If the table does not exist: ORA-00942: table or view does not exist (This is acceptable)
If the table exists: Table dropped.
If the table does not exist: ORA-00942: table or view does not exist (This is acceptable)
10.22 Removing the MGDSYS Schema (Conditional)
Note: This step is only required for upgrades from versions prior to Oracle 12c. For 12c upgrades, this step can be skipped.
10.23 Shutting Down the Database Listener
Stop the existing database listener and clear the LOCAL_LISTENER parameter.
Stop the Listener
# Source the 12c environment
[oracle@fbsebs appsutil]$ lsnrctl stop FBS
# Source the 12c environment [oracle@fbsebs appsutil]$ lsnrctl stop FBS
Clear LOCAL_LISTENER
SQL> alter system set local_listener='';
SQL> alter system set local_listener='';
10.24 Database Pre-Upgrade Steps
Critical Pre-Upgrade Checks
1. Verify oratab Entry
Ensure the database to be upgraded has an entry in /etc/oratab.
2. Modify Initialization Parameters
-- Comment out deprecated parameters
-- Set OLAP page pool size to 0
SQL> alter system set olap_page_pool_size=0 scope=spfile;
-- Set PGA_AGGREGATE_TARGET to at least 10G for 11g sources
-- Set SGA_TARGET to at least 2G
-- Add upgrade event
SQL> alter system set event='10946 trace name context forever, level 8454144' scope=spfile;
-- Comment out deprecated parameters -- Set OLAP page pool size to 0 SQL> alter system set olap_page_pool_size=0 scope=spfile; -- Set PGA_AGGREGATE_TARGET to at least 10G for 11g sources -- Set SGA_TARGET to at least 2G -- Add upgrade event SQL> alter system set event='10946 trace name context forever, level 8454144' scope=spfile;
3. Restart Database
SQL> shutdown immediate;
SQL> startup;
SQL> shutdown immediate; SQL> startup;
Running the Pre-Upgrade Tool
Command
[oracle@fbsebs appsutil]$ $ORACLE_HOME/jdk/bin/java -jar /u01/app/FBS/db/tech_st/19c/rdbms/admin/preupgrade.jar TERMINAL TEXT
[oracle@fbsebs appsutil]$ $ORACLE_HOME/jdk/bin/java -jar /u01/app/FBS/db/tech_st/19c/rdbms/admin/preupgrade.jar TERMINAL TEXT
Output Summary
Database Information:
Current Version: 12.1.0.2.0
Target Version: 19.0.0.0.0
Timezone File: 18 → 32
Component Status:
| Component | Status |
|---|---|
| Oracle Server | VALID |
| JServer JAVA Virtual Machine | VALID |
| Oracle Text | VALID |
| Oracle XML Database | VALID |
| Oracle Spatial | VALID |
Required Actions Identified:
Remove obsolete parameters (optimizer_adaptive_features, utl_file_dir)
Address 158 invalid objects (primarily in APPS schema)
Remove OLAP Catalog (AMD)
Address duplicate objects in SYS/SYSTEM
Resolve password version issues (10G password versions)
Remove deprecated parameters (sec_case_sensitive_logon)
Recommended Actions:
Gather dictionary statistics
Refresh stale materialized views
Remove underscore parameters
Remove unnecessary events
Generated Fixup Scripts
The pre-upgrade tool generates two scripts:
| Script | Purpose | Execution Time |
|---|---|---|
preupgrade_fixups.sql | Execute before upgrade | Before upgrade |
postupgrade_fixups.sql | Execute after upgrade | After upgrade |
Executing Pre-Upgrade Fixups
SQL> @/u01/app/FBS/db/tech_st/12.1.0/cfgtoollogs/FBS/preupgrade/preupgrade_fixups.sql
SQL> @/u01/app/FBS/db/tech_st/12.1.0/cfgtoollogs/FBS/preupgrade/preupgrade_fixups.sql
Verification After Fixups
Run the fixup script and verify that issues marked as "Remedied" show "YES". Issues marked "NO" require manual intervention.
Outstanding Manual Actions Identified
Issue Recommended Action Obsolete parameters Remove from spfile Invalid objects Run utlrp.sql to recompile OLAP Catalog (AMD) Run catnoamd.sql Password versions Update passwords or set SQLNET.ALLOWED_LOGON_VERSION_SERVER=11 Case-insensitive authentication Remove SEC_CASE_SENSITIVE_LOGON=FALSE Stale materialized views Refresh using dbms_mview.refresh()
| Issue | Recommended Action |
|---|---|
| Obsolete parameters | Remove from spfile |
| Invalid objects | Run utlrp.sql to recompile |
| OLAP Catalog (AMD) | Run catnoamd.sql |
| Password versions | Update passwords or set SQLNET.ALLOWED_LOGON_VERSION_SERVER=11 |
| Case-insensitive authentication | Remove SEC_CASE_SENSITIVE_LOGON=FALSE |
| Stale materialized views | Refresh using dbms_mview.refresh() |
10.25 Upgrading the Database Instance
Pre-Upgrade Checklist
- □
12c database entry exists in /etc/oratab
- □
All pre-upgrade fixups have been applied
- □
Database has been backed up
- □
Listener is stopped
- □
Critical initialization parameters are set
12c database entry exists in /etc/oratab
All pre-upgrade fixups have been applied
Database has been backed up
Listener is stopped
Critical initialization parameters are set
Launch DBUA
# Source the 19c environment
[oracle@fbsebs bin]$ $ORACLE_HOME/bin/dbua -keepEvents
# Source the 19c environment [oracle@fbsebs bin]$ $ORACLE_HOME/bin/dbua -keepEvents
1.1 Post-Upgrade Script Execution
After the initial database upgrade completes, run the post-upgrade fixup script generated during the pre-upgrade steps:
# Source the 19c environment [oracle@fbsebs 19c]$ . 19cdb.env [oracle@fbsebs 19c]$ export ORACLE_SID=FBS [oracle@fbsebs 19c]$ sqlplus / as sysdba SQL> @/u01/app/FBS/db/tech_st/12.1.0/cfgtoollogs/FBS/preupgrade/postupgrade_fixups.sql
1.2 Post-Upgrade Tasks
Perform the following miscellaneous tasks after the upgrade:
Security Parameter Configuration
If SEC_CASE_SENSITIVE_LOGON was previously set to FALSE, re-enable it:
-- Create spfile if it doesn't exist SQL> alter system set SEC_CASE_SENSITIVE_LOGON=false; SQL> alter trigger SYSTEM.EBS_LOGON compile; SQL> alter system set compatible='19.0.0' scope=spfile;
Database Restart
SQL> shutdown immediate SQL> startup
Verify the compatibility setting:
SQL> show parameter compatible
Note: The "ORA-32004: obsolete or deprecated parameter(s) specified" warning appears because the CONNECTION_BROKERS parameter will be removed later during the PDB migration.
1.3 Run DataPatch
Apply SQL patches to the database:
[oracle@fbsebs 19c]$ . 19cdb.env [oracle@fbsebs 19c]$ export ORACLE_SID=FBS [oracle@fbsebs 19c]$ $ORACLE_HOME/OPatch/datapatch
Output confirms:
Interim patch 36414915 (OJVM Release Update 19.24.0.0.240716) is installed
Release update 19.24.0.0.0 is applied
No additional patches are required
1.4 Run XDB Schema Migration Scripts
SQL> @?/rdbms/admin/dbmsxdbschmig.sql SQL> @?/rdbms/admin/prvtxdbschmig.plb
1.5 Run AD Grants
Copy adgrants.sql from $APPL_TOP/admin to the database tier:
[oracle@fbsebs admin]$ sqlplus / as sysdba SQL> @adgrants.sql apps
Important: ORA-00942 errors can be ignored as they occur when attempting to grant privileges on non-existent objects. The grants are recorded in the ad_zd_logs table.
1.6 Grant Create Procedure Privilege
Run the script from the administration server:
[oracle@fbsebs admin]$ sqlplus apps/apps @adctxprv.sql manager CTXSYS
1.7 Compile Invalid Objects
Connect as SYSDBA and compile any invalid objects:
SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql
Verify the number of invalid objects:
SQL> select count(*) from dba_objects where status='INVALID';
Result: 17 invalid objects found.
1.8 Grant DataStore Access
Grant TEXT DATASTORE access to PUBLIC:
SQL> grant text datastore access to public;
1.9 Gather Statistics for SYS Schema
Run in restricted mode to gather statistics:
SQL> alter system enable restricted session; SQL> @adstats.sql SQL> alter system disable restricted session;
1.10 Create MGDSYS Schema (Conditional)
If upgrading from a version prior to Oracle 12c, create the new MGDSYS schema:
SQL> @?/rdbms/admin/catmgd.sqlNote: This step was not required for this upgrade.
2. Migration to Multitenant Architecture (CDB/PDB)
2.1 Prerequisites
Critical Considerations:
Ensure sufficient space in TEMP, SYSAUX, and SYSTEM tablespaces
The non-CDB database (FBS) must be kept down during migration
The non-CDB will be converted to a PDB
2.2 Create PDB Descriptor
# Navigate to appsutil directory [oracle@fbstest tmp]$ cd $ORACLE_HOME/appsutil [oracle@fbstest appsutil]$ . ./txkSetCfgCDB.env dboraclehome=/u01/app/FBS/db/tech_st/19c [oracle@fbstest appsutil]$ export ORACLE_SID=FBS [oracle@fbstest appsutil]$ cd $ORACLE_HOME/appsutil/bin # Run the pre-PDB creation tasks script [oracle@fbsebs bin]$ perl txkOnPremPrePDBCreationTasks.pl \ -dboraclehome=/u01/app/FBS/db/tech_st/19c \ -outdir=/u01/app/FBS/db/tech_st/19c/appsutil/log \ -appsuser=apps \ -dbsid=FBS
Script Execution Summary:
Validated Oracle Home and output directory
Shut down the non-CDB database
Started the database in MOUNT mode
Created PDB descriptor XML:
/u01/app/FBS/db/tech_st/19c/dbs/FBS_PDBDesc.xmlShut down the database again
Important: Do NOT start the database until data files are migrated, as doing so would invalidate the PDB descriptor XML.
2.3 Update CDB Initialization Parameters
Copy parameter files to the 19c home:
[oracle@fbstest dbs]$ cp FBS_initparam.sql FBS_datatop.txt /u01/app/FBS/db/tech_st/19c/dbs/
Note: Remove the CONNECTION_BROKERS parameter line from FBS_initparam.sql as it's deprecated.
Update the CDB parameters:
[oracle@fbsebs appsutil]$ cd $ORACLE_HOME/appsutil [oracle@fbsebs appsutil]$ . ./txkSetCfgCDB.env dboraclehome=$ORACLE_HOME [oracle@fbsebs appsutil]$ export ORACLE_SID=cdbfbs [oracle@fbsebs appsutil]$ sqlplus / as sysdba SQL> startup nomount; SQL> @$ORACLE_HOME/dbs/FBS_initparam.sql SQL> alter system set LOCAL_LISTENER="fbsebs:1531" scope=both; SQL> shutdown immediate; SQL> startup;
Verify the CDB is open:
SQL> select name,open_mode from v$database;
Result:
NAME OPEN_MODE --------- -------------------- CDBFBS READ WRITE
2.4 Check for PDB Violations
Check compatibility before creating the PDB:
[oracle@fbsebs appsutil]$ cd $ORACLE_HOME/appsutil [oracle@fbsebs appsutil]$ . ./txkSetCfgCDB.env dboraclehome=$ORACLE_HOME [oracle@fbsebs appsutil]$ export ORACLE_SID=cdbfbs [oracle@fbsebs appsutil]$ cd $ORACLE_HOME/appsutil/bin [oracle@fbsebs bin]$ perl txkChkPDBCompatability.pl \ -dboraclehome=$ORACLE_HOME \ -outdir=$ORACLE_HOME/appsutil/log \ -cdbsid=cdbfbs \ -pdbsid=FBS \ -servicetype=onpremise
Violations Reported:
The script reported violations that must be resolved before proceeding. Check the log file:
/u01/app/FBS/db/tech_st/19c/appsutil/log/TXK_CHK_PDB_COMPTABILITY_Mon_Dec_23_09_24_45_2024/check_pdb_plugin_violations.out
Important Guidelines:
Errors: All errors except SQL PATCH ERRORS must be resolved
Warnings: All warnings except CHARACTER SET WARNINGS can be ignored
Review and set INIT PARAMETERs to match EBS requirements
2.5 Create the PDB
After resolving all violations, create the PDB:
[oracle@fbsebs bin]$ cd $ORACLE_HOME/appsutil [oracle@fbsebs appsutil]$ . ./txkSetCfgCDB.env dboraclehome=$ORACLE_HOME [oracle@fbsebs appsutil]$ cd $ORACLE_HOME/appsutil/bin [oracle@fbsebs bin]$ perl txkCreatePDB.pl \ -dboraclehome=$ORACLE_HOME \ -outdir=$ORACLE_HOME/appsutil/log \ -cdbsid=cdbfbs \ -pdbsid=FBS \ -dbuniquename=cdbfbs \ -servicetype=onpremise
Datafile Location Configuration:
Non-CDB on ASM : +EBS_DATA PDB on ASM : +EBS_DATA DATA_TOP_1 : +EBS_DATA/FBS/DATAFILE DATA_TOP_2 : +EBS_DATA/FBS/TEMPFILE
2.6 Run Post-PDB Creation Tasks
Update the PDB configuration:
[oracle@fbsebs appsutil]$ cd $ORACLE_HOME/appsutil [oracle@fbsebs appsutil]$ . ./txkSetCfgCDB.env dboraclehome=$ORACLE_HOME [oracle@fbsebs appsutil]$ perl $ORACLE_HOME/appsutil/bin/txkPostPDBCreationTasks.pl \ -dboraclehome=$ORACLE_HOME \ -outdir=$ORACLE_HOME/appsutil/log \ -cdbsid=cdbfbs \ -pdbsid=FBS \ -appsuser=apps \ -dbport=1531 \ -servicetype=onpremise
Provide credentials:
APPS Password
CDB SYSTEM Password (must meet complexity requirements with at least 1 special character)
Verify the PDB:
SQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 FBS READ WRITE NO
2.7 Modify Initialization Parameters
Update database parameters according to EBS requirements:
[oracle@fbsebs dbs]$ export ORACLE_SID=fbscdb [oracle@fbsebs dbs]$ sqlplus '/as sysdba' alter system set event='10946 trace name context forever, level 8454144' scope=spfile; alter system set sec_case_sensitive_logon=FALSE scope=spfile;
3. Application Tier Configuration
3.1 Update TNS Names Configuration
Add the CDB entry to $TNS_ADMIN/tnsnames.ora:
fbscdb = (DESCRIPTION = (ADDRESS = (PROTOCOL=tcp)(HOST=fbstest.finsys.co.ke)(PORT=1522)) (CONNECT_DATA = (SERVICE_NAME=ebs_FBS)(INSTANCE_NAME=fbscdb)) )
3.2 Update Context File Variables
Update the following values in the context file of every Applications tier server:
| 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 |
3.3 Configure UTL_FILE_DIR
Add the UTL_FILE_DIR directory using the configuration script:
[oracle@fbsebs appsutil]$ perl $ORACLE_HOME/appsutil/bin/txkCfgUtlfileDir.pl \ -contextfile=$ORACLE_HOME/appsutil/FBS_fbsebs.xml \ -oraclehome=/u01/app/oracle/product/19c \ -outdir=/u01/app/oracle/product/19c/appsutil/log \ -mode=addUtlFileDir
3.4 Run AutoConfig
Run AutoConfig on both patch and run APPL_TOPs:
$INST_TOP/admin/scripts/adautocfg.shNote: Ignore errors when running AutoConfig on the patch file system APPL_TOP.
3.5 Recreate Custom Database Links (Conditional)
Check for existing database links:
SQL> select db_link from all_db_links;
Drop and recreate custom self-referential database links:
SQL> drop database link <custom_database_link>; SQL> create database link <custom_database_link> connect to <user> identified by <password> using '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=<hostname>) (PORT=<port_number>))(CONNECT_DATA=(SID=<ORACLE_SID>)))';
4. Working with EBS on Multitenant Architecture
4.1 Environment Setup
CDB Environment:
$ cd $ORACLE_HOME $ source <CDB_NAME>_<NODE_NAME>.env
PDB Environment:
$ cd $ORACLE_HOME $ source <PDB_NAME>_<NODE_NAME>.env
PDB Environment (Alternative Method):
$ source <CDB_NAME>_<NODE_NAME>.env $ export ORACLE_PDB_SID=<PDB_NAME>
4.2 Connecting to Databases
Connect to CDB as SYSDBA:
$ source <CDB_NAME>_<NODE_NAME>.env $ sqlplus "/ as sysdba"
Connect to PDB as SYSDBA:
$ source <CDB_NAME>_<NODE_NAME>.env $ export ORACLE_PDB_SID=<PDB_NAME> $ sqlplus "/ as sysdba"
4.3 Starting and Stopping
Start CDB (Single-Node):
SQL> startup;
Start PDB:
SQL> alter pluggable database <EBS_PDB_NAME> open read write services=all;
Stop PDB:
SQL> alter pluggable database <EBS_PDB_NAME> close immediate;
Save PDB State:
SQL> alter pluggable database <EBS_PDB_NAME> save state;
Stop CDB (Single-Node):
SQL> shutdown normal;
4.4 View PDB Information
View All PDBs:
SQL> show pdbs;
View PDB Open Modes:
SQL> select name, open_mode from v$pdbs;
Switch to PDB from CDB:
SQL> alter session set container="FBS";
4.5 Troubleshooting
Check PDB Violations:
SQL> select name, cause, message, status from PDB_PLUG_IN_VIOLATIONS;
Find Alert Log Location:
SQL> select value from v$diag_info where name = 'Diag Trace';
4.6 AWR Reports
Oracle 19c supports AWRs at both CDB and PDB levels:
SQL> @$ORACLE_HOME/rdbms/admin/awrrpt.sql
Specify
AWR_ROOTfor CDB-level AWR dataSpecify
AWR_PDBfor PDB-level AWR data
4.7 OPatch Inventory
List OPatch Inventory:
$ source <CDB_NAME>_<NODE_NAME>.env $ export PATH=$PATH:$ORACLE_HOME/OPatch $ opatch lsinventory -detail
5. Key Configuration Variables
The following context variables support the multitenant architecture:
| Variable | Value |
|---|---|
| s_pluggable_database | TRUE |
| s_pdb_name | PDB name |
| s_cdb_name | CDB SID |
| s_cdb_unique_name | CDB unique name |
| s_dbService | ebs_<PDB_name> |
| s_db_tenancy | multi-tenant |
| s_cdb_tnsadmin | $ORACLE_HOME/network/admin |
6. Important Notes and Best Practices
Licensing
Oracle E-Business Suite supports a single PDB (single tenant) in a CDB
A single PDB in a CDB does not require licensing the Oracle Multitenant database option
Supported Configurations
Oracle E-Business Suite 12.2.3 and later with Oracle Database 19c (on-premises)
Oracle E-Business Suite 12.1.3 with Oracle Database 19c (on-premises)
Cloning
Rapid Clone utility can be used to clone both CDB and PDB together in on-premises environments
Unsupported Operations
There is no supported procedure to unplug an Oracle E-Business Suite PDB and plug it into another CDB
Post-Upgrade Checklist
Verify all invalid objects are compiled
Confirm database compatibility setting
Validate PDB is open in READ WRITE mode
Check application connectivity
Run ETCC to verify patch levels
Test all application functionality
7. References
19c Database with Oracle E-Business Suite R12 Known Issues & Solutions (Doc ID 2662860.1)
Install Oracle Database binaries 19c and apply EBS overlay patches (Doc ID 1594274.1)
Interoperability Notes: Oracle E-Business Suite Release 12.2 with Oracle EBS Database 19c (Doc ID 2552181.1)
Database Initialization Parameters for Oracle E-Business Suite Release 12 (Doc ID 396009.1)
Using Oracle Database 19c RAC Multitenant with Oracle E-Business Suite Release 12.2 (Doc ID 2530665.1)
Export/Import Process for Oracle E-Business Suite Release 12.2 Database Instances Using Oracle Database 19 (Doc ID 2554156.1)
Oracle E-Business Suite and the Oracle Multitenant Architecture (Doc ID 2567105.1)
8. Conclusion
This upgrade successfully migrated the Oracle E-Business Suite database from 12.1.0 to 19c and converted the non-CDB architecture to a multitenant architecture with a single PDB. The CDB (cdbfbs) now hosts the EBS PDB (FBS), and all post-migration tasks have been completed including:
Database upgrade and patching
Schema migration and grants
PDB creation and configuration
Application tier updates
System parameter optimization
The database is now fully operational and ready for production use with the Oracle E-Business Suite application.



































No comments:
Post a Comment