This post is continuation of the second part of the post : Part VI
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:
|
cd <$12c_ORACLE_HOME>/dbs
[oraprod@non-prod-db ~]$ cd /dbdata/erp/12.1.0/dbs We altered the PGA_AGGREGATE_TARGET , SGA_TARGET , SGA_MAX_SIZE
parameter value , kept 3gb for pga and 8g for sga for upgrade purpose inside
the EBS_initparam.sql
file [oraprod@non-prod-db dbs]$ cp EBS_initparam.sql EBS_datatop.txt
/dbdata/erp/19.3.0/dbs [oraprod@non-prod-db ~]$ 19cdb_env [oraprod@non-prod-db ~]$ cd $ORACLE_HOME/appsutil [oraprod@non-prod-db
appsutil]$ . ./txkSetCfgCDB.env dboraclehome=/dbdata/erp/19.3.0 Oracle Home being passed: /dbdata/erp/19.3.0 export ORACLE_SID=<CDB SID> -- Use ORACLE_SID OF cdb. Take special
attention as sid is case sensitive. [oraprod@non-prod-db
appsutil]$ export ORACLE_SID=ebscdb [oraprod@non-prod-db
appsutil]$ sqlplus / as sysdba SQL> startup
nomount SQL>
@/dbdata/erp/19.3.0/dbs/EBS_initparam.sql SQL> alter system
set LOCAL_LISTENER="ebsproddb.soumya.com:1521" scope=both; #ensure the port number is correct SQL> SQL> alter system set
processes=1600 scope=spfile; SQL>create pfile
from spfile; SQL>shutdown; SQL>startup
SQL> select
name,open_mode from v$database; NAME OPEN_MODE ---------
-------------------- EBSCDB READ WRITE |
Check for PDB violations
Use the following commands to run the txkChkPDBCompatability.pl script.
This checks the PDB for any violations.
|
$ 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 [oraprod@non-prod-db ~]$ 19cdb_env [oraprod@non-prod-db ~]$ cd $ORACLE_HOME/appsutil [oraprod@non-prod-db
appsutil]$ . ./txkSetCfgCDB.env dboraclehome=/dbdata/erp/19.3.0 Oracle Home being passed: /dbdata/erp/19.3.0 [oraprod@non-prod-db
appsutil]$ export ORACLE_SID=ebscdb [oraprod@non-prod-db
appsutil]$ cd $ORACLE_HOME/appsutil/bin [oraprod@non-prod-db
bin]$ perl txkChkPDBCompatability.pl -dboraclehome=/dbdata/erp/19.3.0
-outdir=/dbdata/erp/19.3.0/appsutil/log -cdbsid=ebscdb -pdbsid=EBS
-servicetype=onpremise Script
Name : txkChkPDBCompatability.pl Script
Version : 120.0.12020000.11 Started : Wed Jun 4 10:51:50 IST 2025 Log
File :
/dbdata/erp/19.3.0/appsutil/log/TXK_CHK_PDB_COMPTABILITY_Wed_Jun_4_10_51_50_2025/txkChkPDBCompatability.log ----------- Values
used ----------- Database
Oracle Home : /dbdata/erp/19.3.0 CDB
SID : ebscdb PDB
SID : EBS OUT
Directory :
/dbdata/erp/19.3.0/appsutil/log Service
Type : onpremise ========================= Validating
oracle home... ========================= Oracle
Home: /dbdata/erp/19.3.0 exists. =========================== Validating
out directory... =========================== Oracle
Home: /dbdata/erp/19.3.0/appsutil/log exists. ============================= Validating
DB service type... ============================= Service
Type: onpremise Service
type is valid. ============================ Inside
setFileLocations()... ============================ PDB_DESC_XML:
/dbdata/erp/19.3.0/dbs/TEST_PDBDesc.xml ****
Setting ORACLE_SID to ebscdb ======================== Inside
getDBVersion()... ======================== DB_VERSION
= db190 ================================= Inside
checkPDBCompatibility()... ================================= File
/dbdata/erp/19.3.0/dbs/TEST_PDBDesc.xml exists. Generating
SQL file :
/dbdata/erp/19.3.0/appsutil/log/TXK_CHK_PDB_COMPTABILITY_Wed_Jun_4_10_51_50_2025/create_pdb_compatible.sql SQL
output file :
/dbdata/erp/19.3.0/appsutil/log/TXK_CHK_PDB_COMPTABILITY_Wed_Jun_4_10_51_50_2025/create_pdb_compatible.out ========================== Inside
executeSQLFile()... ========================== Executing
the SQL... Execute
SYSTEM command : sqlplus -s /nolog
@/dbdata/erp/19.3.0/appsutil/log/TXK_CHK_PDB_COMPTABILITY_Wed_Jun_4_10_51_50_2025/create_pdb_compatible.sql ============================== Inside
searchFileContents()... ============================== log_file:
/dbdata/erp/19.3.0/appsutil/log/TXK_CHK_PDB_COMPTABILITY_Wed_Jun_4_10_51_50_2025/create_pdb_compatible.out pattern:
ERROR ============================= Could not
find the pattern... ============================= EXIT
STATUS: 0 PDB
compatability check executed successfully. LOG FILE:
/dbdata/erp/19.3.0/appsutil/log/TXK_CHK_PDB_COMPTABILITY_Wed_Jun_4_10_51_50_2025/create_pdb_compatible.out. ==================================== Inside
checkPDBPluginViolations()... ==================================== File
/dbdata/erp/19.3.0/dbs/TEST_PDBDesc.xml exists. Generating
SQL file :
/dbdata/erp/19.3.0/appsutil/log/TXK_CHK_PDB_COMPTABILITY_Wed_Jun_4_10_51_50_2025/check_pdb_plugin_violations.sql SQL
output file :
/dbdata/erp/19.3.0/appsutil/log/TXK_CHK_PDB_COMPTABILITY_Wed_Jun_4_10_51_50_2025/check_pdb_plugin_violations.out ========================== Inside
executeSQLFile()... ========================== Executing
the SQL... Execute
SYSTEM command : sqlplus -s /nolog
@/dbdata/erp/19.3.0/appsutil/log/TXK_CHK_PDB_COMPTABILITY_Wed_Jun_4_10_51_50_2025/check_pdb_plugin_violations.sql ============================== Inside
searchFileContents()... ============================== log_file:
/dbdata/erp/19.3.0/appsutil/log/TXK_CHK_PDB_COMPTABILITY_Wed_Jun_4_10_51_50_2025/check_pdb_plugin_violations.out pattern:
ERROR ================ Pattern
found... ================ EXIT
STATUS: 1 Violations
reported for the database 'EBS' to be plugged in. Cannot proceed further. **************************************************************************************** CHECK THE
BELOW LOG FILE FOR VIOLATIONS: /dbdata/erp/19.3.0/appsutil/log/TXK_CHK_PDB_COMPTABILITY_Wed_Jun_4_10_51_50_2025/check_pdb_plugin_violations.out **************************************************************************************** =================================== Inside
checkUNDOMgmtViolations()... =================================== File
/dbdata/erp/19.3.0/dbs/TEST_PDBDesc.xml exists. Generating
SQL file :
/dbdata/erp/19.3.0/appsutil/log/TXK_CHK_PDB_COMPTABILITY_Wed_Jun_4_10_51_50_2025/check_undo_mgmt.sql SQL
output file :
/dbdata/erp/19.3.0/appsutil/log/TXK_CHK_PDB_COMPTABILITY_Wed_Jun_4_10_51_50_2025/check_undo_mgmt.out ========================== Inside
executeSQLFile()... ========================== Executing
the SQL... Execute
SYSTEM command : sqlplus -s /nolog
@/dbdata/erp/19.3.0/appsutil/log/TXK_CHK_PDB_COMPTABILITY_Wed_Jun_4_10_51_50_2025/check_undo_mgmt.sql ============================== Inside
searchFileContents()... ============================== log_file:
/dbdata/erp/19.3.0/appsutil/log/TXK_CHK_PDB_COMPTABILITY_Wed_Jun_4_10_51_50_2025/check_undo_mgmt.out pattern:
ERROR|WARNING ============================= Could not
find the pattern... ============================= EXIT
STATUS: 0 No UNDO
MANAGEMENT violations in the plugged in PDB 'TEST'. Proceed further. **************************************************************************************** CHECK THE
BELOW LOG FILE FOR VIOLATIONS: /dbdata/erp/19.3.0/appsutil/log/TXK_CHK_PDB_COMPTABILITY_Wed_Jun_4_10_51_50_2025/check_undo_mgmt.out **************************************************************************************** **************************************************************************************** *
* * 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
* *
* **************************************************************************************** Exiting
from the script. Ended:
Wed Jun 4 10:51:50 IST 2025 |
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.
Create the PDB
Load the environment variables by running the
following commands:
|
[oraprod@testdb
~]$ 19cdb_env [oraprod@testdb
~]$ cd $ORACLE_HOME/appsutil [oraprod@testdb
appsutil]$ . ./txkSetCfgCDB.env dboraclehome=/dbdata/erp/19.3.0 Oracle
Home being passed: /dbdata/erp/19.3.0 [oraprod@testdb
appsutil]$ cd $ORACLE_HOME/appsutil/bin syntax:- perl
txkCreatePDB.pl -dboraclehome=<ORACLE_HOME>
-outdir=<ORACLE_HOME>/appsutil/log \ -cdbsid=<CDB
SID> -pdbsid=<source SID> -dbuniquename=<CDB SID>
-servicetype=onpremise [oraprod@testdb
appsutil]$ perl txkCreatePDB.pl -dboraclehome=/dbdata/erp/19.3.0
-outdir=/dbdata/erp/19.3.0/appsutil/log -cdbsid=ebscdb -pdbsid=EBS
-dbuniquename=ebscdb -servicetype=onpremise |
|
DATA_TOP_1 =========== Enter the
non-CDB data top [/dbdata/erp/data]: Enter the
corresponding PDB data top [/dbdata/erp/data]: |
Run the post PDB script
Use the following commands to run the txkPostPDBCreationTasks.pl script. This
updates the PDB configuration.
Note:- Before running post pdb script, we need to
disable PASSWORD_VERIFY_FUNCTION function, otherwise it will cause an error
|
[oraprod@testdb
~]$ 19cdb_env [oraprod@testdb
bin]$sqlplus / as sysdba SQL> ALTER PROFILE DEFAULT LIMIT
PASSWORD_VERIFY_FUNCTION NULL; SQL> alter session set container=EBS; SQL> ALTER PROFILE DEFAULT LIMIT
PASSWORD_VERIFY_FUNCTION NULL; SQL>exit; |
|
[oraprod@testdb
~]$ 19cdb_env [oraprod@testdb
~]$ cd $ORACLE_HOME/appsutil [oraprod@testdb
appsutil]$ . ./txkSetCfgCDB.env dboraclehome=/dbdata/erp/19.3.0 Oracle
Home being passed: /dbdata/erp/19.3.0 [oraprod@testdb appsutil]$ cd $ORACLE_HOME/appsutil/bin Syntax:- 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 [oraprod@testdb
appsutil]$ perl $ORACLE_HOME/appsutil/bin/txkPostPDBCreationTasks.pl
-dboraclehome=/dbdata/erp/19.3.0 -outdir=/dbdata/erp/19.3.0/appsutil/log
-cdbsid=ebscdb -pdbsid=EBS -appsuser=apps -dbport=1521 -servicetype=onpremise |
- For
the PDB database on UNIX/Linux platforms, to connect as SYSDBA, source
the $ORACLE_HOME/<CDB
SID>_<HOST>.env file. Set the ORACLE_PDB_SID environment variable to <PDB
SID>. Then, connect as SYSDBA.
- For
the PDB database, to connect to other users, source the $ORACLE_HOME/<PDB
SID>_<HOST>.env file. Then, run sqlplus <user>/<password>@<PDB
SID>.
|
To connect to PDB
as sysdba cd $ORACLE_HOME [oraprod@testdb 19.3.0]$ . ebscdb_ebsproddb.env [oraprod@testdb 19.3.0]$ export
ORACLE_PDB_SID=EBS [oraprod@testdb 19.3.0]$ sqlplus / as sysdba SQL> show pdbs CON_ID
CON_NAME OPEN
MODE RESTRICTED ---------- ------------------------------
---------- ---------- 3
EBS READ
WRITE NO |
To connect CDB as sysdba
|
If opening
in same session, [ebs19cdb@ccuine102 19.3.0]$ . ebscdb_ebsproddb.env unset ORACLE_PDB_SID [ebs19cdb@ccuine102 19.3.0]$ sqlplus / as sysdba SQL> show pdbs CON_ID
CON_NAME OPEN
MODE RESTRICTED ---------- ------------------------------
---------- ---------- 2
PDB$SEED READ
ONLY NO 3
EBS READ
WRITE NO If opening
in a new session, [oraprod@testdb ~]$ 19cdb_env [oraprod@testdb ~]$ cd $ORACLE_HOME [oraprod@testdb 19.3.0]$ . ebscdb_ebsproddb.env [ebs19cdb@ccuine102 19.3.0]$ sqlplus / as
sysdba SQL> show pdbs CON_ID
CON_NAME OPEN
MODE RESTRICTED ---------- ------------------------------
---------- ---------- 2
PDB$SEED READ
ONLY NO 3
EBS READ
WRITE NO |
To connect as non system user into PDB
|
[oraprod@testdb 19.3.0]$ . ebscdb_ebsproddb.env [oraprod@testdb 19.3.0]$ sqlplus apps/apps@ebs SQL> show con_name CON_NAME ------------------------------ EBS |
Important:-
DO NOT CHANGE SQLNET.ALLOWED_LOGON_VERSION_SERVER to any other
version. Keep it default value i.e 10.
To Start and stop Database Listner
|
Do not
invoke any environment file Only
invoke . 19cdb_env file and lsnrctl
start <CDB_SID> lsnrctl
stop <CDB_SID> |
Change parameter:-
|
[oraprod@testdb ~]$ 19cdb_env [oraprod@testdb ~]$ cd $ORACLE_HOME [oraprod@testdb 19.3.0]$ . ebscdb_ebsproddb.env [oraprod@testdb 19.3.0]$ sqlplus / as sysdba SQL> alter system set event='10946 trace name
context forever, level 8454144' scope=spfile; |
Run Autoconfig on the Application tier
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 TNSentry.
|
<TWO_TASK> = (DESCRIPTION = (ADDRESS
= (PROTOCOL=tcp)(HOST=<hostname>.<domain>)(PORT=<port
number>))
(CONNECT_DATA = (SERVICE_NAME=ebs_<PDB
SID>)(INSTANCE_NAME=<CDB SID>)) ) |
Edit tnsnames in run file
system
|
[appltest@testapp
~]$ . /apdata/erp/EBSapps.env run [appltest@testapp
10.1.2]$ cd $TNS_ADMIN [appltest@testapp
admin]$ pwd /apdata/erp/fs1/inst/apps/EBS_ebsprodapp/ora/10.1.2/network/admin [appltest@testapp
admin]$ cp tnsnames.ora tnsnames.ora_060825 [appltest@testapp
admin]$ vi tnsnames.ora EBSCDB= (DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=ebsproddb.soumya.com)(PORT=1521)) (CONNECT_DATA=
(SERVICE_NAME=ebs_EBS)
(INSTANCE_NAME=EBSCDB) ) ) |
Edit tnsnames in patch
file system
|
[appltest@testapp admin]$ . /apdata/erp/EBSapps.env patch [appltest@testapp admin]$ cd $TNS_ADMIN [appltest@testapp admin]$ pwd /apdata/erp/fs2/inst/apps/EBS_ebsprodapp/ora/10.1.2/network/admin [appltest@testapp
admin]$ cp tnsnames.ora tnsnames.ora_060825 [appltest@testapp
admin]$ vi tnsnames.ora EBSCDB= (DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=ebsproddb.soumya.com)(PORT=1521)) (CONNECT_DATA=
(SERVICE_NAME=ebs_EBS)
(INSTANCE_NAME=EBSCDB) ) ) |
Update the
following values in the context file of every Applications tier server node.
This is to be done in both
Run and Patch file system
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
[appltest@testapp 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>
For values of s_dbport we didn’t change anything
, as our old database’s listener port and new 19c db listener port is same.
For value
s_apps_jdbc_connect_descriptor , we need to change the values to null.Yellow
marked part need to be removed.
|
[appltest@testapp
~]$ . /apdata/erp/EBSapps.env run [appltest@testapp 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= ebsproddb.soumya.com)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME= EBS)))</jdbc_url>
Take
backup of CONTEXT_FILE in run file system [appltest@testapp
admin]$ cd /apdata/erp/fs1/inst/apps/EBS_ebsprodapp/appl/admin/ [appltest@testapp
admin]$ cp EBS_ebsprodapp.xml
EBS_ebsprodapp_060825.xml Post
change it should look like this [appltest@testapp
admin]$ grep s_apps_jdbc_connect_descriptor $CONTEXT_FILE <jdbc_url
oa_var="s_apps_jdbc_connect_descriptor"></jdbc_url>
Do the same in patch file system. [appltest@testapp
~]$ . /apdata/erp/EBSapps.env patch [appltest@testapp admin]$ cd
/apdata/erp/fs2/inst/apps/EBS_ebsprodapp/appl/admin [appltest@testapp admin]$ cp EBS_ebsprodapp.xml
EBS_ebsprodapp_060825.xml
Perform the changes as mentioned above. |
|
[appltest@testapp admin]$ grep s_applptmp $CONTEXT_FILE <APPLPTMP
oa_var="s_applptmp"
osd="UNIX">/usr/tmp</APPLPTMP> |
|
[appltest@testapp 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: [oraprod@testdb 19.3.0]$ . ebscdb_ebsproddb.env [oraprod@testdb 19.3.0]$ sqlplus apps@test SQL> select value from v$parameter where name='utl_file_dir'; VALUE -------------------------------------------------------------------------------- /dbdata/erp/temp/EBS,/tmp,/dbdata/erp/19.3.0/appsutil/outbound/TEST_testdb Add the above values for s_applptmp parameter . After change it will
look like below. [appltest@testapp admin]$ grep s_applptmp $CONTEXT_FILE <APPLPTMP
oa_var="s_applptmp" osd="UNIX">/dbdata/erp/temp/TEST
</APPLPTMP> Note:-Only add the 1st entry received from above query. i.e. /dbdata/erp/temp/EBS |
Do above 2 changes in
patch file system. Ensure to take backup of context file in patch file system
before changing.
Run Autoconfig on DB tier
|
[oraprod@testdb ~]$ 19cdb_env [oraprod@testdb ~]$ cd $ORACLE_HOME [oraprod@testdb 19.3.0]$ . ebscdb_ebsproddb.env [oraprod@testdb 19.3.0]$ cd appsutil/scripts/EBS_ebsproddb / [oraprod@testdb TEST_testdb]$ sh adautocfg.sh |
Run AutoConfig on both
patch and run APPL_TOPs using the following command.
|
[appltest@testapp ~]$ . /apdata/erp/EBSapps.env run
[appltest@testapp scripts]$ $INST_TOP/admin/scripts/adautocfg.sh |
Note: Please disable LOGON
TRIGGER disabled . Otherwise it will cause error during execution of autoconfig
in patch file system
|
[oraprod@testdb 19.3.0]$ . ebscdb_ebsproddb.env [oraprod@testdb 19.3.0]$ sqlplus / as sysdba SQL> alter session set container=EBS; SQL> ALTER TRIGGER EBS_SYSTEM.EBS_LOGON DISABLE; |
Now execute autoconfig on
patch file system.
Run autoconfig on patch
file system
|
[appltest@testapp ~]$ . /apdata/erp/EBSapps.env patch
[appltest@testapp ~]$ $INST_TOP/admin/scripts/adautocfg.sh
Enable LOGON_TRIGGER.
SQL> ALTER TRIGGER EBS_SYSTEM.EBS_LOGON ENABLE; |
Now start up application
services
|
[appltest@testapp ~]$ . /apdata/erp/EBSapps.env run [appltest@testapp ~]$ cd
$ADMIN_SCRIPTS_HOME [appltest@testapp scripts]$
adstrtal.sh
|
No comments:
Post a Comment