Oracle E-Business Suite R12.2.14 Clone with Oracle 19c Database
Oracle E-Business Suite R12.2.14 Clone with Oracle 19c Database
Source System
- Hostname: prodr12.githesh.com
- Base Directory: /u03/oracle/PROD
- 19C_ORACLE_HOME: /u03/oracle/PROD/19.0.0/
- DATAFILE LOCATION: /u01/oracle/
- CDB NAME: PRODCDB
- PDB NAME: PROD
Oracle EBS and Database Version Information
SQL> select release_name from apps.fnd_product_groups;
RELEASE_NAME
--------------------------------------------------
12.2.14
SQL> SELECT version, version_full FROM v$instance;
VERSION VERSION_FULL
----------------- -----------------
19.0.0.0.0 19.19.0.0.0
Pre-Clone Steps
Application Tier
cd $ADMIN_SCRIPTS_HOME
./adpreclone.pl appsTier
Database Tier
cd /u03/oracle/PROD/19.0.0/appsutil/scripts/PROD_prodr12/
./adpreclone.pl dbTier
Backup Steps
- RDBMS ORACLE HOME: /u03/oracle/PROD/19.0.0
-
Backup Command:
tar cfvz /backup/19c_home.tz /u03/oracle/PROD/19.0.0
-
RMAN Backup Script:
#!/bin/bash
# Source the Oracle environment
if [ -f ~/.bash_profile ]; then
source ~/.bash_profile
fi
LOG_FILE="/home/oraprod/backup_PRODCDB_${DATE}.log"
BACKUP_DIR="/backup/"
mkdir -p ${BACKUP_DIR}
${ORACLE_HOME}/bin/rman target / log=${LOG_FILE} <<EOF
run {
allocate channel d1 type disk;
allocate channel d2 type disk;
allocate channel d3 type disk;
backup AS COMPRESSED BACKUPSET format '${BACKUP_DIR}/PRODCDB_bu_db_%d_t%t_s%s_p%p' database;
sql 'alter system archive log current';
backup AS COMPRESSED BACKUPSET format '${BACKUP_DIR}/PRODCDB_bu_al_t%t_s%s_p%p' archivelog all skip inaccessible delete input;
backup format '${BACKUP_DIR}/PRODCDB_control%U' current controlfile;
release channel d1;
release channel d2;
release channel d3;
allocate channel d1 type disk;
crosscheck backup;
release channel d1;
}
EOF
if [ $? -eq 0 ]; then
echo "RMAN backup completed successfully. Backup files are stored in ${BACKUP_DIR}."
else
echo "RMAN backup failed. Check the log file: ${LOG_FILE}" >&2
exit 1
fi
-
Application File System Backup:
tar cfvz /backup/appliation_file.tz /u03/oracle/PROD/fs1/EBSapps
Target System
- Hostname: cloner12.githesh.com
- Base Directory: /u03/oracle/PROD
- 19C_ORACLE_HOME: /u03/oracle/PROD/19.0.0/
- DATAFILE LOCATION: /u01/oracle/
- CDB NAME: DEVCDB
- PDB NAME: DEV
Clone Steps
-
Generate Context File for Database:
cd /u03/oracle/PROD/19.0.0/appsutil/clone/bin/
perl adclonectx.pl contextfile=/u03/oracle/PROD/19.0.0/appsutil/PROD_prodr12.xml template=/u03/oracle/PROD/19.0.0/appsutil/template/adxdbctx.tmp
-
Clone Database Technology Stack:
cd /u03/oracle/PROD/19.0.0/appsutil/clone/bin
perl adcfgclone.pl dbTechStack /u03/oracle/PROD/19.0.0/appsutil/DEV_cloner12.xml
-
Rename and Edit pfile, Set Environment, Start DB in nomount:
. DEVCDB_cloner12.env
sqlplus / as sysdba
SQL> startup nomount;
SQL> ALTER SYSTEM SET DB_FILE_NAME_CONVERT = '/u01/oracle/PROD/oradata/PRODCDB', '/u01/oracle/DEV/oradata/DEVCDB' ;
SQL> ALTER SYSTEM SET LOG_FILE_NAME_CONVERT='/u01/oracle/PROD/oradata/PRODCDB', '/u01/oracle/DEV/oradata/DEVCDB' ;
-
Restore RMAN Backup:
$ORACLE_HOME/bin/rman auxiliary / log=rman.log <<EOF
run
{
allocate auxiliary channel C1 device type disk;
allocate auxiliary channel C2 device type disk;
allocate auxiliary channel C3 device type disk;
allocate auxiliary channel C4 device type disk;
allocate auxiliary channel C5 device type disk;
allocate auxiliary channel C6 device type disk;
DUPLICATE DATABASE TO "DEVCDB" BACKUP LOCATION '/u03/backup/18062025' nofilenamecheck;
}
-
PDB Configuration:
sqlplus / as sysdba
SQL> alter pluggable database PROD close immediate;
SQL> alter pluggable database PROD unplug into '/u03/oracle/PROD/19.0.0/dbs/PROD.xml';
SQL> drop pluggable database PROD;
SQL> create pluggable database DEV using '/u03/oracle/PROD/19.0.0/dbs/PROD.xml' NOCOPY SERVICE_NAME_CONVERT=('DEV','PROD');
SQL> alter pluggable database DEV open read write;
SQL> alter pluggable database all open;
SQL> alter pluggable database all save state instances=all;
-
Configure the Database:
cd $ORACLE_HOME/appsutil
. ./txkSetCfgCDB.env dboraclehome=/u03/oracle/PROD/19.0.0
-
TNS Configuration:
cd $ORACLE_HOME/appsutil/bin
perl txkGenCDBTnsAdmin.pl -dboraclehome=/u03/oracle/PROD/19.0.0 -cdbname=DEVCDB -cdbsid=DEVCDB -dbport=1526 -outdir=/u03/oracle/PROD/19.0.0/appsutil/log
-
Register Local Listener:
sqlplus / as sysdba
SQL> alter system set LOCAL_LISTENER='cloner12:1526' scope=both;
SQL> alter system register;
SQL> alter user system identified by manager;
SQL> alter session set container=DEV;
SQL> alter trigger SYSTEM.EBS_LOGON compile;
-
Post-PDB Creation Tasks:
cd $ORACLE_HOME/appsutil
. ./txkSetCfgCDB.env dboraclehome=/u03/oracle/PROD/19.0.0
perl $ORACLE_HOME/appsutil/bin/txkPostPDBCreationTasks.pl -dboraclehome=/u03/oracle/PROD/19.0.0 -outdir=/u03/oracle/PROD/19.0.0/appsutil/log -cdbsid=DEVCDB -pdbsid=DEV -appsuser=apps -dbport=1526 -servicetype=onpremise
-
Setup Utility File Directory:
cd $ORACLE_HOME
. DEV_cloner12.env
# Rename and modify the PROD_utlfiledir.txt to DEV_utlfiledir.txt ($ORACLE_HOME/dbs)
tail -n 6 DEV_utlfiledir.txt
mkdir -p /u03/oracle/PROD/temp/DEV
mkdir -p /u03/oracle/PROD/19.0.0/appsutil/outbound/DEV_cloner12
perl $ORACLE_HOME/appsutil/bin/txkCfgUtlfileDir.pl -contextfile=$CONTEXT_FILE -oraclehome=$ORACLE_HOME -outdir=$ORACLE_HOME/appsutil/log -mode=setUtlFileDir
perl $ORACLE_HOME/appsutil/bin/txkCfgUtlfileDir.pl -contextfile=$CONTEXT_FILE -oraclehome=$ORACLE_HOME -outdir=$ORACLE_HOME/appsutil/log -mode=syncUtlFileDir
-
Run POST-CLONE for Application Tier:
cd /u03/oracle/PROD/fs1/EBSapps/comn/clone/bin
./adcfgclone.pl appsTier dualfs
Check Application URL
grep -e "s_external_url" $CONTEXT_FILE
# Example output:
http://cloner12.githesh.com:8005