19c Upgrade for Oracle EBS 12.2.9
Upgrading an Oracle E-Business Suite
Release 12 Database to Oracle Database 19c
|
Source
version |
Target
version |
Database |
12.1.0.2.0 |
19.10.0.0.0 |
ORACLE_SID |
VISR12 |
CDBà CDBVIS & PDBàVISR12 |
ORACLE_HOME |
/u02/oracle/VISR12/12.1.0 |
/u02/oracle/VISR12/19.3.0 |
Oracle
E-Business |
12.2.9 |
|
Operating system |
Red Hat
Enterprise Linux Server release 7.8 (x86_64) |
|
Vendor |
Oracle Linux |
|
Contributors |
Gouri Sankar
Dash, Hemantha Gorella, Kanhu Gopal Mahapatra |
Documents referred:
Oracle support Doc number: Interoperability Notes: Oracle E-Business
Suite Release 12.2 with Oracle Database 19c (Doc ID 2552181.1)
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)
Major Steps:
1.
1. ETCC DB
& Apps Tier patching |
2.
Interoperability
patches (ADOP) |
3. Install 19c software only |
4.
Update 19c home to latest patch set
(19.10) |
5. Create
CDB with a new name |
6.
Store UTL
file values in to 12c DB |
7. Upgrade DB from 12c to 19c |
8.
Now 19c CDB & 19c Non-CDB both are
in the same home |
9. Convert
19c non CDB to PDB |
10.
Correct
the UTLDIR values in application CONTEXT_FILE & run auto config. |
Most time-consuming steps are
- Pre-upgrade patching (Interoperability patches, actualize all) -> Can be taken care beforehand.
- Upgrading 12c to 19c.
- 19c non CDB to PDB conversion
⮚
When upgrading your Oracle E-Business Suite to Oracle Database
19c, your database will be converted to a multitenant architecture, which will
consist of a Container Database (CDB) with a single Pluggable Database. Only
multitenant architecture database are supported for Oracle E-Business Suite
with Oracle Database 19c.
⮚
During the upgrade, you will also perform steps to migrate
directories defined for PL/SQL File I/O to database directory objects. This
requirement is due to the de-support in Oracle Database 19c of the UTL_FILE_DIR
database initialization parameter.
⮚
Oracle Database Release Update 19.3 as well as Release Update 19.5
and later are certified.
⮚
Oracle recommends that you upgrade to the latest Oracle Database
Release Update that is certified with Oracle E-Business Suite. Applying the
latest Release Update will ensure that you have the security-related fixes and
high-priority non-security fixes. See My Oracle Support Knowledge Document
2285040.1, Release Update Introduction and FAQ, for more details.
⮚
You can upgrade directly from an earlier Oracle Database version
to Oracle Database Release Update 19.3 or Release Update 19.6 or later (I have used 19.10 for this
POC).
⮚
You cannot upgrade directly to Oracle Database Release Update
19.5. You must first upgrade from your earlier Oracle Database version to
Oracle Database 19.3, and then apply Oracle Database Release Update 19.5.
⮚
When upgrading your Oracle E-Business Suite database, it is
essential to measure your performance to ensure certain operations will continue to meet your
requirements. The most reliable strategy is to upgrade the database in a test
environment, and then conduct a benchmark test with a configuration, product
mix, and user load that simulates your own current and expected workloads. These
conditions can help verify performance before you upgrade your production-ready
environment.
2
- Pre-upgrade steps
Run hcheck.sql
We got a single error in our DB
with the health check sql. We have
ignored it after reading the note ID HCKE-0023: Orphaned SEG$ Entry (Doc ID
1360934.1). “In most cases the SEG$ is
detached from its dictionary entry.” **No Impact. **. If you have more
errors, you need to correct them before moving further.
Now let’s work on missing DB &
APPS Tier ETCC patches, download the latest etcc patch from Patch 17537119
2.1.1 ETCC DB/Apps
missed list
Apply the ETCC DB & Apps patches
as per your ENV. Below patches are for my current ENV. There was no missing for
Apps Tier for me.
21322448
21626377
30758943
31404014
31692949
2.1.2 - Oracle E-Business Suite patches need to apply.
26521736 → 19c
interoperability patch for Release 12.2
31088182
28732161
31349591
31800803 → it contains post steps
30433124
Note- These all patches are AD patches
to be applied in application. Try to complete all these in a single patch
cycle. After applying all these patches we need to create appsutll.zip
directory & copy to 12c Oracle_Home. where you will get txkSetCfgCDB.env config file & txkOnPremPrePDBCreationTasks.pl. Also
complete the below steps to save time in future.
On the current run file system: $ adop phase=prepare, $
adop phase=actualize_all, $ adop phase=finalize, finalize_mode=full, $ adop
phase=cutover.
On the new
run file system: $ adop phase=cleanup cleanup_mode=full
2.1.4 - Create the
initialization parameter setup files
Run
the following commands to create the $ORACLE_HOME/dbs/<ORACLE_SID>_initparam.sql
and $ORACLE_HOME/dbs/<ORACLE_SID>_datatop.txt files.
On
UNIX/Linux:
$
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
IMP : Don’t source any
environment while executing below steps: Oracle Home being
passed: /u02/oracle/VISR12/12.1.0 [oracle@ebsr12
appsutil]$ export ORACLE_SID=VISR12 [oracle@ebsr12
appsutil]$ cd bin [oracle@ebsr12 bin]$ pwd /u02/oracle/VISR12/12.1.0/appsutil/bin [oracle@ebsr12 bin]$
perl txkOnPremPrePDBCreationTasks.pl -dboraclehome=/u02/oracle/VISR12/12.1.0
\ >
-outdir=/u02/oracle/VISR12/12.1.0/appsutil/log -appsuser=apps \ > -dbsid=VISR12
-skipdbshutdown=yes Enter the APPS Password: After this step, the
script will generate below 3 important files
(VISR12_initparam.sql,VISR12_datatop.txt &VISR12_PDBDesc.xml) , which we will need to use while PDB
converion & parameter setup. -rw-r--r-- 1 oracle
dba 3408 Mar 13 12:16 VISR12_initparam.sql -rw-r--r-- 1 oracle
dba 421 Mar 13 12:16
VISR12_datatop.txt -rw-r--r-- 1 oracle
dba 61088 Mar 13 12:16
VISR12_PDBDesc.xml |
2.2
- Database Installation
2.2.1 -Prepare to create the 19c Oracle
home
Create a new home for 19c. (/u02/oracle/VISR12/19.3.0/)
parallel to 12c Home.
⮚
Mkdir
-p /u02/oracle/VISR12/19.3.0/
⮚
Unzip
the 19.3 software into it. You will get all ORACLE_HOME files there with runInstaller.sh
script.
-
set the 19c envà Create this 19c.env file manually & update below variables into
that. We need to use this file multiple times during our upgrade.
⮚
export ORACLE_BASE=/u02/oracle/VISR12
⮚
export
PATH=/u02/oracle/VISR12/19.3.0/perl/bin:/u02/oracle/VISR12/19.3.0/bin:/usr/bin:/usr/sbin:/u02/oracle/VISR12/19.3.0/appsutil/jre/bin:/bin:/usr/bin/X11:/usr/local/bin:/u02/oracle/VISR12/19.3.0/perl/bin:/u02/oracle/VISR12/19.3.0/bin:/usr/bin:/usr/sbin:/u02/oracle/VISR12/19.3.0/appsutil/jre/bin:/bin:/usr/bin/X11:/usr/local/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/oracle/.local/bin:/home/oracle/bin:.:.
⮚
export
ORACLE_HOME=/u02/oracle/VISR12/19.3.0
⮚
export
PERL5LIB=/u02/oracle/VISR12/19.3.0/perl/lib/5.14.1:/u02/oracle/VISR12/19.3.0/perl/lib/site_perl/5.14.1:/u02/oracle/VISR12/19.3.0/appsutil/perl
⮚
export
LD_LIBRARY_PATH=/u02/oracle/VISR12/19.3.0/lib:/usr/X11R6/lib:/usr/openwin/lib:/u02/oracle/VISR12/19.3.0/lib:/usr/dt/lib:/u02/oracle/VISR12/19.3.0/ctx/lib
⮚
export
ORA_NLS10=/u02/oracle/VISR12/19.3.0/nls/data/9idata
/u02/oracle/oraInventory/logs/InstallActions2021-03-13_01-12-22PM/installActions2021-03-13_01-12-22PM.log
Here our 19.3 base installation
completed.
2.2.3 - Now we will apply the additional
patches on top of 19.3.0 Oracle_Home & few additional steps before creating
the CDB.
Apply the latest
Release Update certified for your platform documented in Table 1.6.1 or Table
1.7 of Section 3.3 of My Oracle Support Knowledge Document 1594274.1,
32218454 - 19.10.0 Patch set
32067171
29867728
31405300
31424070
“Download the latest opatch
for 19c version & apply it before applying any patch from this list.
(6880880)”
2.2.4 - 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.
$ perl $ORACLE_HOME/nls/data/old/cr9idata.pl (Do it in 19c Oracle Home).
[oracle@ebsr12 old]$
pwd /u02/oracle/VISR12/19.3.0/nls/data/old [oracle@ebsr12 old]$
perl cr9idata.pl Creating directory
/u02/oracle/VISR12/19.3.0/nls/data/9idata ... Copying files to
/u02/oracle/VISR12/19.3.0/nls/data/9idata... Copy finished. Please reset
environment variable ORA_NLS10 to /u02/oracle/VISR12/19.3.0/nls/data/9idata! |
2.2.5 - Create appsutil.zip and copy it to the database
tier (19c)
[appltest@ebn1
bin]$ cd $AD_TOP/bin
[appltest@ebn1
bin]$ perl admkappsutil.pl
Note
- This steps is for creating a fresh appsutil.zip file & copy to 19c Oracle
Home.
2.2.6 – 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:
$
cd $ORACLE_HOME/appsutil
$
cp -r $ORACLE_HOME/jdk/jre .
$
cp $ORACLE_HOME/jlib/orai18n.jar $ORACLE_HOME/appsutil/jre/lib/ext
Note -
Make sure the ORACLE_HOME is 19c ORACLE_HOME.
2.2.7 - Create the CDB
On
the database server node:
Please
find the screenshot for Database Configuration Assistant (DBCA) to create the
container database (CDB).
Oracle
Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With
the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
--------------------------------------------------------------------------------
AL32UTF8
2.2.8 Run datapatch on the CDB
Use
the following commands to load any necessary patches on the CDB.
On
UNIX/Linux:
$ export ORACLE_SID=<CDB SID>
$
$ORACLE_HOME/OPatch/datapatch
2.2.9 - Create the CDB MGDSYS schema
2.2.10 - Create the CDB TNS files
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.
On
UNIX/Linux:
$
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
2.2.12 Shutdown CDB database
$
sqlplus
"/ as sysdba"
SQL>
Pre-upgrade checks –
[oracle@ebsr12 dbs]$
/u02/oracle/VISR12/12.1.0/jdk/bin/java -jar /u02/oracle/VISR12/19.3.0/rdbms/admin/preupgrade.jar
FILE TEXT DIR /home/oracle/pre-chk_upgrade ================== PREUPGRADE SUMMARY ================== /home/oracle/pre-chk_upgrade/preupgrade.log
/home/oracle/pre-chk_upgrade/preupgrade_fixups.sql /home/oracle/pre-chk_upgrade/postupgrade_fixups.sql Execute fixup scripts
as indicated below: Before upgrade: Log into the database
and execute the preupgrade fixups @/home/oracle/pre-chk_upgrade/preupgrade_fixups.sql After the upgrade: Log into the database
and execute the postupgrade fixups @/home/oracle/pre-chk_upgrade/postupgrade_fixups.sql Preupgrade complete:
2021-03-14T14:37:51 |
SQL>
@/home/oracle/pre-chk_upgrade/preupgrade_fixups.sql Executing Oracle PRE-Upgrade Fixup Script Auto-Generated by: Oracle Preupgrade Script Version: 19.0.0.0.0
Build: 1 Generated on: 2021-03-14 14:37:22 For Source
Database: VISR12 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 ------ ------------------------ ----------
-------------------------------- 1.
invalid_objects_exist NO
Manual fixup recommended. 2.
amd_exists
YES None. 3.
exclusive_mode_auth
NO Manual fixup
recommended. 4.
case_insensitive_auth
NO Manual fixup
recommended. 5.
streams_setup
NO Manual fixup
recommended. 6.
mv_refresh
NO Manual fixup
recommended. 7.
underscore_events
NO Informational only.
Further action is optional. 8.
dictionary_stats
YES None. 9.
parameter_deprecated
NO Informational only.
Further action is optional. 10.
rman_recovery_version NO Informational only.
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. |
2.3 - Database Upgrade
2.3.1 - Complete patching cycle and remove
adop created editions (These were already completed in parallel to save time
before hand.
On
the current run file system:
$
adop phase=prepare
$
adop phase=actualize_all
$
adop phase=finalize finalize_mode=full
$
adop phase=cutover
On
the new run file system:
$
adop phase=cleanup cleanup_mode=full
2.3.2 - Store the UTL_FILE_DIR parameter
values
-oraclehome=/u02/oracle/VISR12/12.1.0
-outdir=/home/oracle \
-upgradedhome=/u02/oracle/VISR12/19.3.0
-mode=getUtlFileDir
-servicetype=onpremise
[oracle@ebsr12 ~]$ perl
$ORACLE_HOME/appsutil/bin/txkCfgUtlfileDir.pl
-contextfile=/u02/oracle/VISR12/12.1.0/appsutil/VISR12_ebsr12.xml
-oraclehome=/u02/oracle/VISR12/12.1.0 -outdir=/home/oracle -upgradedhome=/u02/oracle/VISR12/19.3.0
-mode=getUtlFileDir
-servicetype=onpremise Enter the APPS
Password: Script Name : txkCfgUtlfileDir.pl Script Version :
120.0.12020000.15 Started : Sun Mar 14 13:55:13 EDT 2021 Log File : /home/oracle/TXK_UTIL_DIR_Sun_Mar_14_13_55_10_2021/txkCfgUtlfileDir.log Context file:
/u02/oracle/VISR12/12.1.0/appsutil/VISR12_ebsr12.xml exists. ============================================================================== Successfully generated
the below file with UTL_FILE_DIR content: /u02/oracle/VISR12/12.1.0/dbs/VISR12_utlfiledir.txt ============================================================================== Completed : Sun Mar 14 13:55:14 EDT 2021 Successfully Completed
the script ERRORCODE = 0
ERRORCODE_END [oracle@ebsr12 ~]$ |

This will create file VISR12_utlfiledir.txt under your 12C ORACLE_HOME. Which will contain your UTLFILE dir location info. We need to load these values into 12C DB before upgrading.
Then run again the setUtlFile mode to store the values into the DB. (Else you will get error in the post upgrade.)
perl
$ORACLE_HOME/appsutil/bin/txkCfgUtlfileDir.pl -contextfile=/u02/oracle/VISR12/12.1.0/appsutil/VISR12_ebsr12.xml
\ -oraclehome=/u02/oracle/VISR12/12.1.0
-outdir=/home/oracle \ -upgradedhome=/u02/oracle/VISR12/19.3.0
-mode=setUtlFileDir
-servicetype=onpremise #===========================================================================# # For reference,
original contents of UTL_FILE_DIR without any updates are # # retained in below
file:
# # # # /home/oracle/TXK_UTIL_DIR_Sun_Mar_14_13_55_10_2021/VISR12_utlfiledir.txt ############################################################################# /u02/oracle/VISR12/temp/VISR12 /u02/oracle/VISR12/temp/VISR12 /u02/oracle/VISR12/19.3.0/appsutil/outbound/VISR12_ebsr12 /u02/oracle/VISR12/temp/VISR12 |
2.3.3 - Shut down the application tier server processes
2.3.5
- Shut down the database listener
⮚
[oracle@ebsr12
dbs]$ lsnrctl stop VIR12
2.3.6
- Prepare to upgrade
Ensure that the oratab file contains an entry for the database to be upgraded.
Modify
the following initialization parameters before the upgrade:
⮚
Comment
out all the deprecated initialization parameters. Any necessary parameter will
be added back in after the upgrade.
⮚
Unset
the olap_page_pool_size initialization parameter.
⮚
If
you have an 11g source database, set the PGA_AGGREGATE_TARGET initialization
parameter to at least 10G.
⮚
Set
the SGA_TARGET initialization parameter to at least 2G.
⮚
Add
the event EVENT='10946 trace name context forever, level 8454144'
Shut
down and restart the database to enable the parameters.
2.3.7 - Upgrade the database instance
You can choose your own recover strategies here.
Now you
will see you won’t be able to login to the oracle DB using your EBS env file.
But you will see the DB is still up & running.
After this you won’t be able to login as apps because the
upgrade script removes the sec_case_sensativity_logon automatically from init
file & creates a spfile in 19c ORACLE_HOME/dbs.
You need to make sure you add that parameter back before
moving to next step.
As the ORACLE_HOME
has been changed, you need to export the ORACLE_HOME staying in the Oracle 12c
DB connection putty.
Look carefully, it’s a 12C client connecting 19c DB.
Next,
Ensure that the trigger SYSTEM.EBS_LOGON is valid by connecting to the database using SQL*Plus as SYSDBA and running the following compile command:
SQL> alter
trigger SYSTEM.EBS_LOGON compile;
2.3.9 - Perform
patch post-install instructions
Connect to the database as SYSDBA and run the
following scripts:
SQL> @?/rdbms/admin/dbmsxdbschmig.sql
SQL> @?/rdbms/admin/prvtxdbschmig.plb
SQL>
@?/rdbms/admin/dbmsxdbschmig.sql Session altered. SQL> SET FEEDBACK 1 SQL> SET NUMWIDTH 10 SQL> SET LINESIZE 80 SQL> SET TRIMSPOOL
ON SQL> SET TAB OFF SQL> SET PAGESIZE
100 SQL> SQL> CREATE OR
REPLACE PACKAGE sys.xdb_migrateschema IS 2 | | | | SQL> Rem surman 03/08/13 - 16462837: Common start and
end scripts SQL> Rem surman 03/08/13 - Created SQL> Rem SQL> SQL> alter session
set "_ORACLE_SCRIPT" = false; Session altered. SQL> |
SQL>
@?/rdbms/admin/prvtxdbschmig.plb SQL>
@@?/rdbms/admin/sqlsessstart.sql SQL> Rem SQL> Rem $Header:
rdbms/admin/sqlsessstart.sql /main/3 2018/07/25 13:50:02 surman Exp $ SQL> Rem SQL> Rem MODIFIED
(MM/DD/YY) SQL> Rem surman 05/04/18 - 27464252: Update SQL_PHASE SQL> Rem surman 03/08/13 - 16462837: Common start and
end scripts SQL> Rem surman 03/08/13 - Created SQL> Rem SQL> SQL> alter session
set "_ORACLE_SCRIPT" = false; Session altered. SQL> |
Note - Execute postupgrade_fixups.sql
SQL>
postupgrade_fixups.sql SP2-0734: unknown
command beginning "postupgrad..." - rest of line ignored. SQL>
@postupgrade_fixups.sql Session altered. PL/SQL procedure
successfully completed. PL/SQL procedure
successfully completed. PL/SQL procedure
successfully completed. Package created. No errors. Package body created. PL/SQL procedure
successfully completed. No errors. |
2.4 – Post Database Upgrade
2.4.1 - Run adgrants.sql
Copy $APPL_TOP/admin/adgrants.sql from the administration server node to the database server node. Use SQL*Plus to connect to the database as SYSDBA, and run the script using the following command:
$ sqlplus "/ as sysdba" @adgrants.sql (or adgrants_nt.sql) <apps user>
SQL> @adgrants.sql Connected. PL/SQL procedure successfully completed. --------------------------------------------------- --- adgrants.sql started at 2021-03-15 21:22:10 --- Enter value for 1: apps Creating PL/SQL profiler objects. | | | 12 rows selected. Grants given by this script have been written to
the ad_zd_logs table. You can run $AD_TOP/sql/ADZDSHOWLOG.sql to produce
a report showing these grants. Commit complete. Disconnected from Oracle Database 19c Enterprise
Edition Release 19.0.0.0.0 - Production Version 19.10.0.0.0 [oracle@ebsr12 ~]$ |
2.4.2
- Grant create procedure privilege on CTXSYS
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:
$ sqlplus apps/<apps
password> @adctxprv.sql <SYSTEM password> CTXSYS
2.4.3
- Compile invalid objects
2.4.4
- Grant datastore access
SQL> grant text datastore
access to public;
2.4.5 - Gather statistics for the SYS schema
SQL> alter system enable
restricted session;
SQL> @adstats.sql
$ sqlplus "/ as
sysdba"
SQL> alter system disable
restricted session;
SQL> exit;
Note:
·
At this point there are two databases that are
associated with the 19c Oracle home, the CDB and the non-CDB database.
Moreover, the non-CDB database will be migrated to the PDB database. Set the
appropriate environment variables to connect to the appropriate database
·
Use the txkSetCfgCDB.env under $ORACLE_HOME/appsutil to set
the env every time till migration completes.
·
Take a cold backup. of
the 19c Non-CDB.
2.5.1 Create PDB
Descriptor
We need to create the
necessary PDB XML descriptor files needed using
“txkOnPremPrePDBCreationTasks.pl”. This will also shutdown the database i.e.
19c Non-CDB Database which we have upgraded.
You should not open the
database again till the entire PDB migration process is complete.
[oraVISR12@ebn1 dbs]$ cd
$ORACLE_HOME/appsutil
[oraVISR12@ebn1 appsutil]$
pwd
/u02/oracle/VISR12/19.3.0/appsutil
[oraVISR12@ebn1 appsutil]$ .
./txkSetCfgCDB.env
dboraclehome=/u02/oracle/VISR12/19.3.0
Oracle Home being passed:
/u02/oracle/VISR12/19.3.0
[oraVISR12@ebn1 appsutil]$
export ORACLE_SID=VISR12
[oraVISR12@ebn1 appsutil]$
cd $ORACLE_HOME/appsutil/bin
[oraVISR12@ebn1 bin]$ perl txkOnPremPrePDBCreationTasks.pl
-dboraclehome=/u02/oracle/VISR12/19.3.0 \
-outdir=/u02/oracle/VISR12/19.3.0/appsutil/log
-appsuser=apps -dbsid=VISR12
****Very IMP step: DON’T START 12C DB
till migration completes. **************
2.5.3 Update 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:
On UNIX/Linux:
$ cd $ORACLE_HOME/appsutil
$ . ./txkSetCfgCDB.env
dboraclehome=<full path of ORACLE_HOME>
$ export ORACLE_SID=<CDB
SID>
$ sqlplus "/ as sysdba"
SQL> startup nomount;
SQL>
@$ORACLE_HOME/dbs/<source SID>_initparam.sql
SQL> alter system set
LOCAL_LISTENER="<hostname>:<port number>" scope=both;
SQL> shutdown;
SQL> startup;
[oraVISR12@ebn1 bin]$ cd
$ORACLE_HOME/appsutil [oraVISR12@ebn1 appsutil]$ . ./txkSetCfgCDB.env
dboraclehome=/u02/oracle/VISR12/19.3.0 Oracle Home being passed:
/u02/oracle/VISR12/19.3.0 [oraVISR12@ebn1 appsutil]$
export ORACLE_SID=CDBVIS [oraVISR12@ebn1 appsutil]$
sqlplus "/as sysdba" SQL> startup nomount; SQL> @$ORACLE_HOME/dbs/VISR12_initparam.sql SQL> alter system set
LOCAL_LISTENER=ebsr12:1521" scope=both; System altered. |
2.5.4 - Check for PDB
Violations
Note - Before we migrate to PDB, we need to check for
any violations that will impact the Non-CDB to PDB conversion.
Use the following commands
to run the txkChkPDBCompatability.pl
script. This checks the PDB for any violations.
On UNIX/Linux:
$ cd $ORACLE_HOME/appsutil
$ . ./txkSetCfgCDB.env
dboraclehome=<full path of ORACLE_HOME>
$ export ORACLE_SID=<CDB
SID>
$ cd $ORACLE_HOME/appsutil/bin
$ perl txkChkPDBCompatability.pl
-dboraclehome=<ORACLE_HOME> \
-outdir=<ORACLE_HOME>/appsutil/log
-cdbsid=<CDB SID> \
-pdbsid=<source SID>
-servicetype=onpremise
[oraVISR12@ebn1 appsutil]$
cd $ORACLE_HOME/appsutil [oraVISR12@ebn1 appsutil]$
. ./txkSetCfgCDB.env dboraclehome=/u02/oracle/VISR12/19.3.0 Oracle Home being passed:
/u02/oracle/VISR12/19.3.0 [oraVISR12@ebn1 appsutil]$
export ORACLE_SID=CDBVIS [oraVISR12@ebn1 appsutil]$
cd $ORACLE_HOME/appsutil/bin [oraVISR12@ebn1 bin]$ perl
txkChkPDBCompatability.pl
-dboraclehome=/u02/oracle/VISR12/19.3.0 \ -outdir=/u02/oracle/VISR12/19.3.0/appsutil/log
-cdbsid=CDBVIS -pdbsid=VISR12 -servicetype=onpremise |
More details below
We got few
warnings only no error. So, we are good to go to the PDB creation.
Else you need
to resolve all the violation errors till you get cleared.
2.5.5 - Create the PDB
Load the environment
variables by running the following commands.
On UNIX/Linux:
$ 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
Finally, we have reached the
important step of converting the Non-CDB database to PDB. Before running the PDB creation
script “txkCreatePDB.pl” ensure that you have • Compiled all Invalid Objects • There is enough Disk Space • Check SGA sizing [oraVISR12@ebn1 bin]$ cd
/u02/oracle/VISR12/19.3.0/appsutil [oraVISR12@ebn1 appsutil]$
. ./txkSetCfgCDB.env dboraclehome=/u02/oracle/VISR12/19.3.0 Oracle Home being passed:
/u02/oracle/VISR12/19.3.0 [oraVISR12@ebn1 appsutil]$
cd $ORACLE_HOME/appsutil/bin [oraVISR12@ebn1 bin]$ perl
txkCreatePDB.pl
-dboraclehome=/u02/oracle/VISR12/19.3.0 \ -outdir=/u02/oracle/VISR12/19.3.0/appsutil/log
-cdbsid=CDBVIS -pdbsid=VISR12 \ -dbuniquename=CDBVIS
-servicetype=onpremise |
The PDB
datafile location can be the same as the source datafile location. When prompted with
"Enter the wallet credentials" and "Enter the secret key",
enter the previously specified CDB wallet password and non-CDB secret password
respectively.
And finally, 😊
2.5.6 - Run the post PDB
script
Run the post PDB script. à Very imp (THIS has to be performed from the session where we have exported the PDB SID. Else it will fail.
Use the following commands to run the
txkPostPDBCreationTasks.pl script. This updates the
PDB configuration.
On UNIX/Linux:
$ export
ORACLE_SID=VISR12
Use the following commands
to run the txkPostPDBCreationTasks.pl script. This updates the PDB
configuration.
On UNIX/Linux:
$ 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=<TNS
port number> -servicetype=onpremise
oracle@ebsr12 appsutil]$ .
./txkSetCfgCDB.env dboraclehome=/u02/oracle/VISR12/19.3.0/ Oracle Home being passed: /u02/oracle/VISR12/19.3.0/ [oracle@ebsr12 appsutil]$
perl /u02/oracle/VISR12/19.3.0/appsutil/bin/txkPostPDBCreationTasks.pl
-dboraclehome=/u02/oracle/VISR12/19.3.0 \ >
-outdir=/u02/oracle/VISR12/19.3.0/appsutil/log -cdbsid=CDBVIS -pdbsid=VISR12
\ > -appsuser=apps
-dbport=1521 -servicetype=onpremise Enter the APPS Password: Enter the CDB SYSTEM
Password: Script Name : txkPostPDBCreationTasks.pl Script Version :
120.0.12020000.52 Started : Tue Mar 16 13:59:20 EDT 2021 Log File : /u02/oracle/VISR12/19.3.0/appsutil/log/TXK_POST_PDB_Tue_Mar_16_13_59_06_2021/txkPostPDBCreationTasks.log |
Here you will get 2 ENV files created in your 19c ORACLE_HOME. 1 for PDB & 1 for CDB.
While connecting to EBS database, you can source PDB ENV & connect as shown below.
Now check the DBA registry.
Few post steps like DB link recreate & Reconfigure external node integrations, we skipped as those are not relevant to us & conditional.
2.5.7- Modify
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.
a)
Common Database
Initialization Parameters for All Releases (You may need to verify this)
b)
Release-Specific Database
Initialization Parameters for Oracle 19c. (You may need to verify this)
c)
Additional Database
Initialization Parameters for Oracle E-Business Suite Release 12.2. (You may
need to verify this)
d)
Temporary Tablespace Setup (You
may need to verify this)
e)
Database Initialization
Parameter Sizing (You may need to verify this)
f)
Modify the appsTier context file for
app (We have done only this from /usr/tmp to correct value)
Previous value:
[applmgr@ebsr12
~]$ grep APPLPTMP
$CONTEXT_FILE <APPLPTMP
oa_var="s_applptmp" osd="UNIX">/usr/tmp</APPLPTMP> |
New value:
[applmgr@ebsr12
scripts]$ grep APPLPTMP
$CONTEXT_FILE
<APPLPTMP oa_var="s_applptmp"
osd="UNIX">/u02/oracle/VISR12/temp/VISR12</APPLPTMP> |
2.5.8 - Run AutoConfig on applications tier
2.5.14 - Restart application tier
server processes & validate all.
Issues:
1.
Autoconfig
failing with error, as we missed the setUTL part
+++++++++++++++++++++++++++++++++++++++++++++++++++
UTL_FILE_DIR:
*******FATAL ERROR*******
PROGRAM :
(/u02/oracle/VISR12/19.3.0/appsutil/bin/txkCfgUtlfileDir.pl)
TIME : Tue
Mar 16 20:16:24 2021
FUNCTION: main::getUtlFileDirParam [ Level 1 ]
ERRORMSG: Unable to read UTL_FILE_DIR parameter.
R12 E-Business Suite Technology Stack Post 19c
Upgrade, Running Autoconfig Script txkCfgUtlfileDir.pl
Fails With Fatal Error In FUNCTION:
main::getUtlFileDirParam ERRORMSG: Unable to read UTL_FILE_DIR parameter (Doc
ID 2685022.1)
The above issue came as we missed the setUtlFileDir
script before upgrade.
UTLFILE location was not present in the DB side
.
Create DIR
/u02/oracle/VISR12/temp/
[oracle@ebsr12
oracle]$ mkdir -p /u02/oracle/VISR12/temp/VISR12/
[oracle@ebsr12 oracle]$cd
/u02/oracle/VISR12/temp
[oracle@ebsr12
oracle]$chmod -R 777 VISR12
Then rerun post PDB
script. (This is harmless, can be run multiple times till you correct the
error)
perl
/u02/oracle/VISR12/19.3.0/appsutil/bin/txkPostPDBCreationTasks.pl -dboraclehome=/u02/oracle/VISR12/19.3.0
\
-outdir=/u02/oracle/VISR12/19.3.0/appsutil/log
-cdbsid=CDBVIS -pdbsid=VISR12 \
-appsuser=apps
-dbport=1521 -servicetype=onpremise
*****Make sure to
export ORACLE_SID=VISR12, else you will see error ****
+++++++++++++++++++++++++++++++++++++++++++++++++++++
2.
Error:2
ERROR DESCRIPTION:
(*******FATAL ERROR*******
PROGRAM :
(/u02/oracle/VISR12/19.3.0/appsutil/bin/txkCfgUtlfileDir.pl)
TIME : Tue
Mar 16 20:48:48 2021
FUNCTION: main::checkUtlFileDir [ Level 1 ]
ERRORMSG: Directory object does not exist for path :
/usr/tmp
)
ERRORCODE = 1 ERRORCODE_END
.end std out.
Solution:
***********Make sure the database parameter
local_listener is not set at PDB level . This value should be inherited from
CDB. *************
After the change run "alter system
register;" command so that services will be registered with the listener.
SQL> sho parameter list
------------------------------------ -----------
------------------------------
forward_listener string
listener_networks string
local_listener string ebsr12:1521
remote_listener string
SQL> alter
system set local_listener='';
SQL> sho parameter list
------------------------------------ -----------
------------------------------
forward_listener string
listener_networks string
local_listener string
remote_listener string
SQL> alter system register;
Comments
Post a Comment