4.b Clone an EBS R12.1.3 application along with Database 19.26.0.0

  

Comprehensive Guide: Cloning Oracle E-Business Suite R12.1.3 with 19c Database

Overview

This article provides a detailed, step-by-step procedure for cloning an Oracle E-Business Suite Release 12.1.3 environment with a 19c Oracle Database from a source system to a target system. The process covers all prerequisites, pre-clone activities, backup procedures, and post-clone configuration steps.

Environment Specifications

Source Environment

ComponentDetails
EBS VersionR12.1.3
Database Version19.0.0.0
SIDFBS
Serverfbstest.finsys.co.ke
DB OS Useroracle
Apps OS Userapplmgr
OEL Version8.10

Target Environment

ComponentDetails
EBS VersionR12.1.3
Database Version19.26.0.0
SIDVIS
Serverebstest.finsys.co.ke
DB OS Useroracle
Apps OS Userapplmgr
OEL Version8.10

Phase 1: Pre-Requisite Steps for Source Environment

1.1 Application Tier Patches

Before initiating the cloning process, apply the following critical patches on the source application tier:

Patch NumberDescription
23569686R12.AD.B.delta.8
27102203TXK AutoConfig Template Rollup patch
2713542712.1 RAPIDCLONE CONSOLIDATED FIXES AUG/2018

Verification Step:

sql
-- Verify bug fixes are applied
select bug_number from ad_bugs where bug_number in 
('9171651','9833058','12404574','12598630','15969020',
 '16958896','13942692','8919489');

1.2 Post-Patch Configuration

Step 1: Run AutoConfig on the application tier:

bash
[applmgr@fbstest ~]$ cd $ADMIN_SCRIPTS_HOME
[applmgr@fbstest ~]$ ./adautocfg.sh

Step 2: Source the environment and recreate appsutil:

bash
[applmgr@fbstest ~]$ cd $APPL_TOP
[applmgr@fbstest ~]$ . APPSFBS_fbstest.env 
[applmgr@fbstest ~]$ perl $AD_TOP/bin/admkappsutil.pl

Expected Output:

text
Starting the generation of appsutil.zip
Log file located at /u01/apps/FBS/inst/apps/FBS_fbstest/admin/log/MakeAppsUtil_12011758.log
output located at /u01/apps/FBS/inst/apps/FBS_fbstest/admin/out/appsutil.zip
MakeAppsUtil completed successfully.

1.3 Copy appsutil to Database Tier

Step 1: Copy appsutil.zip to the database ORACLE_HOME:

bash
[oracle@fbstest ~]$ . fbscdb.env
[oracle@fbstest ~]$ cd $ORACLE_HOME
[oracle@fbstest 19c]$ mv appsutil.zip appsutil.zip_orig
[oracle@fbstest 19c]$ cp /u01/apps/FBS/inst/apps/FBS_fbstest/admin/out/appsutil.zip .
[oracle@fbstest 19c]$ unzip -o appsutil.zip

Step 2: Run AutoConfig on the database tier:

bash
[oracle@fbstest 19c]$ cd $ORACLE_HOME/appsutil/bin
[oracle@fbstest bin]$ perl adconfig.pl contextfile=/u01/app/FBS/db/tech_st/19c/appsutil/FBS_fbstest.xml

Output:

text
AutoConfig completed successfully.

1.4 Linux Library Soft Links

Create the following symbolic links on the target system:

For Linux 7 and 8:

bash
# cd /usr/lib
# ln -s libdb-5.3.so libdb-4.3.so
# cd /usr/lib
# ln -s libXm.so.4.0.4 libXm.so.2

For Linux 6 and 5:

bash
# unlink /usr/lib/libXtst.so.6
# ln -s /usr/X11R6/lib/libXtst.so.6.1 /usr/lib/libXtst.so.6
# ln -s /usr/lib/libgdbm.so.2.0.0 /usr/lib/libdb.so.2

Phase 2: Database Tier Pre-Clone Steps

2.1 Verify Database Status

bash
[oracle@fbstest ~]$ sqlplus / as sysdba
sql
-- Verify CDB and PDB are running
SQL> select name, open_mode from v$database;

NAME      OPEN_MODE
--------- --------------------
CDBFBS    READ WRITE

