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
- EBS is at a clean state — no active ADOP patch cycles, no pending concurrent requests
- Both DB and apps services are running normally
- Autoconfig ran successfully in the last 24 hours
Target Environment
- Target OS is the same version as source
- Oracle DB software installed to same ORACLE_HOME path as source
- EBS software will be cloned — do not pre-install EBS on target
- Sufficient disk space on both tiers
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