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> select name, open_mode from v$database; NAME OPEN_MODE --------- -------------------- FUNCDB READ WRITE
Check PDB Status:
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:
/u01/app/FBS/db/tech_st/19c/appsutil/etcc
If the directory is missing, create it:
mkdir -p /u01/app/FBS/db/tech_st/19c/appsutil/etcc
Download and Configure ETCC:
Download patch 17537119 (latest version) from My Oracle Support
Unzip the patch contents to the ETCC directory
Run the ETCC checker script to identify any missing database patches:
/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:
cd $ORACLE_HOME . <PDB_NAME>_hostname.env
Execute Database Tier Pre-Clone:
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:
. EBSapps.env run cd $ADMIN_SCRIPTS_HOME
Execute Application Tier Pre-Clone:
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:
cd $ORACLE_HOME . <CDB_NAME>_hostname.env
Execute RMAN Backup:
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:
# 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:
# 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:
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:
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:
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:
cd $ORACLE_HOME/appsutil ./txkSetCfgCDB.env -dboraclehome=$ORACLE_HOME
Generate TNS Admin Files:
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
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:
cd $ORACLE_HOME/dbs cp initfbscdb.ora initcdbfbs.ora
Add Required Parameters to initcdbfbs.ora:
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:
mkdir -p /u01/app/FBS/db/admin/fbscdb/adump
4.2 Restore the Database
Start Database in NOMOUNT State:
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:
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> 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:
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:
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:
alter pluggable database all open; alter pluggable database all save state instances=all;
Run Library Update Script:
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:
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:
cat $ORACLE_HOME/dbs/FBS_utlfiledir.txt # Edit to reflect target instance paths
Create Required Directories:
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:
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:
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:
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:
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
cd /u01/app/FBS/fs1/EBSapps/comn/clone/bin/
perl ./adcfgclone.pl appsTier dualfsYou 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:
cd /u01/app/FBS/fs1/inst/apps/FBS_ebsdomo/admin/scripts
./adstrtal.shThe startup process will sequentially start:
Fulfillment Server
Oracle Process Manager (OPMN)
Oracle HTTP Server (OHS)
Node Manager
Concurrent Managers
WebLogic Admin Server
Managed Servers (forms, oafm, oacore)
Section 7: Post-Clone Validation
7.1 Verify Database Services
Check Database Status:
select name, open_mode from v$database; show pdbs
Check Listener Status:
lsnrctl status cdbfbs
7.2 Verify Application Services
Check Application Status:
cd /u01/app/FBS/fs1/inst/apps/FBS_ebsdomo/admin/scripts
./adopmnctl.sh status
./adalnctl.sh status
./adapcctl.sh statusAccess the Application:
Navigate to
http://target_hostname:port/OA_HTML/AppsLoginVerify 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
noption when prompted to preserve source portsSpecify alternative ports during configuration
Check
/etc/servicesfor 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:
/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:
Preparation: Running pre-clone utilities on source system
Backup: Creating RMAN backups and transferring binaries
Configuration: Setting up target database and application nodes
Restoration: Restoring the database using RMAN duplicate
Post-Configuration: Configuring UTL_FILE_DIR and database settings
Application Setup: Running application tier configuration
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