11 Oracle EBS 12.2.14 Clone with 19c Database

 

Comprehensive Guide: Cloning Oracle E-Business Suite Release 12.2 with Multitenant Database

Overview

This article provides a detailed step-by-step guide for cloning an Oracle E-Business Suite Release 12.2 environment with a Multitenant (CDB/PDB) database using Oracle Rapid Clone. The process covers the complete migration from a source system to a target system, including database and application tier configuration.


Prerequisites

Before beginning the cloning process, ensure the following:

  • Source and target systems meet Oracle E-Business Suite 12.2 hardware and software requirements

  • All prerequisite operating system packages and libraries are installed on the target server

  • Appropriate directory structures and file permissions are created on the target system

  • Network connectivity exists between source and target systems

  • Sufficient disk space is available for backup and binaries

  • All required Oracle patches are accessible from My Oracle Support


Section 1: Source System Preparation

1.1 Verify Database and Listener Status

Before running the pre-clone utility, confirm that the CDB listener and database (both CDB and PDB) are operational.

Check Database Status:

sql
SQL> select name, open_mode from v$database;

NAME      OPEN_MODE
--------- --------------------
FUNCDB    READ WRITE

Check PDB Status:

sql
SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 FBS                            READ WRITE NO

1.2 Verify ETCC Directory

Ensure the EBS Technology Codelevel Checker (ETCC) directory exists in the Oracle home appsutil folder:

bash
/u01/app/FBS/db/tech_st/19c/appsutil/etcc

If the directory is missing, create it:

bash
mkdir -p /u01/app/FBS/db/tech_st/19c/appsutil/etcc

Download and Configure ETCC:

  1. Download patch 17537119 (latest version) from My Oracle Support

  2. Unzip the patch contents to the ETCC directory

  3. Run the ETCC checker script to identify any missing database patches:

bash
/u01/app/FBS/db/tech_st/19c/appsutil/etcc/checkDBpatch.sh

Important: Source the PDB environment file before running the ETCC checker.

1.3 Run AD Pre-Clone Utility on Database Node

Source the PDB Environment:

bash
cd $ORACLE_HOME
. <PDB_NAME>_hostname.env

Execute Database Tier Pre-Clone:

bash
cd $ORACLE_HOME/appsutil/scripts/$CONTEXT_NAME
perl adpreclone.pl dbTier

During execution, you will be prompted for:

  • APPS User Password

  • The utility will run ETCC and verify the database configuration

1.4 Run AD Pre-Clone Utility on Application Node

Source the Run Filesystem:

bash
. EBSapps.env run
cd $ADMIN_SCRIPTS_HOME

Execute Application Tier Pre-Clone:

bash
perl adpreclone.pl appsTier

You will be prompted for:

  • APPS User Password

  • Weblogic AdminServer password

Note: The Weblogic Admin Server must be running during this process. The utility verifies the Admin Server status before proceeding.


Section 2: Backup and Binary Transfer

2.1 Take RMAN Backup of the CDB Database

Perform a full CDB database backup using RMAN hot backup methodology:

Source the CDB Environment:

bash
cd $ORACLE_HOME
. <CDB_NAME>_hostname.env

Execute RMAN Backup:

bash
rman target /
RMAN> run {
  allocate channel c1 type disk;
  allocate channel c2 type disk;
  BACKUP as compressed backupset FULL FILESPERSET 10 
    FORMAT '/backup_location/FBS_D_%s_%p_%t.bak' DATABASE;
  BACKUP as compressed backupset filesperset 10 
    FORMAT '/backup_location/FBS_A_%s_%p_%t.bak' ARCHIVELOG ALL skip inaccessible;
  BACKUP FORMAT '/backup_location/FBS_C_%s_%p_%t.bak' CURRENT CONTROLFILE;
  RELEASE CHANNEL c1;
  RELEASE CHANNEL c2;
}

Performance Note: If you have more CPU threads, increase the number of channels for better backup performance.

Copy Backup to Target Server:

  • If using a shared file system, the backup is directly accessible on the target

  • Otherwise, transfer the backup files to the target server using scp, rsync, or similar methods

2.2 Transfer Source Binaries to Target

Database Binaries:

bash
# On source database node
tar -zcvf /u01/backup/19c_home.tar.gz 19c