SQL> show pdbs;

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

2.2 ETCC Configuration

Step 1: Create the ETCC directory if it doesn't exist:

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

Step 2: Download and install patch 17537119 (latest) from My Oracle Support:

bash
cd /u01/app/FBS/db/tech_st/19c/appsutil/etcc
unzip p17537119_*.zip

Step 3: Run the ETCC check:

bash
source $ORACLE_HOME/FBS_fbstest.env
cd $ORACLE_HOME/appsutil/etcc
./checkDBpatch.sh

2.3 Run adpreclone.pl on Database Tier

bash
[oracle@fbstest ~]$ . FBS_fbstest.env
[oracle@fbstest ~]$ cd $ORACLE_HOME/appsutil/scripts/$CONTEXT_NAME
[oracle@fbstest FBS_fbstest]$ perl adpreclone.pl dbTier

Output:

text
Beginning database tier Stage - Thu Feb 20 14:07:23 2025
Completed Stage...
This is a CDB instance. Hence not checking duplicate data files.

Phase 3: RMAN Backup of Source Database

3.1 Take RMAN Backup

bash
[oracle@fbstest backup]$ . cdbfbs_fbstest.env
[oracle@fbstest backup]$ rman target /
sql
RUN {
  ALLOCATE CHANNEL c1 TYPE DISK;
  ALLOCATE CHANNEL c2 TYPE DISK;
  
  BACKUP AS COMPRESSED BACKUPSET FULL FILESPERSET 10 
    FORMAT '/u01/backup/FBS_D_%s_%p_%t.bak' DATABASE;
    
  BACKUP AS COMPRESSED BACKUPSET FILESPERSET 10 
    FORMAT '/u01/backup/FBS_A_%s_%p_%t.bak' 
    ARCHIVELOG ALL SKIP INACCESSIBLE;
    
  BACKUP FORMAT '/u01/backup/FBS_C_%s_%p_%t.bak' 
    CURRENT CONTROLFILE;
    
  RELEASE CHANNEL c1;
  RELEASE CHANNEL c2;
}

3.2 Compress and Copy Source Binaries

Database Binaries:

bash
[oracle@fbstest db]$ tar -zcvf /u01/backup/db_19c.tar.gz apps_st

Application Binaries:

bash
[applmgr@fbstest FBS]$ tar -zcvf /u01/backup/appp_ebs121_19c.tar.gz apps

Phase 4: Application Tier Pre-Clone

4.1 Run adpreclone.pl on Application Tier

bash
[applmgr@fbstest ~]$ . APPSFBS_fbstest.env 
[applmgr@fbstest ~]$ perl $AD_TOP/bin/adpreclone.pl appsTier

Output:

text
Beginning application tier Stage - Thu Feb 20 14:16:37 2025
Completed Stage...

Phase 5: Target System Configuration

5.1 Create oraInst.loc File

bash
[root@fbsebs]# cat /etc/oraInst.loc
inventory_loc=/u01/app/inventory
inst_group=dba

5.2 Extract Binaries on Target

Database Binaries:

bash
[oracle@fbsebs 19c]$ pwd
/u01/app/FBS/db/tech_st/19c
[oracle@fbsebs 19c]$ tar -zxvf /u01/backup/19c_home.tar.gz

Application Binaries:

bash
[applmgr@fbsebs FBS]$ tar -zxvf /u01/backup/appp_ebs121_19c.tar.gz

5.3 Create Database Context File

bash
[oracle@fbsebs bin]$ cd /u01/app/FBS/db/tech_st/19c/appsutil/clone/bin/
[oracle@fbsebs bin]$ perl adclonectx.pl contextfile=/u01/app/FBS/db/tech_st/19c/appsutil/FBS_fbstest.xml

Provide the following values:

