
{"id":7122,"date":"2022-02-05T20:49:11","date_gmt":"2022-02-05T20:49:11","guid":{"rendered":"https:\/\/rax-stg-wp-aws.com\/blogs\/oracle-ebs-cloning-with-version-19c-database\/"},"modified":"2026-11-03T19:27:53","modified_gmt":"2026-11-03T19:27:53","slug":"oracle-ebs-cloning-with-version-19c-database","status":"publish","type":"blogs","link":"https:\/\/www.rackspace.com\/en-gb\/blogs\/oracle-ebs-cloning-with-version-19c-database\/","title":{"rendered":"Oracle EBS cloning with version 19c Database"},"content":{"rendered":"<p>This post discusses the process of step-by-step cloning with on-premise Oracle\u00ae; E-Business Suite&amp;reg; (EBS) R12.2 on a version 19c Database by using Recovery Manager (RMAN) Hot backup on Red Hat\u00ae; Enterprise Linux\u00ae; servers. These steps also apply to different operating systems.<\/p>\n<p><strong>EBS Cloning<\/strong><\/p>\n<p>To perform EBS cloning, you need to complete the following high-level steps:<\/p>\n<p>1. Run a pre-clone utility on the source database and application nodes.<br \/>\n2. Back up the full Container Database (CDB) database with archives by using RMAN Hot backup and copy it to the target node.<br \/>\n3. Clean up the target database and application node.<br \/>\n4. Copy the source application binaries and database binaries to the target node.<br \/>\n5. Configure $Oracle_Home on the target database node.<br \/>\n6. Restore and recover the databases.<br \/>\n7. Perform post-restore steps on the Target database node.<br \/>\n8. Configure the application on the target application node.<br \/>\n9. Perform post-clone steps on the application node.<br \/>\n10. Start the target application services.<\/p>\n<p><em>Here are the steps in detail:<\/em><\/p>\n<p><strong>1. Run pre-clone utility&nbsp;<\/strong><\/p>\n<p>a. Run the following commands to source the pluggable database (PDB) environment file on<br \/>\n&nbsp; &nbsp;the database node at $ORACLE_HOME:<\/p>\n<p><em>&nbsp; &nbsp; cd $ORACLE_HOME<br \/>\n&nbsp; &nbsp; . &lt;PDB_NAME&gt;_hostname.env<br \/>\n&nbsp; &nbsp; cd $ORACLE_HOME\/appsutil\/scripts\/$CONTEXT_NAME<br \/>\n&nbsp; &nbsp; perl adpreclone.pl dbTier<\/em><\/p>\n<p>b. Run the following commands on the application node:<\/p>\n<p><em>&nbsp; &nbsp; EBSApps run (Source RUN FS)<br \/>\n&nbsp; &nbsp; cd $ADMIN_SCRIPTS_HOME<br \/>\n&nbsp; &nbsp; perl adpreclone.pl appsTier<\/em><\/p>\n<p><strong>2. Back up the CDB<\/strong><\/p>\n<p>Back up the full CDB database with archives by using RMAN Hot backup and copy it to the<br \/>\ntarget node:<\/p>\n<p>a. Run the following commands to source the CDB environment file at $ORACLE_HOME:<\/p>\n<p>&nbsp; &nbsp;<em> cd $ORACLE_HOME<br \/>\n&nbsp; &nbsp; . &lt;CDB_NAME&gt;_hostname.env<br \/>\n&nbsp; &nbsp; connect target \/<\/em><\/p>\n<p>b.&nbsp;<strong>Run the following commands to complete this step:<\/strong><\/p>\n<p>&nbsp; <em>&nbsp; run {<br \/>\n&nbsp; &nbsp; &nbsp;allocate channel d1 type disk;<br \/>\n&nbsp; &nbsp; &nbsp;allocate channel d2 type disk;<br \/>\n&nbsp; &nbsp; &nbsp;allocate channel d3 type disk;<br \/>\n&nbsp; &nbsp; &nbsp;allocate channel d4 type disk;<\/em><\/p>\n<p><em>&nbsp; &nbsp; &nbsp;BACKUP as compressed backupset FULL FILESPERSET 10 FORMAT &#8216;&lt;Backup location&gt;\/&lt;SID&gt;_bk_%s_%p_%t.bak&#8217; DATABASE;<br \/>\n&nbsp; &nbsp; &nbsp;BACKUP as compressed backupset filesperset 10 FORMAT &#8216;&lt;Backup location&gt;\/&lt;SID&gt;_arch_%s_%p_%t.bak&#8217; ARCHIVELOG ALL skip inaccessible;<br \/>\n&nbsp; &nbsp; &nbsp;BACKUP FORMAT &#8216;&lt;Backup location&gt;\/&lt;SID&gt;_cntrl_%s_%p_%t.bak&#8217; CURRENT CONTROLFILE;<br \/>\n&nbsp; &nbsp; &nbsp;<br \/>\n&nbsp; &nbsp; &nbsp;RELEASE CHANNEL d1;<br \/>\n&nbsp; &nbsp; &nbsp;RELEASE CHANNEL d2;<br \/>\n&nbsp; &nbsp; &nbsp;RELEASE CHANNEL d3;<br \/>\n&nbsp; &nbsp; &nbsp;RELEASE CHANNEL d4;<br \/>\n&nbsp; &nbsp; }<\/em><\/p>\n<p>After completing the backup, either move to the target location or Network File System (NFS) share the backup mount point to the target node to save time<em>.<\/em><\/p>\n<p><strong>3. Clean up<\/strong><\/p>\n<p>Clean up the target database and application node.<\/p>\n<p>Run the following steps on the database node<\/p>\n<p>a. Take a backup of the following important configuration files and directories before<br \/>\n&nbsp; &nbsp;you clean them up:<\/p>\n<p><em>&#8211; $CONTEXT\\_FILE<br \/>\n&#8211; environment files<br \/>\n&#8211; dbs<br \/>\n&#8211; $TNS\\_ADMIN directories.<\/em><\/p>\n<p>b. Remove target OH and drop the database<em>.<\/em><\/p>\n<p>\nc. Remove contents of <strong>oraInventory<\/strong><\/p>\n<p>Note that the <strong>UTL<\/strong> directories should not have symbolic links. If symbolic links exist, remove them and create a physical directory structure.<\/p>\n<p>Run the following steps on the application node:<\/p>\n<p><strong>4. Copy the binaries<\/strong><\/p>\n<p>Perform the following steps to copy the source application binaries and database binaries<br \/>\nto the target node.<\/p>\n<p>a. On the database node, copy and transfer version 19.0.0(19c) binaries to the target database server.<\/p>\n<p>b. On the application node, transfer only the <strong>EBSapps<\/strong>&nbsp;directory of <strong>RUN FS<\/strong> from the&nbsp;source to the target node under the target <strong>RUN FS<\/strong><\/p>\n<p><strong>5. Configure $Oracle_Home<\/strong><\/p>\n<p>Configure $Oracle_Home on the target database node.<\/p>\n<p>Before running <em>adcfgclone.pl<\/em>&nbsp;to configure $Oracle_Home, clean up the <strong>oraInventory&nbsp;<\/strong>directory. If you are doing cloning for the first time on a new server, then run only the following steps and provide values for all inputs. Perform the following steps:<\/p>\n<p>a. Create the context file:<\/p>\n<p><em>&nbsp; &nbsp; cd $ORACLE_HOME\/appsutil\/clone\/bin<br \/>\n&nbsp; &nbsp; perl adclonectx.pl contextfile=&lt;Source database context file&gt; template=$ORACLE_HOME\/appsutil\/template\/adxdbctx.tmp [pairsfile=&lt;Pairs file Path&gt;]<\/em><\/p>\n<p><em>&nbsp; &nbsp; perl adcfgclone.pl dbTechStack &lt;Full Path of CONTEXT_FILE&gt;<\/em><\/p>\n<p><em>b. Create <\/em><strong>listener.ora<\/strong><em> and <\/em><strong>tnsnames.ora<\/strong><\/p>\n<p><em>&nbsp; &nbsp; cd $ORACLE_HOME\/appsutil<br \/>\n&nbsp; &nbsp; .\/txkSetCfgCDB.env -dboraclehome=&lt;ORACLE_HOME&gt;<\/em><\/p>\n<p><em>&nbsp; &nbsp; cd $ORACLE_HOME\/appsutil\/bin<br \/>\n&nbsp; &nbsp; perl txkGenCDBTnsAdmin.pl -dboraclehome=$ORACLE_HOME -cdbname=&lt;target CDB NAME&gt; \\<br \/>\n&nbsp; &nbsp; -cdbsid=&lt;SID&gt; -dbport=&lt;Target DB port&gt; -outdir=$ORACLE_HOME\/appsutil\/log \\<br \/>\n&nbsp; &nbsp; -israc=&lt;yes\/no&gt; [-virtualhostname=&lt;virtual hostname&gt;]<\/em><\/p>\n<p><em>c. <\/em>If this is a repeated cloned instance, use the **CONTEXT_FILE** backup to configure the<br \/>\n&nbsp; &nbsp;target database binaries:<\/p>\n<p><em>&nbsp; &nbsp; cd &lt;RDBMS ORACLE_HOME&gt;\/appsutil\/clone\/bin<br \/>\n&nbsp; &nbsp; perl adcfgclone.pl dbTechStack &lt;Full Path of CONTEXT_FILE backup location&gt;<\/em><\/p>\n<p><em>d. If this is a repeated cloned instance, revert the <\/em><strong>dbs<\/strong>&nbsp;<em>and <strong>TNS<\/strong> files so that all<br \/>\n&nbsp; &nbsp;configuration files and init parameters are intact after configuration.<\/em><\/p>\n<p>e. Start the listener.<\/p>\n<p>After you configure $Oracle_Home, start the target database restore by using that backup that you took earlier:<\/p>\n<p>a. Before restoring, check that the following parameters are correct in the target node.<\/p>\n<p>&nbsp; &nbsp;&#8211; db\\_file\\_name\\_convert<br \/>\n&nbsp; &nbsp;&#8211; log\\_file\\_name\\_convert<\/p>\n<p>b. Start the target database in a `nomount` state and run the following RMAN command to restore the database:<\/p>\n<p>&nbsp; &nbsp; Rman auxiliary \/<br \/>\n&nbsp; &nbsp; run<br \/>\n&nbsp; &nbsp; <em>{<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;allocate auxiliary channel d1 device type disk;<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;allocate auxiliary channel d2 device type disk;<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;allocate auxiliary channel d3 device type disk;<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;duplicate database to &#8216;&lt;CDB NAME&gt;&#8217; backup location &#8216;&lt;RMAN backup &nbsp; &nbsp; location&gt;&#8217; nofilenamecheck;<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;release channel d1;<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;release channel d2;<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp;release channel d3;<br \/>\n&nbsp; &nbsp; }<\/em><\/p>\n<p><em>&nbsp;7. <\/em>Target post-restore steps<\/p>\n<p>sqlplus \/ as sysdba<br \/>\n&nbsp; &nbsp; &nbsp;SQL&gt; alter pluggable database &#8220;&lt;Source PDB Name&gt;&#8221; close;<br \/>\n&nbsp; &nbsp; &nbsp;SQL&gt; alter pluggable database &#8220;&lt;Source PDB Name&gt;&#8221; unplug into &#8216;&lt;ORACLE_HOME&gt;\/dbs\/&lt;Source PDB Name&gt;_PDBDesc.xml&#8217;;<br \/>\n&nbsp; &nbsp; &nbsp;SQL&gt; drop pluggable database &#8220;&lt;Source PDB Name&gt;&#8221;;<br \/>\n&nbsp; &nbsp; &nbsp;SQL&gt; create pluggable database &#8220;&lt;Target PDB Name&gt;&#8221; using <em>&lt;ORACLE_HOME&gt;\/dbs\/&lt;PDB Name&gt;_PDBDesc.xml<\/em>&nbsp;NOCOPY SERVICE_NAME_CONVERT=(<em>ebs_&lt;Source PDB Name&gt;<\/em>,ebs_&lt;Target PDB Name&gt;,<em>&lt;Source PDB Name&gt;_ebs_patch<\/em>,<em>&lt;Target PDB Name&gt;_ebs_patch);<\/em><br \/>\n&nbsp; &nbsp; &nbsp;SQL&gt; alter pluggable database &#8220;&lt;Target PDB Name&gt;&#8221; open read write;<br \/>\n&nbsp; &nbsp; &nbsp;SQL&gt; alter pluggable database all save state instances=all;<br \/>\n&nbsp; &nbsp; &nbsp;SQL&gt; sho pdbs<\/p>\n<p>&nbsp; &nbsp; CON_ID CON_NAME &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; OPEN MODE &nbsp;RESTRICTED<br \/>\n&nbsp; &nbsp; &#8212;&#8212; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;-<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;2 PDB$SEED &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; READ ONLY &nbsp;NO<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;4 &lt;PDB Name&gt; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; READ WRITE NO<\/p>\n<p>b. Source the PDB env file and perform the following command to set the target<br \/>\n&nbsp; &nbsp;<strong>UTL\\_FILE\\_DIR<\/strong> values in Oracle Database:<\/p>\n<p><em>&nbsp;perl $ORACLE_HOME\/appsutil\/bin\/txkCfgUtlfileDir.pl -contextfile=$CONTEXT_FILE -oraclehome=$ORACLE_HOME -outdir=$ORACLE_HOME\/appsutil\/log -mode=getUtlFileDir<\/em><\/p>\n<p><em>c. <\/em>Run the following command to edit the<em> \\<\/em><strong>&lt;PDB Name\\&gt;\\_utlfiledir.txt<\/strong><em> file under<br \/>\n&nbsp; &nbsp;<\/em><strong>Oracle_Home\/dbs<\/strong> and change the UTL Path accordingly<\/p>\n<p>&nbsp; &nbsp; <em>perl $ORACLE_HOME\/appsutil\/bin\/txkCfgUtlfileDir.pl -contextfile=$CONTEXT_FILE -oraclehome=$ORACLE_HOME -outdir=$ORACLE_HOME\/appsutil\/log -mode=setUtlFileDir<\/em><\/p>\n<p><em>d. Run the following script for each path in <\/em><strong>\\&lt;PDB Name\\&gt;\\_utlfiledir.txt<\/strong><\/p>\n<p><em>&nbsp; &nbsp; perl $ORACLE_HOME\/appsutil\/bin\/txkCfgUtlfileDir.pl -contextfile=$CONTEXT_FILE -oraclehome=$ORACLE_HOME -outdir=$ORACLE_HOME\/appsutil\/log -mode=createDirObject<\/em><\/p>\n<p><em>&nbsp; &nbsp; perl $ORACLE_HOME\/appsutil\/bin\/txkCfgUtlfileDir.pl -contextfile=$CONTEXT_FILE -oraclehome=$ORACLE_HOME -outdir=$ORACLE_HOME\/appsutil\/log -mode=syncUtlFileDir -skipautoconfig=yes<\/em><\/p>\n<p><em>&nbsp; &nbsp; cd $ORACLE_HOME\/appsutil\/install\/$CONTEXT_NAME<br \/>\n&nbsp; &nbsp; sqlplus \/ as sysdba @adupdlib.sql &lt;libext&gt;<\/em><\/p>\n<p><em>&nbsp; &nbsp; clean FND_NODE table<\/em><\/p>\n<p><em>&nbsp; &nbsp; sqlplus apps\/&lt;Source Apps password&gt;<\/em><\/p>\n<p><em>&nbsp; &nbsp; EXEC FND_CONC_CLONE.SETUP_CLEAN;<\/em><\/p>\n<p><em>Commit;<\/em><\/p>\n<p><em>e. Use the following command to run <strong>adautocfg.sh<\/strong>:<\/em><\/p>\n<p><em>&nbsp; &nbsp;cd &lt;$ORACLE_HOME\/appsutil\/scripts\/$CONTEXT_NAME&gt;<br \/>\n&nbsp; &nbsp; sh adautocfg.sh<\/em><\/p>\n<p><strong>8. Configure the target application<\/strong><\/p>\n<p>Configure the application on the target application node:<\/p>\n<p>a. Before starting <strong>adcfgclone.pl<\/strong>, clean up the <strong>PATCH FS<\/strong>, <strong>FS_NE<\/strong>, and <strong>oraInventory<\/strong>&nbsp;directories.<\/p>\n<p>b. Run the following commands to configure the application:<\/p>\n<p>&nbsp;<em> &nbsp; cd &lt;COMMON_TOP&gt;\/clone\/bin<br \/>\n&nbsp; &nbsp; export TIMEDPROCESS_TIMEOUT=-1<br \/>\n&nbsp; &nbsp; export T2P_JAVA_OPTIONS=&#8221;-Djava.io.tmpdir=&lt;Temp directory location&gt;&#8221;<br \/>\n&nbsp; &nbsp; perl .\/adcfgclone.pl appsTier dualfs<\/em><\/p>\n<p><em>c. <\/em>Provide all the inputs here.<\/p>\n<p><em>d. <\/em>If this is a repeated cloning instance, you can also use the backup of a CONTEXT_FILE. Run the following command:<\/p>\n<p><em>&nbsp; &nbsp; perl .\/adcfgclone.pl appsTier &lt;location of CONTEXT_FILE backup&gt; dualfs<\/em><\/p>\n<p><strong>9. Application post-clone steps<\/strong><\/p>\n<p>Perform the post-clone steps on the Application node:<\/p>\n<p>a. After you configure the application, change the apps, sysadmin, and custom schema password, if any, by using the <em>FNDCPASS <\/em>command.<\/p>\n<p>b. After changing the apps password, run <em>Autoconfig<\/em> on the database node and the application node.<\/p>\n<p>c. Perform other custom steps, if any, for cloned instances.<\/p>\n<p><strong>10. Start the target application services<\/strong><\/p>\n<p>You can now start all application services of the target clone instance and perform all sanity checks for the cloned instances.<\/p>\n<p><strong>Conclusion<\/strong><\/p>\n<p>Using the preceding steps, you can clone or refresh the PROD instance to non-prod servers with version 19c databases with a multitenant architecture.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Oracle EBS cloning with version 19c Database<\/p>\n","protected":false},"author":2,"featured_media":7124,"menu_order":0,"comment_status":"open","ping_status":"open","template":"","format":"standard","meta":{"content-type":"","nid":"26266","content_type":"blog","created_by":"10130","authored_on":"2023-11-20T20:49:11+00:00","field_article_industries":"","tag_category":"Technical","field_blog_author_text":"by Rackspace Technology Staff","seo_description":"Discover step-by-step cloning of Oracle E-Business Suite\u00ae (EBS) R12.2 on a 19c Database using RMAN Hot backup on Red Hat\u00ae Enterprise Linux servers.","field_featured_image":"","insights_image":"\/wp-content\/uploads\/2026\/blog_technical_images\/26266-insights_image-oracle-technical-blog-1-insights.jpg","field_partners":"","rxt_platforms":"Oracle","product":"","publisheddate":"2022-02-05T20:49:11","rxt_solutions":"Databases","opengraph_tag":"","x_tag":"","teaser_flag":"Technical Blog","seo_titile":"Oracle EBS Cloning with 19c Database | Rackspace Technology","field_topics":"","field_slug":"oracle-ebs-cloning-with-version-19c-database","footnotes":""},"categories":[178],"tags":[204],"class_list":["post-7122","blogs","type-blogs","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-technical"],"_links":{"self":[{"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/blogs\/7122","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/blogs"}],"about":[{"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/types\/blogs"}],"author":[{"embeddable":true,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/comments?post=7122"}],"version-history":[{"count":1,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/blogs\/7122\/revisions"}],"predecessor-version":[{"id":7123,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/blogs\/7122\/revisions\/7123"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/media\/7124"}],"wp:attachment":[{"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/media?parent=7122"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/categories?post=7122"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/tags?post=7122"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}