# Copy to target node
# On target database node
mkdir -p /u01/app/FBS/db/tech_st
cp /u01/backup/19c_home.tar.gz /u01/app/FBS/db/tech_st/
cd /u01/app/FBS/db/tech_st
tar -zxvf 19c_home.tar.gz
rm -rf 19c_home.tar.gz

Application Tier Binaries:

bash
# On source application node - tar the RUN FS (fs1 in this example)
tar -zcvf /u01/backup/EBSapps_fs1_run.tar.gz EBSapps

# On target application node
mkdir -p /u01/app/FBS/fs1 /u01/app/FBS/fs2 /u01/app/FBS/fs_ne
cd /u01/app/FBS/fs1
cp /u01/backup/EBSapps_fs1_run.tar.gz .
tar -zxvf EBSapps_fs1_run.tar.gz
rm -rf EBSapps_fs1_run.tar.gz

Section 3: Target Server Configuration

3.1 Configure Oracle Home on Database Node

Create DB Context File:

Navigate to the clone bin directory and run the adclonectx.pl utility:

bash
cd /u01/app/FBS/db/tech_st/19c/appsutil/clone/bin
perl adclonectx.pl contextfile=/u01/app/FBS/db/tech_st/19c/appsutil/FBS_fbsebs.xml \
  template=/u01/app/FBS/db/tech_st/19c/appsutil/template/adxdbctx.tmp

You will be prompted to provide:

  • Target System Hostname

  • Target System Base Directory

  • Target System CDB Name

  • Target System PDB Name

  • Oracle OS User and Group

  • Number of DATA_TOP directories

  • RDBMS ORACLE_HOME location

  • Display settings

  • Port configuration (source or custom)

Configure Database Technology Stack:

bash
cd /u01/app/FBS/db/tech_st/19c/appsutil/clone/bin
unset which
export CV_ASSUME_DISTID=OEL7.9
perl adcfgclone.pl dbTechStack /u01/app/FBS/db/tech_st/19c/appsutil/FBS_ebsdomo.xml

3.2 Create Listener and TNS Configuration

Set Environment Variables:

bash
export ORACLE_HOME=/u01/app/FBS/db/tech_st/19c
export PATH=$ORACLE_HOME/perl/bin:$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME:$ORACLE_HOME/lib
export PERL5LIB=$ORACLE_HOME/perl/lib/5.28.2:$ORACLE_HOME/perl/site_perl/5.28.2:$ORACLE_HOME/appsutil/perl
export PATH=$ORACLE_HOME/perl:$ORACLE_HOME/perl/lib:$ORACLE_HOME/perl/bin:$PATH

Configure CDB Settings:

bash
cd $ORACLE_HOME/appsutil
./txkSetCfgCDB.env -dboraclehome=$ORACLE_HOME

Generate TNS Admin Files:

bash
cd $ORACLE_HOME/appsutil/bin
perl txkGenCDBTnsAdmin.pl -dboraclehome=$ORACLE_HOME \
  -cdbname=cdbfbs -cdbsid=cdbfbs -dbport=1551 \
  -outdir=$ORACLE_HOME/appsutil/log -israc=no

3.3 Start the Listener

bash
cd $ORACLE_HOME/appsutil/scripts/FBS_ebsdomo
./addlnctl.sh start cdbfbs

Note: If the source instance is at R12.TXK.C.DELTA.12 codelevel, the listener start command may exit with status 1. This can be ignored as the database hasn't been restored yet.


Section 4: Database Restore and Recovery

4.1 Prepare Database Parameters

Copy and Modify the Initialization File:

bash
cd $ORACLE_HOME/dbs
cp initfbscdb.ora initcdbfbs.ora

Add Required Parameters to initcdbfbs.ora:

bash
DB_FILE_NAME_CONVERT=(+EBS_DATA,+EBS_DATA)
LOG_FILE_NAME_CONVERT=(+EBS_DATA,+EBS_DATA)
*.local_listener='(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=target_hostname)(PORT=1551)))'
*.db_name='CDBFBS'

Create the ADUMP Directory:

bash
mkdir -p /u01/app/FBS/db/admin/fbscdb/adump

4.2 Restore the Database

Start Database in NOMOUNT State:

bash
cd /u01/app/FBS/db/tech_st/19c
. CDBFBS_ebsdomo.env
sqlplus '/as sysdba'
startup nomount pfile='/u01/app/FBS/db/tech_st/19c/dbs/initCDBFBS.ora'

Execute RMAN Duplicate:

bash
rman target /
RMAN> run {
  allocate auxiliary channel c1 device type disk;
  allocate auxiliary channel c2 device type disk;
  duplicate database to 'cdbfbs' backup location '/backup_location' nofilenamecheck;
  release channel c1;
  release channel c2;
}

Verify Database Open Status:

sql
SQL> select name, open_mode from v$database;

NAME      OPEN_MODE
--------- --------------------
BEECDB    READ WRITE

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 FBS                            READ WRITE NO

Section 5: Post-Restore Database Configuration

5.1 Rename PDB (Optional)

If the target PDB name needs to be different from the source:

Check for Existing Services:

sql
export ORACLE_SID=cdbfbs
sqlplus '/as sysdba'
alter session set container="FBS";
select count(*) from cdb_services c, service$ s 
where upper(s.name) = upper('TARGET_PDB_NAME') 
and s.deletion_date is null and s.name = c.name;

Rename the PDB:

sql
alter pluggable database "SOURCE_PDB" close;
alter pluggable database "SOURCE_PDB" unplug into '$ORACLE_HOME/dbs/SOURCE_PDB.xml';
drop pluggable database "SOURCE_PDB";
create pluggable database "NEW_PDB" using '$ORACLE_HOME/dbs/SOURCE_PDB.xml' 
  NOCOPY SERVICE_NAME_CONVERT=('ebs_SOURCE','ebs_TARGET','SOURCE_ebs_patch','TARGET_ebs_patch');
alter pluggable database "NEW_PDB" open read write;

Notes:

  • PDB name should not exceed 8 characters

  • Preserve the case of the PDB name during renaming

5.2 Save PDB State and Run Library Update

Save PDB State:

sql
alter pluggable database all open;
alter pluggable database all save state instances=all;

Run Library Update Script:

bash
cd $ORACLE_HOME/appsutil/install/$CONTEXT_NAME
sqlplus '/as sysdba' @adupdlib.sql so

5.3 Configure UTL_FILE_DIR

Get Current UTL_FILE_DIR Values:

bash
perl $ORACLE_HOME/appsutil/bin/txkCfgUtlfileDir.pl \
  -contextfile=$ORACLE_HOME/appsutil/FBS_ebsdomo.xml \
  -oraclehome=$ORACLE_HOME \
  -outdir=$ORACLE_HOME/appsutil/log \
  -mode=getUtlFileDir

Review and Edit the Generated File:

bash
cat $ORACLE_HOME/dbs/FBS_utlfiledir.txt
# Edit to reflect target instance paths

Create Required Directories:

bash
mkdir -p /u01/app/FBS/db/tech_st/temp/FBS
mkdir -p /u01/app/FBS/db/tech_st/19c/appsutil/outbound/FBS_ebsdomo

Set UTL_FILE_DIR Values:

bash
perl $ORACLE_HOME/appsutil/bin/txkCfgUtlfileDir.pl \
  -contextfile=$ORACLE_HOME/appsutil/FBS_ebsdomo.xml \
  -oraclehome=$ORACLE_HOME \
  -outdir=$ORACLE_HOME/appsutil/log \
  -mode=setUtlFileDir

Create Directory Objects:

bash
perl $ORACLE_HOME/appsutil/bin/txkCfgUtlfileDir.pl \
  -contextfile=$ORACLE_HOME/appsutil/FBS_ebsdomo.xml \
  -oraclehome=$ORACLE_HOME \
  -outdir=$ORACLE_HOME/appsutil/log \
  -mode=createDirObject
# Enter the s_outbound_dir path when prompted

Sync UTL_FILE_DIR Values:

bash
perl $ORACLE_HOME/appsutil/bin/txkCfgUtlfileDir.pl \
  -contextfile=$ORACLE_HOME/appsutil/FBS_ebsdomo.xml \
  -oraclehome=$ORACLE_HOME \
  -outdir=$ORACLE_HOME/appsutil/log \
  -mode=syncUtlFileDir -skipautoconfig=yes