text
Target System Hostname: fbsebs
Do you want inputs validated (y/n) [n]: n
Target System Base Directory: /u01/app/FBS/db
Target Instance is RAC (y/n) [n]: n
Target System CDB Name: cdbfbs
Target System PDB Name: FBS
Oracle OS User [oracle]: 
Oracle OS Group [oinstall]: dba
Role separation supported y/n [n]: n
Number of DATA_TOP's on Target System [2]: 
Target System DATA_TOP Directory 1: /u01/app/FBS/db/apps_st/cdbfbs
Target System DATA_TOP Directory 2: /u01/app/FBS/db/apps_st/data
OSBACKUPDBA group [dba]: 
OSDGDBA group [dba]: 
OSKMDBA group [dba]: 
OSRACDBA group [dba]: 
Target System RDBMS ORACLE_HOME: /u01/app/FBS/db/tech_st/19c
Preserve Display [localhost:10.0] (y/n): n
Target System Display [fbsebs:0.0]: 
Same port values as source (y/n) [y]: n
Target System Port Pool [0-99]: 10
New context path: /u01/app/FBS/db/tech_st/19c/appsutil/FBS_fbsebs.xml

5.4 Configure Database Tech Stack

bash
[oracle@fbsebs bin]$ export CV_ASSUME_DISTID=OEL7.9
[oracle@fbsebs bin]$ perl adcfgclone.pl dbTechStack /u01/app/FBS/db/tech_st/19c/appsutil/FBS_fbsebs.xml

5.5 Generate Listener Configuration

bash
[oracle@fbsebs appsutil]$ export ORACLE_HOME=/u01/app/FBS/db/tech_st/19c
[oracle@fbsebs appsutil]$ export PATH=$ORACLE_HOME/perl/bin:$ORACLE_HOME/bin:$PATH
[oracle@fbsebs appsutil]$ export LD_LIBRARY_PATH=$ORACLE_HOME:$ORACLE_HOME/lib
[oracle@fbsebs appsutil]$ export PERL5LIB=$ORACLE_HOME/perl/lib/5.38.2:$ORACLE_HOME/perl/site_perl/5.38.2:$ORACLE_HOME/appsutil/perl
[oracle@fbsebs appsutil]$ export PATH=$ORACLE_HOME/perl:$ORACLE_HOME/perl/lib:$ORACLE_HOME/perl/bin:$PATH

[oracle@fbsebs appsutil]$ chmod 755 txkSetCfgCDB.env
[oracle@fbsebs appsutil]$ ./txkSetCfgCDB.env -dboraclehome=/u01/app/FBS/db/tech_st/19c

[oracle@fbsebs appsutil]$ cd /u01/app/FBS/db/tech_st/19c/appsutil/bin
[oracle@fbsebs bin]$ perl txkGenCDBTnsAdmin.pl \
  -dboraclehome=/u01/app/FBS/db/tech_st/19c \
  -cdbname=cdbfbs \
  -cdbsid=cdbfbs \
  -dbport=1531 \
  -outdir=/u01/app/FBS/db/tech_st/19c/appsutil/log \
  -israc=no

5.6 Start the Listener

bash
[oracle@fbsebs FBS_fbsebs]$ cd /u01/app/FBS/db/tech_st/19c/appsutil/scripts/FBS_fbsebs/
[oracle@fbsebs FBS_fbsebs]$ ./addlnctl.sh start cdbfbs

Note: If the source EBS instance is at the R12.TXK.C.DELTA.12 codelevel, the command may exit with status 1, waiting for the PDB service to start. This error can be ignored as the database is not yet restored.


Phase 6: Database Restore and Recovery

6.1 Prepare Database Initialization Parameters

bash
[oracle@fbsebs dbs]$ cp initcdbfbs.ora initFBS.ora
[oracle@fbsebs dbs]$ vi initFBS.ora

Add the following parameters:

text
DB_FILE_NAME_CONVERT=(+EBS_DATA,+EBS_DATA)
LOG_FILE_NAME_CONVERT=(+EBS_DATA,+EBS_DATA)
*.local_listener='(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=fbsebs.finsys.co.ke)(PORT=1531)))'
*.db_name='FBS'

6.2 Create Required Directories

bash
[oracle@fbsebs db]$ mkdir -p /oraapps122/DATABASE/admin/beecdb/adump
[oracle@fbsebs db]$ mkdir -p /u01/app/FBS/db/admin/cdbfbs/adump

6.3 Start Database in Nomount Mode

bash
[oracle@fbsebs dbs]$ . cdbfbs_fbstest.env
[oracle@fbsebs dbs]$ sqlplus '/as sysdba'
SQL> startup nomount pfile='/u01/app/FBS/db/tech_st/19c/dbs/initcdbcfbs.ora'

