Why EBS Cloning Is Not Like Standard Oracle Cloning

Cloning an Oracle E-Business Suite 12.2 instance is significantly more involved than cloning a regular Oracle database. EBS has two distinct tiers — the database tier and the applications tier — and each has its own clone procedure. The two tiers must be cloned in coordination, and the post-clone configuration steps are mandatory and non-trivial.

Pre-Clone Checklist

Source Environment


Target Environment

Step 1: Run adpreclone on Source DB Tier

export ORACLE_SID=EBSDEV
perl $ORACLE_HOME/appsutil/scripts/EBSDEV_sourcehost/adpreclone.pl dbTier

Step 2: Run adpreclone on Source Apps Tier

source /u01/install/APPS/EBSapps.env run
perl $AD_TOP/bin/adpreclone.pl appsTier

Step 3: Take RMAN Backup

rman target /
RMAN> BACKUP AS COMPRESSED BACKUPSET DATABASE PLUS ARCHIVELOG;

Step 4: Transfer Files to Target

# Transfer DB appsutil clone template
rsync -avz /backup/staging/ oracle@targetdbhost:/backup/staging/

Transfer apps files (100–300GB)

rsync -avz --progress --exclude='*.log' /u01/install/APPS/ applmgr@targetappshost:/u01/install/APPS/

Step 5: Restore and Configure Target DB Tier

rman target /
RMAN> RESTORE DATABASE FROM '/backup/rman/';
RMAN> RECOVER DATABASE;
RMAN> ALTER DATABASE OPEN RESETLOGS;

Change DB name if needed

nid target=/ dbname=EBSCLONE

Run adcfgclone for the DB tier

perl $ORACLE_HOME/appsutil/clone/bin/adcfgclone.pl dbTier

Step 6: Configure Target Apps Tier

cd $COMMON_TOP/clone/bin
perl adcfgclone.pl appsTier

Runs 30–60 minutes; reconfigures WebLogic domain and autoconfig

Step 7: Post-Clone Configuration

-- Unlock APPS and APPLSYS
ALTER USER APPS IDENTIFIED BY <newpassword> ACCOUNT UNLOCK;
ALTER USER APPLSYS IDENTIFIED BY <newpassword> ACCOUNT UNLOCK;

-- Reset sysadmin password
BEGIN
FND_USER_PKG.UpdateUser(
x_user_name => 'SYSADMIN', x_owner => 'CUST',
x_unencrypted_password => '<newpassword>', x_password_date => SYSDATE
);
COMMIT;
END;
/

Step 8: Services Validation

$ORACLE_HOME/bin/dbstart $ORACLE_HOME
lsnrctl start
tnsping EBSCLONE
$ADMIN_SCRIPTS_HOME/adstartall.sh

Post-Clone Validation

-- Verify DB is open and APPS schema accessible
SELECT GLOBAL_NAME FROM GLOBAL_NAME;
SELECT COUNT(*) FROM APPS.FND_USER;

-- Check for invalid objects
SELECT OWNER, COUNT(*) CNT FROM DBA_OBJECTS
WHERE STATUS = 'INVALID'
GROUP BY OWNER ORDER BY 2 DESC;
-- Run @?/rdbms/admin/utlrp.sql if APPS/APPLSYS have invalids

-- Verify Concurrent Manager
SELECT INSTANCE_NUMBER, STATUS_CODE, RUNNING_PROCESSES
FROM FND_CONCURRENT_QUEUES
WHERE CONCURRENT_QUEUE_NAME = 'STANDARD';

Common Clone Failures

adcfgclone Fails at Relink

ls $ORACLE_HOME/lib/libclntsh.so.*  # missing = ORACLE_HOME not transferred correctly

tnsping Works but Apps Cannot Connect to DB

sqlplus apps/<pwd>@EBSCLONE  # test from apps tier OS user

WebLogic Admin Server Not Starting

grep -r "listen-address" $FMW_HOME/user_projects/domains/EBS_domain/config/config.xml

Ensure all addresses match the new target hostname