5.4 Configure the Target Database

Run Database Configuration:

bash
cd $ORACLE_HOME/appsutil/clone/bin
. $ORACLE_HOME/FBS_ebsdomo.env
perl adcfgclone.pl dbconfig $ORACLE_HOME/appsutil/FBS_ebsdomo.xml

Section 6: Configure Target Application Node

6.1 Clean Up and Prepare Directories

If this is a refresh of an existing test instance, clean up the PATCH FS, FS_NE, and oraInventory directories. For a new server, ensure all required directories exist.

6.2 Run Application Tier Configuration

bash
cd /u01/app/FBS/fs1/EBSapps/comn/clone/bin/
perl ./adcfgclone.pl appsTier dualfs

You will be prompted for:

  • APPS password

  • Weblogic AdminServer password

  • Target System Hostname

  • Target System Database SID

  • Target System Database Server Node

  • Database Domain Name

  • Target System Base Directory

  • Display settings

  • Service enablement options

  • Port configuration (source or custom)

6.3 Start Application Services

When prompted during configuration, select "y" to start application services, or start them manually:

bash
cd /u01/app/FBS/fs1/inst/apps/FBS_ebsdomo/admin/scripts
./adstrtal.sh

The startup process will sequentially start:

  1. Fulfillment Server

  2. Oracle Process Manager (OPMN)

  3. Oracle HTTP Server (OHS)

  4. Node Manager

  5. Concurrent Managers

  6. WebLogic Admin Server

  7. Managed Servers (forms, oafm, oacore)


Section 7: Post-Clone Validation

7.1 Verify Database Services

Check Database Status:

sql
select name, open_mode from v$database;
show pdbs

Check Listener Status:

bash
lsnrctl status cdbfbs

7.2 Verify Application Services

Check Application Status:

bash
cd /u01/app/FBS/fs1/inst/apps/FBS_ebsdomo/admin/scripts
./adopmnctl.sh status
./adalnctl.sh status
./adapcctl.sh status

Access the Application:

  • Navigate to http://target_hostname:port/OA_HTML/AppsLogin

  • Verify login functionality with APPS credentials

7.3 Test Concurrent Processing

Submit a simple concurrent request to verify Concurrent Manager functionality.

7.4 Review Log Files

Check for any errors in the following locations:

  • Database: $ORACLE_HOME/appsutil/log/$CONTEXT_NAME/

  • Application: /u01/app/FBS/fs1/inst/apps/FBS_ebsdomo/logs/


Troubleshooting Common Issues

Database Connectivity Issues

If ETCC reports database connectivity issues:

  • Verify the listener is running

  • Check tnsnames.ora configuration

  • Ensure the PDB is open

  • Validate environment variable settings

Port Conflicts

If port values are already in use:

  • Use the n option when prompted to preserve source ports

  • Specify alternative ports during configuration

  • Check /etc/services for port allocation

Missing Directories

Ensure all directories referenced in the context file exist:

  • $ORACLE_HOME/appsutil/outbound/

  • $ORACLE_HOME/appsutil/log/

  • $ORACLE_HOME/dbs/

  • Application tier log directories

FMW Pre-requisite Issues

Review the FMW pre-requisite check log:

bash
/u01/app/FBS/fs1/EBSapps/comn/clone/FMW/logs/prereqcheck.log

References

  • Oracle Documentation: Cloning Oracle E-Business Suite Release 12.2 with Multitenant Database using Rapid Clone (Doc ID 2552208.1)

  • My Oracle Support: Patch 17537119 - Latest ETCC Version

  • Oracle E-Business Suite Installation Guide: Release 12.2


Summary

This comprehensive guide provides a proven methodology for cloning Oracle E-Business Suite Release 12.2 with Multitenant databases. Key steps include:

  1. Preparation: Running pre-clone utilities on source system

  2. Backup: Creating RMAN backups and transferring binaries

  3. Configuration: Setting up target database and application nodes

  4. Restoration: Restoring the database using RMAN duplicate

  5. Post-Configuration: Configuring UTL_FILE_DIR and database settings

  6. Application Setup: Running application tier configuration

  7. Validation: Verifying all services are operational

Following these steps ensures a successful clone with minimal downtime and maintains data integrity throughout the process.


No comments:

Post a Comment