6.4 Perform RMAN Duplicate

bash
[oracle@fbsebs dbs]$ rman auxiliary /
sql
RUN {
  ALLOCATE AUXILIARY CHANNEL c1 DEVICE TYPE DISK;
  ALLOCATE AUXILIARY CHANNEL c2 DEVICE TYPE DISK;
  DUPLICATE DATABASE TO 'cdbfbs' 
    BACKUP LOCATION '/u01/backup' 
    NOFILENAMECHECK;
  RELEASE CHANNEL c1;
  RELEASE CHANNEL c2;
}

6.5 Open Database

bash
[oracle@fbsebs db]$ sqlplus / as sysdba
SQL> startup
SQL> select name,open_mode from v$database;

NAME      OPEN_MODE
--------- --------------------
CDBFBS    READ WRITE

SQL> show pdbs;

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

Phase 7: Target PDB Configuration

7.1 Verify Services

bash
[oracle@fbsebs db]$ export ORACLE_SID=cdbfbs
[oracle@fbsebs db]$ sqlplus / as sysdba
sql
SQL> alter session set container="FBS";
SQL> select count(*) from cdb_services c, service$ s 
    where upper(s.name) = upper('FBS') 
    and s.deletion_date is null 
    and s.name = c.name;

7.2 Rename PDB if Required

sql
SQL> alter pluggable database "FBS" close;
SQL> alter pluggable database "FBS" unplug into '/u01/app/FBS/db/tech_st/19c/dbs/FBS.xml';
SQL> drop pluggable database "FBS";
SQL> create pluggable database "FBS" 
    using '/u01/app/FBS/db/tech_st/19c/dbs/FBS.xml' 
    NOCOPY 
    SERVICE_NAME_CONVERT=('ebs_FBS','ebs_FBS','FBS_ebs_patch','FBS_ebs_patch');
SQL> alter pluggable database "FBS" open read write;

7.3 Save PDB State

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

7.4 Update Library

bash
[oracle@fbsebs db]$ cd /u01/app/FBS/db/tech_st/19c/appsutil/install/FBS_fbsebs/
[oracle@fbsebs FBS_fbsebs]$ sqlplus / as sysdba
SQL> @adupdlib.sql so

Phase 8: UTL_FILE_DIR Configuration

8.1 Get Current UTL_FILE_DIR Values

bash
[oracle@fbsebs bin]$ perl /u01/app/FBS/db/tech_st/19c/appsutil/bin/txkCfgUtlfileDir.pl \
  -contextfile=/u01/app/FBS/db/tech_st/19c/appsutil/FBS_fbsebs.xml \
  -oraclehome=/u01/app/FBS/db/tech_st/19c \
  -outdir=/u01/app/FBS/db/tech_st/19c/appsutil/log \
  -mode=getUtlFileDir

8.2 Create Directory Structures

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

8.3 Set UTL_FILE_DIR Values

bash
[oracle@fbsebs bin]$ perl /u01/app/FBS/db/tech_st/19c/appsutil/bin/txkCfgUtlfileDir.pl \
  -contextfile=/u01/app/FBS/db/tech_st/19c/appsutil/FBS_fbsebs.xml \
  -oraclehome=/u01/app/FBS/db/tech_st/19c \
  -outdir=/u01/app/FBS/db/tech_st/19c/appsutil/log \
  -mode=setUtlFileDir

8.4 Create Directory Objects

bash
[oracle@fbsebs bin]$ perl /u01/app/FBS/db/tech_st/19c/appsutil/bin/txkCfgUtlfileDir.pl \
  -contextfile=/u01/app/FBS/db/tech_st/19c/appsutil/FBS_fbsebs.xml \
  -oraclehome=/u01/app/FBS/db/tech_st/19c \
  -outdir=/u01/app/FBS/db/tech_st/19c/appsutil/log \
  -mode=createDirObject

8.5 Sync UTL_FILE_DIR

bash
[oracle@fbsebs bin]$ perl /u01/app/FBS/db/tech_st/19c/appsutil/bin/txkCfgUtlfileDir.pl \
  -contextfile=/u01/app/FBS/db/tech_st/19c/appsutil/FBS_fbsebs.xml \
  -oraclehome=/u01/app/FBS/db/tech_st/19c \
  -outdir=/u01/app/FBS/db/tech_st/19c/appsutil/log \
  -mode=syncUtlFileDir \
  -skipautoconfig=yes

Phase 9: Application Tier Configuration

9.1 Configure Application Tier

bash
[applmgr@fbsebs bin]$ cd /u01/app/FBS/apps/apps_st/comn/clone/bin/
[applmgr@fbsebs bin]$ perl adcfgclone.pl appsTier

Provide the following values:

text
Target System Hostname: fbsebs
Target System Database SID: FBS
Target System Database Server Node: fbsebs
Target System Database Domain Name: finsys.co.ke
Target System Base Directory: /u01/app/FBS
Target System Tools ORACLE_HOME: /u01/app/FBS/apps/tech_st/10.1.2
Target System Web ORACLE_HOME: /u01/app/FBS/apps/tech_st/10.1.3
Target System APPL_TOP: /u01/app/FBS/apps/apps_st/appl
Target System COMMON_TOP: /u01/app/FBS/apps/apps_st/comn
Target System Instance Home: /u01/app/FBS/inst
Target System Root Service: enabled
Target System Web Entry Point Services: enabled
Target System Web Application Services: enabled
Target System Batch Processing Services: enabled
Target System Other Services: disabled
Preserve Display (y/n): n
Target System Display: fbsebs:0.0
Continue with existing directory (y/n): y
Same port values as source (y/n) [y]: n
Target System Port Pool [0-99]: 10
Target System proxy port [80]:

9.2 Start Application Services

bash
[applmgr@fbsebs scripts]$ adstrtal.sh apps/apps

Note: If you encounter a listener error, this can be resolved by:

  1. Stopping all services: adstpall.sh apps/apps

  2. Restarting all services: adstrtal.sh apps/apps


Phase 10: Post-Clone Validation

10.1 Clean Concurrent Manager Setup

bash
[applmgr@fbsebs bin]$ sqlplus apps/apps
SQL> exec fnd_conc_clone.setup_clean;

10.2 Run AutoConfig

Database Tier:

bash
[oracle@fbsebs scripts]$ ./adautocfg.sh

Application Tier:

bash
[applmgr@fbsebs scripts]$ ./adautocfg.sh

10.3 SQL*Net Configuration

For E-Business Suite Release 12.1, ensure the following settings:

sql
-- If SEC_CASE_SENSITIVE_LOGON is FALSE
SQLNET.ALLOWED_LOGON_VERSION_SERVER = 8

-- If SEC_CASE_SENSITIVE_LOGON is TRUE
SQLNET.ALLOWED_LOGON_VERSION_SERVER = 10

Troubleshooting Common Issues

Issue 1: AutoConfig Listener Errors

Error: grep: /u01/app/FBS/inst/apps/FBS_fbsebs/ora/10.1.2/network/admin/listener.ora: No such file or directory

Solution: Stop and restart application services:

bash
adstpall.sh apps/apps
adstrtal.sh apps/apps

Issue 2: ETCC Warnings During Configuration

Error: ETCC warning messages during dbTechStack configuration

Solution: These warnings can be safely ignored during the initial configuration. ETCC checks should be run after the clone is complete.

Issue 3: PDB Service Not Starting

Error: Listener waiting for PDB service

Solution: This is expected behavior when the database is not yet restored. Resume the process after database restoration is complete.


References

  • Oracle Support Document 406982.1: "Cloning Oracle Applications Release 12 with Rapid Clone"

  • Oracle E-Business Suite Installation Guide: Release 12.1

  • Oracle Database 19c Upgrade Guide


Conclusion

This comprehensive guide covers the complete cloning process for Oracle E-Business Suite R12.1.3 with a 19c database. Following these steps ensures a successful clone with minimal issues. Always test the cloned environment thoroughly before using it in production.

Key Success Factors:

  1. Proper patch application on source system before cloning

  2. Complete RMAN backup with all required datafiles and archive logs

  3. Correct directory structures on target system

  4. Proper configuration of both database and application tiers

  5. Thorough validation after completion


No comments:

Post a Comment