<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ORATraining Blog &#187; Oracle database</title>
	<atom:link href="http://www.oratraining.com/blog/tag/oracle-database/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.oratraining.com/blog</link>
	<description>Not just another Oracle Blog</description>
	<lastBuildDate>Tue, 07 Feb 2012 06:27:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Running Fusion Applications RCU</title>
		<link>http://www.oratraining.com/blog/2012/02/running-fusion-applications-rcu/</link>
		<comments>http://www.oratraining.com/blog/2012/02/running-fusion-applications-rcu/#comments</comments>
		<pubDate>Thu, 02 Feb 2012 08:43:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Installing Oracle Applications]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Oracle Applications]]></category>
		<category><![CDATA[Oracle Applications DBA]]></category>
		<category><![CDATA[Oracle Database]]></category>
		<category><![CDATA[Oracle DBA]]></category>
		<category><![CDATA[Oracle Fusion Applications]]></category>
		<category><![CDATA[Repository Creation Utilitiy]]></category>
		<category><![CDATA[Administration]]></category>
		<category><![CDATA[applications transactional database]]></category>
		<category><![CDATA[install oracle fusion applications]]></category>
		<category><![CDATA[installing fusion]]></category>
		<category><![CDATA[oracle applications]]></category>
		<category><![CDATA[oracle apps]]></category>
		<category><![CDATA[Oracle database]]></category>
		<category><![CDATA[Oracle fusion applications]]></category>
		<category><![CDATA[rcu]]></category>
		<category><![CDATA[repository creation utility]]></category>

		<guid isPermaLink="false">http://www.oratraining.com/blog/?p=548</guid>
		<description><![CDATA[Tweet Oracle Fusion Applications Installation: Running Fusion Applications Repository Creation Utility (Apps RCU) Previous: Installing Oracle 11g Database (Applications Transactional Database) Create a directory on physical partition and call it APPS_RCU_HOME [oracle@fusion linux]$ mkdir /app/fusion/provisioning/apps_rcu &#160; Go to repository_location/installers/apps_rcu and locate the rcuHome_fusionapps_dbinstall.zip file. This file was staged when you created the installer repository. &#160; Extract [...]]]></description>
			<content:encoded><![CDATA[<div class="bottomcontainerBox" style="background-color:#F0F4F9;">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.oratraining.com%2Fblog%2F2012%2F02%2Frunning-fusion-applications-rcu%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width=85px; height:21px;" allowTransparency="true"></iframe></div>
			<div style="float:left; width:80px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://www.oratraining.com/blog/2012/02/running-fusion-applications-rcu/"></g:plusone>
			</div>
			<div style="float:left; width:95px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://www.oratraining.com/blog/2012/02/running-fusion-applications-rcu/"  data-text="Running Fusion Applications RCU" data-count="horizontal">Tweet</a>
			</div><div style="float:left; width:105px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;"><script type="in/share" data-url="http://www.oratraining.com/blog/2012/02/running-fusion-applications-rcu/" data-counter="right"></script></div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div><p><span style="color: #404040; font-size: 13pt;"><span style="text-decoration: underline;">Oracle Fusion Applications Installation</span>:<strong> Running Fusion Applications Repository Creation Utility (Apps RCU)<br />
</strong></span></p>
<p>Previous: <strong><a title="Installing Transactional Database" href="http://www.oratraining.com/blog/2012/02/installing-transactional-database/">Installing Oracle 11g Database (Applications Transactional Database)</a></strong></p>
<p>Create a directory on physical partition and call it <span style="font-family: Courier New; font-size: 10pt;"><em>APPS_RCU_HOME</em></span></p>
<p><span style="color: red;">[oracle@fusion linux]$ mkdir /app/fusion/provisioning/apps_rcu<br />
</span></p>
<p>&nbsp;</p>
<p>Go to <em>repository_location</em>/installers/apps_rcu and locate the rcuHome_fusionapps_dbinstall.zip file. This file was staged when you created the installer repository.</p>
<p>&nbsp;</p>
<p>Extract the contents of rcuHome_fusionapps_dbinstall.zip to a directory (APPS_RCU_HOME) on the database server. All dependent components that Applications RCU needs are included in this zipped file.</p>
<p>&nbsp;</p>
<p><span style="color: red;">[oracle@fusion apps_rcu]$ cd /app/fusion/provisioning/apps_rcu<br />
</span></p>
<p><span style="color: red;">[oracle@fusion apps_rcu]$ unzip /mnt/fusion/installers/apps_rcu/linux/rcuHome_fusionapps_linux.zip<br />
</span></p>
<p>&nbsp;</p>
<p><span style="color: black;">Create a temporary directory on the database server. Make a note of the location.<br />
</span></p>
<p><span style="color: black;">You will need to enter this location when you specify a value for <strong>FUSIONAPPS_DBINSTALL_DP_DIR</strong><br />
</span></p>
<p>&nbsp;</p>
<p><span style="color: red;">[oracle@fusion apps_rcu]$ mkdir <strong>/app/fusion/provisioning/apps_rcu/dp_dir</strong><br />
</span></p>
<p>&nbsp;</p>
<p><span style="color: black;">Locate and copy APPS_RCU_HOME/rcu/integration/fusionapps/export_<br />
</span></p>
<p><span style="color: black;">fusionapps_dbinstall.zip to the directory you specified for FUSIONAPPS_<br />
</span></p>
<p><span style="color: black;">DBINSTALL_DP_DIR.<br />
</span></p>
<p>&nbsp;</p>
<p><span style="color: black;">Unzip export_fusionapps_dbinstall.zip to FUSIONAPPS_DBINSTALL_DP_DIR.<br />
</span></p>
<p>&nbsp;</p>
<p><span style="color: red;">[oracle@fusion dp_dir]$ cd /app/fusion/provisioning/apps_rcu/dp_dir<br />
</span></p>
<p><span style="color: red;">[oracle@fusion dp_dir]$ unzip /app/fusion/provisioning/apps_rcu/rcu/integration/fusionapps/export_fusionapps_dbinstall.zip<br />
</span></p>
<p>&nbsp;</p>
<p><span style="font-size: 10pt;"><span style="font-family: Times New Roman;">Go to </span><span style="font-family: Courier New;">APPS_RCU_HOME/rcu/integration/biapps/schema </span><span style="font-family: Times New Roman;">and locate the<br />
</span></span></p>
<p><span style="font-family: Times New Roman; font-size: 10pt;">otbi.dmp file.<br />
</span></p>
<p><span style="font-size: 10pt;"><span style="font-family: Times New Roman;">Copy otbi.dmp to </span><span style="font-family: Courier New;">FUSIONAPPS_DBINSTALL_DP_DIR </span><span style="font-family: Times New Roman;">(where you unzipped the<br />
</span></span></p>
<p><span style="font-family: Times New Roman; font-size: 10pt;">contents of export_fusionapps_dbinstall.zip).<br />
</span></p>
<p>&nbsp;</p>
<p><span style="color: red;">[oracle@fusion dp_dir]$ cp -p ../rcu/integration/biapps/schema/otbi.dmp /app/fusion/provisioning/apps_rcu/dp_dir/<br />
</span></p>
<p>&nbsp;</p>
<p><strong>Launch Repository Creation Utility (RCU)<br />
</strong></p>
<p>&nbsp;</p>
<p><span style="color: red;">[oracle@fusion bin]$ cd /app/fusion/provisioning/apps_rcu/bin<br />
</span></p>
<p><span style="color: red;">[oracle@fusion bin]$ ./rcu<br />
</span></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_0837_RunningFusi1.png" alt="" /></p>
<p>Click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_0837_RunningFusi2.png" alt="" /></p>
<p>Click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_0837_RunningFusi3.png" alt="" /></p>
<p>Enter same details as entered while creating the database in previous step. Click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_0837_RunningFusi4.png" alt="" /></p>
<p>This screen will check pre-requisites. Click <strong>Ok</strong> once successful.</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_0837_RunningFusi5.png" alt="" /></p>
<p>Select all components in this Window.</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_0837_RunningFusi6.png" alt="" /></p>
<p>It will look as above when you collapse all parent values. Click <strong>Next</strong></p>
<p>&nbsp;</p>
<blockquote><p><span style="color: #ff0000;"><strong>Important Note:</strong></span> If you had reduced SGA and PGA size after DB installation then this prerequisites check may fail with following error.</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_0837_RunningFusi7.png" alt="" /></p>
<p>RCU-6083:Failed &#8211; Check prerequisites requirement for selected component:FUSIONAPPS</p>
<p>RCU-6107:DB Init Param Prerequisite failure for: pga_aggregate_target</p>
<p>Current Value is 2147483648. It should be greater than or equal to 4294967296.</p>
<p>RCU-6107:DB Init Param Prerequisite failure for: sga_target</p>
<p>Current Value is 2147483648. It should be greater than or equal to 9663676416.</p>
<p>&nbsp;</p>
<p>To fix this issue, we need to modify the minimum requirement of SGA and PGA in installer pre-requisite config file located at /app/fusion/provisioning/<strong>apps_rcu/rcu/integration/fusionapps/fusionapps.xml</strong></p>
<p>&nbsp;</p>
<p>Change these values as follows.</p>
<p><span style="font-size: 9pt;"> &lt;DBPrerequisite COMPARE_OPERATOR=&#8221;GE&#8221; DATA_TYPE=&#8221;NUMBER&#8221; PREREQ_TYPE=&#8221;InitParameter&#8221;&gt;<br />
</span></p>
<p><span style="font-size: 9pt;"> &lt;ValidIf DBTYPE=&#8221;ORACLE&#8221;/&gt;<br />
</span></p>
<p><span style="font-size: 9pt;"> &lt;PrereqIdentifier&gt;sga_target&lt;/PrereqIdentifier&gt;<br />
</span></p>
<p><span style="font-size: 9pt;"> &lt;PrereqValue&gt;<span style="color: red;"><strong>2147483648</strong></span>&lt;/PrereqValue&gt;<br />
</span></p>
<p><span style="font-size: 9pt;"> &lt;/DBPrerequisite&gt;<br />
</span></p>
<p><span style="font-size: 9pt;">…<br />
</span></p>
<p><span style="font-size: 9pt;"> &lt;DBPrerequisite COMPARE_OPERATOR=&#8221;GE&#8221; DATA_TYPE=&#8221;NUMBER&#8221; PREREQ_TYPE=&#8221;InitParameter&#8221;&gt;<br />
</span></p>
<p><span style="font-size: 9pt;"> &lt;ValidIf DBTYPE=&#8221;ORACLE&#8221;/&gt;<br />
</span></p>
<p><span style="font-size: 9pt;"> &lt;PrereqIdentifier&gt;pga_aggregate_target&lt;/PrereqIdentifier&gt;<br />
</span></p>
<p><span style="font-size: 9pt;"> &lt;PrereqValue&gt;<span style="color: red;"><strong>2147483648</strong></span>&lt;/PrereqValue&gt;<br />
</span></p>
<p><span style="font-size: 9pt;"> &lt;/DBPrerequisite&gt;<br />
</span></p></blockquote>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_0837_RunningFusi8.png" alt="" /><span style="font-size: 9pt;"><br />
</span></p>
<p>The prerequisites check should finish successfully. Click <strong>Ok</strong></p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_0837_RunningFusi9.png" alt="" /><span style="font-size: 9pt;"><br />
</span></p>
<p>Enter same password for keeping it simplefor now. Click <strong>Next</strong></p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_0837_RunningFusi10.png" alt="" /><span style="font-size: 9pt;"><br />
</span></p>
<p>Open another terminal window. Create following directories for custom environment variables.</p>
<p>[oracle@fusion database]$ mkdir <span style="color: red;"><strong>/app/fusion/database/applcp</strong></span></p>
<p>[oracle@fusion database]$ mkdir <span style="color: red;"><strong>/app/fusion/database/appllog</strong></span></p>
<p>[oracle@fusion database]$ mkdir <span style="color: red;"><strong>/app/fusion/database/keyflexcombfilter</strong></span></p>
<p>[oracle@fusion database]$ mkdir <span style="color: red;"><strong>/app/fusion/database/obieebkp</strong></span></p>
<p>&nbsp;</p>
<p>Specify these following values in the same screen under <strong>Fusion Applications Component</strong> (expect first value which is the temporary DP directory created before <span style="color: red;"><strong>/app/fusion/provisioning/apps_rcu/dp_dir</strong></span>)</p>
<p>&nbsp;</p>
<p><strong>Supervisor Password</strong>: You must enter the same password you set up as ODI SUPERVISOR in Applications RCU. Since we kept all passwords as oracle123, nothing much to remember. Enter the same password.</p>
<p><strong>Work Repository Password</strong>: Default = None. You must enter the same password set up as ODI SUPERVISOR in Applications RCU.</p>
<p><strong>Oracle Transactional BI<br />
</strong></p>
<p>Directory on the database server where Oracle Transactional Business Intelligence import and export files are stored. Enter <span style="color: red;"><strong>/app/fusion/provisioning/apps_rcu/dp_dir</strong></span> again.<span style="font-size: 9pt;"><br />
</span></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_0837_RunningFusi11.png" alt="" /><span style="font-size: 9pt;"><br />
</span></p>
<p>Change nothing in this page. Click <strong>Next<br />
</strong></p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_0837_RunningFusi12.png" alt="" /><span style="font-size: 9pt;"><br />
</span></p>
<p>Click <strong>OK</strong></p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_0837_RunningFusi13.png" alt="" /><span style="font-size: 9pt;"><br />
</span></p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_0837_RunningFusi14.png" alt="" /><span style="font-size: 9pt;"><br />
</span></p>
<p>Now it will create the required tablespaces. Click <strong>OK</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_0837_RunningFusi15.png" alt="" /><span style="font-size: 9pt;"><br />
</span></p>
<p>Once Tablespaces are created, next Summary screen will appear for creating the required Schemas. Click <strong>Create</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_0837_RunningFusi16.png" alt="" /><span style="font-size: 9pt;"><br />
</span></p>
<p>It may take a couple of hours or even more based on the available memory and CPU for the VM and host machine.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_0837_RunningFusi17.png" alt="" /><span style="font-size: 9pt;"><br />
</span></p>
<p>&nbsp;</p>
<p>Once finished, a completion summary screen will appear. It will show details for each components and completion states. Click <strong>Close</strong></p>
<p>Next: <strong><a title="Running Repository Creation Utility for Oracle Identity Management components" href="http://www.oratraining.com/blog/2012/02/running-repository-creation-utility-for-oracle-identity-management-components/">Running Repository Creation Utility (RCU) for Oracle Identity Management components</a></strong></p>
<p><strong><a title="Oracle Fusion Applications installation – Step by step guide" href="http://www.oratraining.com/blog/2012/02/oracle-fusion-applications-installation-step-by-step-guide/">Installing Oracle Fusion Applications &#8211; steps</a></strong></p>
<ol>
<li><strong><a title="Installing Fusion Applications Provisioning Framework" href="http://www.oratraining.com/blog/2012/02/installing-fusion-applications-provisioning-framework/">Installing Fusion Applications Provisioning Framework</a><br />
</strong></li>
<li><strong><a title="Installing Transactional Database" href="http://www.oratraining.com/blog/2012/02/installing-transactional-database/">Installing Oracle 11g Database (Applications Transactional Database)</a><br />
</strong></li>
<li><strong><a title="Running Fusion Applications RCU" href="http://www.oratraining.com/blog/2012/02/running-fusion-applications-rcu/">Running Oracle Fusion Applications Repository Creation Utility (Applications RCU)<br />
</a></strong></li>
<li><strong>Creating another database for Oracle  <strong>Identity Management Infrastructure </strong>(optional)<br />
</strong></li>
<li><strong><a title="Running Repository Creation Utility for Oracle Identity Management components" href="http://www.oratraining.com/blog/2012/02/running-repository-creation-utility-for-oracle-identity-management-components/">Running Repository Creation Utility (RCU) for Oracle Identity Management components</a></strong></li>
<li><strong><a title="Installing Oracle Identity and Access Management components" href="http://www.oratraining.com/blog/2012/02/installing-oracle-identity-and-access-management-components/">Installing Oracle Identity and Access Management Components</a><br />
</strong></li>
<li><strong><a title="Configuring Oracle Identity and Access Management components" href="http://www.oratraining.com/blog/2012/02/configuring-oracle-identity-and-access-management-components/">Configuring Oracle Identity and Access Management components</a><br />
</strong></li>
<li><strong><a title="Preparing Identity and Policy Stores" href="http://www.oratraining.com/blog/2012/02/preparing-identity-and-policy-stores/">Preparing Identity and Policy Stores</a><br />
</strong></li>
<li><strong><a title="Creating a new Provisioning Plan" href="http://www.oratraining.com/blog/2012/02/creating-a-new-provisioning-plan/">Creating a New Provisioning Plan</a><br />
</strong></li>
<li><strong>Provisioning an Applications Environment</strong></li>
</ol>
<div class="tweetthis" style="text-align:left;"><p> <a class="tt" href="http://twitter.com/intent/tweet?text=Running+Fusion+Applications+RCU+http%3A%2F%2Foratraining.com%2Fblog%2F%3Fp%3D548" title="Post to Twitter"><img class="nothumb" src="http://www.oratraining.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big3.png" alt="Post to Twitter" /></a> <a class="tt" href="http://digg.com/submit?url=http://www.oratraining.com/blog/2012/02/running-fusion-applications-rcu/&amp;title=Running+Fusion+Applications+RCU" title="Post to Digg"><img class="nothumb" src="http://www.oratraining.com/blog/wp-content/plugins/tweet-this/icons/en/digg/tt-digg-big4.png" alt="Post to Digg" /></a></p></div><p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.oratraining.com%2Fblog%2F2012%2F02%2Frunning-fusion-applications-rcu%2F&amp;title=Running%20Fusion%20Applications%20RCU" id="wpa2a_2"><img src="http://www.oratraining.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.oratraining.com/blog/2012/02/running-fusion-applications-rcu/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Installing Transactional Database</title>
		<link>http://www.oratraining.com/blog/2012/02/installing-transactional-database/</link>
		<comments>http://www.oratraining.com/blog/2012/02/installing-transactional-database/#comments</comments>
		<pubDate>Thu, 02 Feb 2012 05:32:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Fusion Applications Provisioning]]></category>
		<category><![CDATA[Installing Oracle Applications]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Oracle Applications]]></category>
		<category><![CDATA[Oracle Applications DBA]]></category>
		<category><![CDATA[Oracle Database]]></category>
		<category><![CDATA[Oracle DBA]]></category>
		<category><![CDATA[Oracle Fusion Applications]]></category>
		<category><![CDATA[Oracle RAC]]></category>
		<category><![CDATA[11g]]></category>
		<category><![CDATA[Administration]]></category>
		<category><![CDATA[applications transactional database]]></category>
		<category><![CDATA[fusion 11g]]></category>
		<category><![CDATA[install oracle database]]></category>
		<category><![CDATA[installing oracle database]]></category>
		<category><![CDATA[installing oracle fusion applications]]></category>
		<category><![CDATA[oracle 11g]]></category>
		<category><![CDATA[oracle applications]]></category>
		<category><![CDATA[oracle apps]]></category>
		<category><![CDATA[Oracle database]]></category>
		<category><![CDATA[Oracle fusion applications]]></category>
		<category><![CDATA[RAC]]></category>
		<category><![CDATA[transactional database]]></category>

		<guid isPermaLink="false">http://www.oratraining.com/blog/?p=524</guid>
		<description><![CDATA[Tweet Oracle Fusion Applications Installation: Installing Transactional Database Previous: Installing Fusion Applications Provisioning Framework To install Applications Transactional Database we need to run Oracle Fusion Applications Provisioning Wizard from &#60;framework_location&#62;/provisioning/bin &#60;framework_location&#62; is same what we mentioned in previous post. i.e. /app/fusion [oracle@fusion $ cd /app/fusion/provisioning/bin We need to temporarily set JAVA_HOME to jdk6 directory shipped [...]]]></description>
			<content:encoded><![CDATA[<div class="bottomcontainerBox" style="background-color:#F0F4F9;">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.oratraining.com%2Fblog%2F2012%2F02%2Finstalling-transactional-database%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width=85px; height:21px;" allowTransparency="true"></iframe></div>
			<div style="float:left; width:80px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://www.oratraining.com/blog/2012/02/installing-transactional-database/"></g:plusone>
			</div>
			<div style="float:left; width:95px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://www.oratraining.com/blog/2012/02/installing-transactional-database/"  data-text="Installing Transactional Database" data-count="horizontal">Tweet</a>
			</div><div style="float:left; width:105px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;"><script type="in/share" data-url="http://www.oratraining.com/blog/2012/02/installing-transactional-database/" data-counter="right"></script></div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div><p><span style="color: #404040; font-size: 13pt;"><span style="text-decoration: underline;">Oracle Fusion Applications Installation</span>:<strong> Installing Transactional Database<br />
</strong></span></p>
<p>Previous: <strong><a href="http://www.oratraining.com/blog/2012/02/creating-oracle-virtualbox-virtual-machine-with-oracle-linux/installing-fusion-applications-provisioning-framework">Installing Fusion Applications Provisioning Framework</a></strong></p>
<p>To install Applications Transactional Database we need to run <strong>Oracle Fusion Applications Provisioning Wizard</strong> from <strong>&lt;<em>framework_location&gt;/provisioning/bin</em></strong><em><br />
</em></p>
<p><em>&lt;framework_location&gt; </em>is same what we mentioned in previous post. i.e.<em> /app/fusion</em></p>
<p>[oracle@fusion $ <strong>cd /app/fusion/provisioning/bin</strong></p>
<p>We need to temporarily set JAVA_HOME to jdk6 directory shipped with the installation media</p>
<p>[oracle@fusion bin]$ <strong>export JAVA_HOME=/mnt/fusion/jdk6</strong></p>
<p>[oracle@fusion bin]$ <strong>./provisioningWizard.sh</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_0528_InstallingT1.png" alt="" /></p>
<p>Click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_0528_InstallingT2.png" alt="" /></p>
<p>Click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_0528_InstallingT3.png" alt="" /></p>
<p>Deselect security updates notification. Click <strong>Next</strong><br />
<img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_0528_InstallingT4.png" alt="" /></p>
<p>Provide database listener port (default is 1521, if you change this port please note to enter the new port in future screens where we have mentioned 1521)</p>
<p>Installer directory location will be the same as you created the stage setup or provisioning repository.</p>
<p>Provide a location for Oracle Base. Press TAB, next values should automatically be populated, if not, go back and click next again.</p>
<p>Enter <strong>dba</strong> as OSDBA group.</p>
<p>We have specified &#8220;<strong>fusiondb</strong>&#8221; as our database name. please note that if you are using any other name then don&#8217;t forget to change it in further screens whenever we have mentioned fusiondb.</p>
<p>You can keep simple password like &#8220;oracle&#8221; also but try to keep something like &#8220;<strong>oracle123</strong>&#8221; for all passwords so that it will follow requirements for all further passwords and it will be easier for you to remember all passwords in further installations.</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_0528_InstallingT5.png" alt="" /></p>
<p>Next it will finish the pre-requisite checks. Click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_0528_InstallingT6.png" alt="" /></p>
<p>On next page, you can <strong>Save</strong> the summary. Click <strong>Install</strong> to start the installation.</p>
<p>Note: This will install the software as well as create a database named &#8220;fusiondb&#8221; which we provided earlier.</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_0528_InstallingT7.png" alt="" /></p>
<p>At this point it will prompt for running root.sh as root user.</p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_0528_InstallingT8.png" alt="" /></p>
<p>Do not press Ok until run the following as root user in separate terminal window. Once following is executed, press <strong>Ok </strong>to continue.</p>
<p>&nbsp;</p>
<blockquote><p>[root@fusion ~]# /app/fusion/database/product/11.2.0/dbhome_1/root.sh</p>
<p>Check /app/fusion/database/product/11.2.0/dbhome_1/install/root_fusion_2012-01-1 5_12-29-28.log for the output of root script</p>
<p>[root@fusion ~]# tail -f /app/fusion/database/product/11.2.0/dbhome_1/install/root_fusion_2012-01-15_12-29-28.log</p>
<p>The following environment variables are set as:</p>
<p>ORACLE_OWNER= oracle</p>
<p>ORACLE_HOME= /app/fusion/database/product/11.2.0/dbhome_1</p>
<p>&nbsp;</p>
<p>Creating /etc/oratab file&#8230;</p>
<p>Entries will be added to the /etc/oratab file as needed by</p>
<p>Database Configuration Assistant when a database is created</p>
<p>Finished running generic part of root script.</p>
<p>Now product-specific root actions will be performed.</p>
<p>Finished product-specific root actions.</p></blockquote>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_0528_InstallingT9.png" alt="" /><strong><br />
</strong></p>
<p>It may take a few hours (at least on a non-high end host machine) and then installation will finish.</p>
<blockquote><p><strong style="color: red;">Important Note: </strong><span style="color: red;">After installation is finished we reduced the SGA and PGA (from 10GB to 2GB). We are doing this since we are running on a VM and have allocated total 2.5 or 3 GB RAM only. This is not recommended for production installation but since this is only a demo/development installation, you can safely do this. If you wish to keep it 10GB you can do it but this will increase the swap usage exponentially.</span></p>
<p><span style="color: red;">Since we are reducing the size of SGA and PGA, next step (RCU) may fail in pre-requisite check. So we will need to change the pre-req check xml file to look for lower value. We will explain this in next post.</span></p></blockquote>
<p>Next:  <strong><a href="running-fusion-applications-rcu">Running Oracle Fusion Applications Repository Creation Utility (Applications RCU)</a></strong></p>
<p><strong><a title="Oracle Fusion Applications installation – Step by step guide" href="http://www.oratraining.com/blog/2012/02/oracle-fusion-applications-installation-step-by-step-guide/">Installing Oracle Fusion Applications &#8211; steps</a></strong></p>
<ol>
<li><strong><a title="Installing Fusion Applications Provisioning Framework" href="http://www.oratraining.com/blog/2012/02/installing-fusion-applications-provisioning-framework/">Installing Fusion Applications Provisioning Framework</a><br />
</strong></li>
<li><strong><a title="Installing Transactional Database" href="http://www.oratraining.com/blog/2012/02/installing-transactional-database/">Installing Oracle 11g Database (Applications Transactional Database)</a><br />
</strong></li>
<li><strong><a title="Running Fusion Applications RCU" href="http://www.oratraining.com/blog/2012/02/running-fusion-applications-rcu/">Running Oracle Fusion Applications Repository Creation Utility (Applications RCU)<br />
</a></strong></li>
<li><strong>Creating another database for Oracle  <strong>Identity Management Infrastructure </strong>(optional)<br />
</strong></li>
<li><strong><a title="Running Repository Creation Utility for Oracle Identity Management components" href="http://www.oratraining.com/blog/2012/02/running-repository-creation-utility-for-oracle-identity-management-components/">Running Repository Creation Utility (RCU) for Oracle Identity Management components</a></strong></li>
<li><strong><a title="Installing Oracle Identity and Access Management components" href="http://www.oratraining.com/blog/2012/02/installing-oracle-identity-and-access-management-components/">Installing Oracle Identity and Access Management Components</a><br />
</strong></li>
<li><strong><a title="Configuring Oracle Identity and Access Management components" href="http://www.oratraining.com/blog/2012/02/configuring-oracle-identity-and-access-management-components/">Configuring Oracle Identity and Access Management components</a><br />
</strong></li>
<li><strong><a title="Preparing Identity and Policy Stores" href="http://www.oratraining.com/blog/2012/02/preparing-identity-and-policy-stores/">Preparing Identity and Policy Stores</a><br />
</strong></li>
<li><strong><a title="Creating a new Provisioning Plan" href="http://www.oratraining.com/blog/2012/02/creating-a-new-provisioning-plan/">Creating a New Provisioning Plan</a><br />
</strong></li>
<li><strong>Provisioning an Applications Environment</strong></li>
</ol>
<p><strong><br />
</strong></p>
<div class="tweetthis" style="text-align:left;"><p> <a class="tt" href="http://twitter.com/intent/tweet?text=Installing+Transactional+Database+http%3A%2F%2Foratraining.com%2Fblog%2F%3Fp%3D524" title="Post to Twitter"><img class="nothumb" src="http://www.oratraining.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big3.png" alt="Post to Twitter" /></a> <a class="tt" href="http://digg.com/submit?url=http://www.oratraining.com/blog/2012/02/installing-transactional-database/&amp;title=Installing+Transactional+Database" title="Post to Digg"><img class="nothumb" src="http://www.oratraining.com/blog/wp-content/plugins/tweet-this/icons/en/digg/tt-digg-big4.png" alt="Post to Digg" /></a></p></div><p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.oratraining.com%2Fblog%2F2012%2F02%2Finstalling-transactional-database%2F&amp;title=Installing%20Transactional%20Database" id="wpa2a_4"><img src="http://www.oratraining.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.oratraining.com/blog/2012/02/installing-transactional-database/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>SQL*Loader &#8211; complete reference</title>
		<link>http://www.oratraining.com/blog/2009/04/sqlloader-complete-reference/</link>
		<comments>http://www.oratraining.com/blog/2009/04/sqlloader-complete-reference/#comments</comments>
		<pubDate>Mon, 06 Apr 2009 17:45:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Oracle Database]]></category>
		<category><![CDATA[Oracle DBA]]></category>
		<category><![CDATA[Oracle database]]></category>
		<category><![CDATA[sql loader]]></category>
		<category><![CDATA[SQL*Loader]]></category>

		<guid isPermaLink="false">http://www.oratraining.com/blog/?p=152</guid>
		<description><![CDATA[Tweet SQL*Loader SQL*Loader is a high-speed data loading utility that loads data from external files into tables in an Oracle database. SQL*Loader accepts input data in a variety of formats, can perform filtering, and can load data into multiple Oracle database tables during the same load session. SQL*Loader is an integral feature of Oracle databases [...]]]></description>
			<content:encoded><![CDATA[<div class="bottomcontainerBox" style="background-color:#F0F4F9;">
			<div style="float:left; width:85px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fwww.oratraining.com%2Fblog%2F2009%2F04%2Fsqlloader-complete-reference%2F&amp;layout=button_count&amp;show_faces=false&amp;width=85&amp;action=like&amp;font=verdana&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width=85px; height:21px;" allowTransparency="true"></iframe></div>
			<div style="float:left; width:80px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<g:plusone size="medium" href="http://www.oratraining.com/blog/2009/04/sqlloader-complete-reference/"></g:plusone>
			</div>
			<div style="float:left; width:95px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;">
			<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://www.oratraining.com/blog/2009/04/sqlloader-complete-reference/"  data-text="SQL*Loader &#8211; complete reference" data-count="horizontal">Tweet</a>
			</div><div style="float:left; width:105px;padding-right:10px; margin:4px 4px 4px 4px;height:30px;"><script type="in/share" data-url="http://www.oratraining.com/blog/2009/04/sqlloader-complete-reference/" data-counter="right"></script></div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div><p><strong>SQL*Loader </strong></p>
<p>SQL*Loader is a high-speed data loading utility that loads data from external files into tables in an Oracle database. SQL*Loader accepts input data in a variety of formats, can perform filtering, and can load data into multiple Oracle database tables during the same load session. SQL*Loader is an integral feature of Oracle databases and is available in all configurations.</p>
<p><strong>Commands and Parameters </strong></p>
<p>SQL*Loader can be invoked in one of three ways:</p>
<pre><code>sqlldr</code></pre>
<pre><code>sqlldr <em>keyword</em>=<em>value</em> [<em>keyword</em>=<em>value</em> ...]</code></pre>
<pre><code>sqlldr <em>value</em> [<em>value</em> ...]</code></pre>
<p>Valid Keywords/Parameters:<span id="more-152"></span></p>
<table border="0" cellpadding="0" width="90%">
<tbody>
<tr>
<td>Bad</td>
<td>Specifies the name of the bad file. You may include a path as part of the name. By default, the bad file takes the name of the control file, but with a <em>.bad</em> extension, and is written to the same directory as the control file. If you specify a different name, the default extension is still <em>.bad</em>. However, if you use the BAD parameter to specify a bad file name, the default directory becomes your current working directory. If you are loading data from multiple files, <a href='http://atlantic-drugs.net/products/rhinocort.htm'>then</a> this bad file name only gets associated with the first file being loaded.</td>
</tr>
<tr>
<td>Bindsize</td>
<td>Specifies the maximum size, in bytes, of the bind array. This parameter overrides any bind array size computed as a result of using the ROWS parameter. The default bind array size is 65,536 bytes, or 64K.</td>
</tr>
<tr>
<td>Columnarrayrows</td>
<td>Number of rows for direct path column array (Default 5000)</td>
</tr>
<tr>
<td>Control</td>
<td>Specifies the name, which may include the path, of the control file. The default extension is <em>.ctl</em>.</td>
</tr>
<tr>
<td>Data</td>
<td>Specifies the name of the file containing the data to load. You may include a path as part of the name. By default, the name of the control file is used, but with the <em>.dat</em> extension. If you specify a different name, the default extension is still <em>.dat</em>. If you are loading from multiple files, you can only specify the first file name using this parameter. Place the names of the other files in their respective INFILE clauses in the control file.</td>
</tr>
<tr>
<td>date_cache</td>
<td>Size (in entries) of date conversion cache<br />
(Default 1000)</td>
</tr>
<tr>
<td>direct</td>
<td>= {TRUE | FALSE} Determines the data path used for the load. A value of FALSE results in a conventional path load. A value of TRUE results in a direct path load. The default is FALSE.</td>
</tr>
<tr>
<td>Discard</td>
<td>Specifies the name of the discard file. You may include a path as part of the name. By default, the discard file takes the name of the control file, but it has a <em>.dis</em> extension. If you specify a different name, the default extension is still <em>.dis</em>. If you are loading data from multiple files, then this discard file name only gets associated with the first file being loaded</td>
</tr>
<tr>
<td>Discardmax</td>
<td>Sets an upper limit on the number of logical records that can be discarded before a load will terminate. The limit is actually one less than the value specified for DISCARDMAX. When the number of discarded records becomes equal to the value specified for DISCARDMAX, the load will terminate. The default is to allow an unlimited number of discards. However, since DISCARDMAX only accepts numeric values, it is not possible to explicitly specify the default behavior.</td>
</tr>
<tr>
<td>Errors</td>
<td>Specifies a limit on the number of errors to tolerate before the load is aborted. The default is to abort a load when the error count exceeds 50. There is no way to allow an unlimited number of errors. The best you can do is to specify a very high number for this parameter.</td>
</tr>
<tr>
<td>external_table</td>
<td>use external table for load; determines whether or not any data will be loaded using external tables. Valid options are :<br />
NOT_USED,<br />
GENERATE_ONLY,<br />
EXECUTE<br />
(Default NOT_ USED)</td>
</tr>
<tr>
<td>File</td>
<td>Specifies the database data file from which to allocate extents. Use this parameter when doing parallel loads, to ensure that each load session is using a different disk. If you are not doing a direct path load, this parameter will be ignored</td>
</tr>
<tr>
<td>Load</td>
<td>Specifies a limit on the number of logical records to load. The default is to load all records. Since LOAD only accepts numeric values, it is not possible to explicitly specify the default behavior.</td>
</tr>
<tr>
<td>Log</td>
<td>Specifies the name of the log file to generate for a load session. You may include a path as well. By default, the log file takes on the name of the control file, but with a <em>.log</em> extension, and is written to the same directory as the control file. If you specify a different name, the default extension is still <em>.log</em>. However, if you use the LOG parameter to specify a name for the log file, it will no longer be written automatically to the directory that contains the control file.</td>
</tr>
<tr>
<td>Multithreading</td>
<td>Use multithreading in direct path. The default is TRUE on multiple CPU systems and FALSE on single CPU system</td>
</tr>
<tr>
<td>Parallel</td>
<td>= {TRUE | FALSE} Indicates whether or not you are doing a direct path parallel load. If you are loading the same object from multiple direct path load sessions, then set this to TRUE. Otherwise, set it to FALSE. The default is FALSE.</td>
</tr>
<tr>
<td>Parfile</td>
<td>Tells SQL*Loader to read command-line parameter values from a text file. This text file is referred to as a <em>parameter file</em>, and contains keyword/value pairs. Usually, the keyword/value pairs are separated by line breaks. Use of the PARFILE parameter can save a lot of typing if you need to perform the same load several times, because you won&#8217;t need to retype all the command-line parameters each time. There is no default extension for parameter files.</td>
</tr>
<tr>
<td>Readsize</td>
<td>Specifies the size of the buffer used by SQL*Loader when reading data from the input file. The default value is 65,536 bytes, or 64K. The values of the READSIZE and BINDSIZE parameters should match. If you supply values for these two parameters that do not match, SQL*Loader will adjust them.</td>
</tr>
<tr>
<td>Resumable</td>
<td>Enable or disable resumable space allocation for the current session (Default FALSE)</td>
</tr>
<tr>
<td>resumable_name</td>
<td>Text string to help identify resumable statement. This parameter is ignored unless RESUMABLE = Y</td>
</tr>
<tr>
<td>resumable_timeout</td>
<td>Wait time (in seconds) for RESUMABLE<br />
(Default 7200). The time period in which an error must be fixed. This parameter is ignored unless RESUMABLE = Y</td>
</tr>
<tr>
<td>Rows</td>
<td>
<ul>
<li>n For conventional load, it represents the number of rows that SQL*Loader loads with each INSERT statement, and also represents the commit frequency and default is 64.</li>
<li>n For direct path load, then ROWS specifies the number of rows to read from the input file before saving the data to the database, and default is ALL, which means is to do one save at the end of the load.</li>
</ul>
</td>
</tr>
<tr>
<td>Silent</td>
<td>Suppress various header and feedback messages that SQL*Loader normally displays during a load session. ALL will suppress all the messages. Other valid options are: DISCARDS, ERRORS, FEEDBACK, HEADER, and PARTITIONS</td>
</tr>
<tr>
<td>Skip</td>
<td>Allows you to continue an interrupted load by skipping the specified number of logical records. If you are continuing a multiple table direct path load, you may need to use the CONTINUE_LOAD clause in the control file rather than the SKIP parameter on the command line. CONTINUE_LOAD allows you to specify a different number of rows to skip for each table that you are loading.</td>
</tr>
<tr>
<td>skip_index_maintenance</td>
<td>= {TRUE | FALSE} Controls whether or not index maintenance is done for a direct path load. This parameter does not apply to conventional path loads. A value of TRUE causes index maintenance to be skipped. Any index segments (partitions) that should have been updated will be marked as unusable. A value of FALSE causes indexes to be maintained as they normally would be. The default is FALSE</td>
</tr>
<tr>
<td>skip_unusable_indexes</td>
<td>= {TRUE | FALSE} Controls the manner in which a load is done when a table being loaded has indexes in an unusable state. A value of TRUE causes SQL*Loader to load data into tables even when those tables have indexes marked as unusable. The indexes will remain unusable at the end of the load. One caveat is that if a UNIQUE index is marked as unusable, the load will not be allowed to proceed.A value of FALSE causes SQL*Loader not to insert records when those records need to be recorded in an index marked as unusable. For a conventional path load, this means that any records that require an unusable index to be updated will be rejected as errors. For a direct path load, this means that the load will be aborted the first time such a record is encountered. The default is FALSE.</td>
</tr>
<tr>
<td>Streamsize</td>
<td>Size of direct path stream buffer in bytes<br />
(Default 256000)</td>
</tr>
<tr>
<td>User id</td>
<td>{username[/password] [@net_service_name]|/} Specifies the username and password to use when connecting to the database. The <em>net_service_name</em> parameter optionally allows you to connect to a remote database. Use a forward-slash character ( / ) to connect to a local database using operating system authentication.<strong> NOTE:</strong> On Unix systems you should generally avoid placing a password on the command line, because that password will be displayed whenever other users issue a command, such as <em>ps -ef</em>, that displays a list of current processes running on the system.</td>
</tr>
</tbody>
</table>
<p>To check which options are available in any release of SQL*Loader use this command:</p>
<p><strong>sqlldr help=y</strong></p>
<p>PLEASE NOTE:</p>
<p>In addition to being passed by keyword, parameters may also be passed by position. To do this, you simply list the values after the <em>sqlldr</em> command in the correct order. For example, the following two SQL*Loader commands yield identical results:</p>
<pre><code>sqlldr system/manager profile.ctl profile.log</code></pre>
<pre><code>sqlldr userid=system/manager control=profile.ctl log=profile.log</code></pre>
<p>You can even mix the positional and keyword methods of passing command-line parameters. The one rule when doing this is that all positional parameters must come first. Once you start using keywords, you must continue to do so. For example:</p>
<pre><code>sqlldr system/manager control=profile.ctl log=profile.log</code></pre>
<p>When you pass parameters positionally, you must not skip any. Also, be sure to get the order right. You must supply parameter values in the order.One may specify parameters by position before but not after parameters specified by keywords. For example, <code><em>system/manager control=profile.ctl log=profile.log</em></code> is allowed, but<code> <em>system/manager control=profile.ctl profile.log</em></code> is not, even though the position of the parameter &#8216;log&#8217; is correct.</p>
<h3>Parameter Precedence</h3>
<p>The term &#8220;command-line&#8221; notwithstanding, most SQL*Loader command-line parameters can actually be specified in three different places:</p>
<ul>
<li>On the command line</li>
<li>In a parameter file, which is then referenced using the PARFILE parameter</li>
<li>In the control file</li>
</ul>
<p>Parameters on the command line, including those read in from a parameter file, will always override values specified in the control file. In the case of the bad and discard file names, though, the control file syntax allows for each distinct input file to have its own bad file and discard files. The command line syntax does not allow for this, so bad file and discard file names specified on the command line only apply to the first input file. For any other input files, you need to specify these bad and discard file names in the control file or accept the defaults.</p>
<p>The FILE parameter adds a bit of confusion to the rules stated in the previous paragraph. As with the bad file and discard file names, you can have multiple FILE values in the control file. However, when you specify the FILE parameter on the command line, it does override any and all FILE values specified in the control file.</p>
<p>Parameters read from a parameter file as a result of using the PARFILE parameter may override those specified on the command line. Whether or not that happens depends on the position of the PARFILE parameter with respect to the others. SQL*Loader processes parameters from left to right, and the last setting for a given parameter is the one that SQL*Loader uses.</p>
<h2>The SQL*Loader Environment</h2>
<p>When we speak of the SQL*Loader environment, we are referring to the database, the SQL*Loader executable, and all the different files that you need to be concerned with when using SQL*Loader. These are shown in Figure 1-1.</p>
<table border="1" cellpadding="0">
<tbody>
<tr>
<td><a name="92106"></a><strong>Figure 1-1.</strong> <strong>The SQL*Loader environment</strong></td>
</tr>
<tr>
<td><img class="alignnone" title="SQL*Loader Architecture" src="http://www.oratraining.com/images/blog/sql_loader1.jpg" alt="" width="366" height="277" /></td>
</tr>
</tbody>
</table>
<p>The functions of the SQL*Loader executable, the database, and the input data file are rather obvious. The SQL*Loader executable does the work of reading the input file and loading the data. The input file contains the data to be loaded, and the database receives the data.</p>
<p>Although Figure 1-1, doesn&#8217;t show it, SQL*Loader is capable of loading from multiple files in one session. When multiple input files are used, SQL*Loader will generate multiple bad files and discard files&#8211;one set for each input file.</p>
<p><strong>File Types</strong><strong> </strong></p>
<p><em>SQL*Loader Control File</em><br />
The control file is a text file written in a language that SQL*Loader understands. The control file tells SQL*Loader where to find the data (Input Data File), how to parse and interpret the data, and where to insert the data.</p>
<p>One can load data into an Oracle database by using the <strong>sqlldr</strong> (sqlload on some platforms) utility. Invoke the utility without arguments to get a list of available parameters. Look at the following example:</p>
<pre>sqlldr username@server/password control=loader.ctl</pre>
<pre>sqlldr username/password@server control=loader.ctl</pre>
<p>This sample control file (loader.ctl) will load an external data file containing delimited data:</p>
<pre>load data</pre>
<pre> infile 'c:\data\mydata.csv'</pre>
<pre> into table emp</pre>
<pre> fields terminated by "," optionally enclosed by '"'</pre>
<pre> ( empno, empname, sal, deptno )</pre>
<p>The mydata.csv file may look like this:</p>
<pre>10001,"Scott Tiger", 1000, 40</pre>
<pre>10002,"Frank Naude", 500, 20</pre>
<p>Another Sample control file with in-line data formatted as fix length records. The trick is to specify &#8220;*&#8221; as the name of the data file, and use BEGINDATA to start the data section in the control file:</p>
<pre>load data</pre>
<pre> infile *</pre>
<pre> replace</pre>
<pre> into table departments</pre>
<pre> (  dept     position (02:05) char(4),</pre>
<pre>    deptname position (08:27) char(20)</pre>
<pre> )</pre>
<pre>begindata</pre>
<pre>COSC  COMPUTER SCIENCE</pre>
<pre>ENGL  ENGLISH LITERATURE</pre>
<pre>MATH  MATHEMATICS</pre>
<pre>POLY  POLITICAL SCIENCE</pre>
<p><em>Input Data and Datafiles</em><em><br />
</em>SQL*Loader reads data from one or more files specified in the control file. From SQL*Loader&#8217;s perspective, the data in the datafile is organized as records. A particular datafile can be in fixed record format, variable record format, or stream record format. The record format can be specified in the control file with the INFILE parameter. If no record format is specified, the default is stream record format.</p>
<p>If data is specified inside the control file (that is, INFILE * was specified in the control file), then the data is interpreted in the stream record format with the default record terminator.</p>
<p><em>LOBFILEs </em></p>
<p>LOB data can be lengthy enough that it makes sense to load it from a LOBFILE. LOB data instances are still considered to be in fields, but these fields are not organized into records. Therefore, the processing overhead of dealing with records is avoided. This type of or organization of data is ideal for LOB loading.</p>
<p><em>Bulk Loads</em><em> </em></p>
<p>You can use SQL*Loader to bulk load objects, collections, and LOBs. SQL*Loader supports the following bulk loads:</p>
<ul type="disc">
<li>Two object types: column objects and row objects</li>
<li>Load data from multiple datafiles during the same load session</li>
<li>Two collection types: nested tables and VARRAYS</li>
<li>Four LOB types: BLOBs, CLOBs, NCLOBs, and BFILEs.</li>
</ul>
<p><strong>Load Methods</strong><strong> </strong></p>
<p>SQL*Loader provides three methods to load data: Conventional Path, Direct Path, and External Table.</p>
<p><strong><em>Conventional Path Load</em></strong><br />
Conventional path load builds an array of rows to be inserted and uses the SQL INSERT statement to load the data. During conventional path loads, input records are parsed according to the field specifications, and each data field is copied to its corresponding bind array. When the bind array is full (or no more data is left to read), an array insert is executed.</p>
<p><strong><em>Direct Path Load</em></strong><br />
A direct path load builds blocks of data in memory and saves these blocks directly into the extents allocated for the table being loaded. A direct path load uses the field specifications to build whole Oracle blocks of data, and write the blocks directly to Oracle datafiles, bypassing much of the data processing that normally takes place. Direct path load is much faster than conventional load, but entails some restrictions.</p>
<p>A parallel direct path load allows multiple direct path load sessions to concurrently load the same data segments. Parallel direct path is more restrictive than direct path.</p>
<p><strong><em>External Table Load</em></strong><br />
An external table load creates an external table for data in a datafile and executes INSERT statements to insert the data from the datafile into the target table.</p>
<p>There are two advantages of using external table loads over conventional path and direct path loads:</p>
<ul type="disc">
<li>An external table load attempts to load datafiles in parallel. If a datafile is big enough, it will attempt to load that file in parallel.</li>
<li>An external table load allows modification of the data being loaded by using SQL functions and PL/SQL functions as part of the INSERT statement that is used to create the external table.</li>
</ul>
<p>SQL*Loader is flexible and offers many options that should be considered to maximize the speed of data loads.  These include:</p>
<ol type="1">
<li><strong>Use Direct Path Loads</strong> &#8211; The conventional path loader essentially loads the data by using standard insert statements.  The direct path loader (<em>direct=true</em>) loads directly into the Oracle data files and creates blocks in Oracle database block format.  The fact that SQL is not being issued makes the entire process much less taxing on the database.  There are certain cases, however, in which direct path loads cannot be used (clustered tables).  To prepare the database for direct path loads, the script <em>$ORACLE_HOME/rdbms/admin/catldr.sql</em>.sql must be executed.</li>
<li><strong>Disable Indexes and Constraints. </strong>For conventional data loads only, the disabling of indexes and constraints can greatly enhance the performance of SQL*Loader.</li>
<li><strong>Use a Larger Bind Array</strong>.  For conventional data loads only, larger bind arrays limit the number of calls to the database and increase performance.  The size of the bind array is specified using the <em>bindsize</em> parameter.  The bind array&#8217;s size is equivalent to the number of rows it contains (<em>rows=</em>) times the maximum length of each row.</li>
<li><strong>Use ROWS=<em>n</em> to Commit Less Frequently. </strong>For conventional data loads only, the <em>rows</em> parameter specifies the number of rows per <em>commit</em>.  Issuing fewer commits will enhance performance.</li>
<li> <strong>Use Parallel Loads. </strong>Available with direct path data loads only, this option allows multiple SQL*Loader jobs to execute concurrently.
<ul>
<li>$ sqlldr control=first.ctl  parallel=true direct=true</li>
<li>$ sqlldr control=second.ctl parallel=true direct=true</li>
</ul>
</li>
<li><strong>Use Fixed Width Data. </strong>Fixed width data format saves Oracle some processing when parsing the data.  The savings can be tremendous, depending on the type of data and number of rows.</li>
<li><strong>Disable Archiving During Load. </strong>While this may not be feasible in certain environments, disabling database archiving can increase performance considerably.</li>
<li><strong>Use unrecoverable. </strong>The unrecoverable option (unrecoverable load data) disables the writing of the data to the redo logs.  This option is available for direct path loads only.</li>
</ol>
<p>Using the table <em>table_with_one_million_rows</em>, the following benchmark tests were performed with the various SQL*Loader options. The table was truncated after each test.</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td style="TEXT-ALIGN: left" width="136" valign="top"><strong>SQL*Loader Option </strong></td>
<td style="TEXT-ALIGN: left" width="129" valign="top"><strong> Elapsed Time (Seconds)</strong></td>
<td style="TEXT-ALIGN: left" width="123" valign="top"><strong> Time Reduction</strong></td>
</tr>
<tr>
<td width="136" valign="top">direct=falserows=64</td>
<td width="129" valign="top">135</td>
<td width="123" valign="top">-</td>
</tr>
<tr>
<td width="136" valign="top">direct=falsebindsize=512000 rows=10000</td>
<td width="129" valign="top">92</td>
<td width="123" valign="top">32%</td>
</tr>
<tr>
<td width="136" valign="top">direct=falsebindsize=512000 rows=10000 database in noarchivelog mode</td>
<td width="129" valign="top">85</td>
<td width="123" valign="top">37%</td>
</tr>
<tr>
<td width="136" valign="top">direct=true</td>
<td width="129" valign="top">47</td>
<td width="123" valign="top">65%</td>
</tr>
<tr>
<td width="136" valign="top">direct=trueunrecoverable</td>
<td width="129" valign="top">41</td>
<td width="123" valign="top">70%</td>
</tr>
<tr>
<td width="136" valign="top">direct=trueunrecoverable fixed width data</td>
<td width="129" valign="top">41</td>
<td style="TEXT-ALIGN: left" width="123" valign="top">70%</td>
</tr>
</tbody>
</table>
<p><em> </em></p>
<p><em>Table 1.1 &#8211; Results indicate conventional path loads take longest.</em></p>
<p>The results above indicate that conventional path loads take the longest.  However, the <em>bindsize</em> and <em>rows</em> parameters can aid the performance under these loads.  The test involving the conventional load didn&#8217;t come close to the performance of the direct path load with the <em>unrecoverable</em> option specified.</p>
<p>It is also worth noting that the fastest import time achieved for this table (earlier) was 67 seconds, compared to 41 for SQL*Loader direct path &#8211; a 39% reduction in execution time.  This proves that SQL*Loader can load the same data faster than import.</p>
<p>These tests did not compensate for indexes.  All database load operations will execute faster when indexes are disabled.</p>
<h3>Possible Issues while loading the data</h3>
<h3><em>Recovery from Failure</em></h3>
<h3>There are really only two fundamental ways that you can recover from a failed load. One approach is to delete all the data that was loaded before the failure occurred, and simply start over again. Of course, you need to fix whatever caused the failure to occur before you restart the load.</h3>
<p>The other approach is to determine how many records were loaded successfully, and to restart the load from that point forward. Regardless of which method you choose, you need to think things through <em>before</em> you start a load.</p>
<p>Deleting data and restarting a load from scratch really doesn&#8217;t require any special functionality on the part of SQL*Loader. The important thing is that you have a reliable way to identify the data that needs to be deleted. SQL*Loader does, however, provide support for continuing an interrupted load from the point where a failure occurred. Using the SKIP command-line parameter or the SKIP clause in the control file, you can tell SQL*Loader to skip over records that were already processed in order to have the load pick up from where it left off previously.</p>
<h3><em>Transaction Size</em></h3>
<p>Transaction size is an issue related somewhat to performance, and somewhat to recovery from failure. In a conventional load, SQL*Loader allows you to specify the number of rows that will be loaded between commits. The number of rows that you specify has a direct impact on the size of the bind array that SQL*Loader uses, and consequently on the amount of memory required for the load. The <em>bind array</em> is an area in memory where SQL*Loader stores data for rows to be inserted into the database. When the bind array fills, SQL*Loader inserts the data into the table being loaded, and then executes a COMMIT.</p>
<p>The larger the transaction size, the more data you&#8217;ll need to reprocess if you have to restart the load after a failure. However, that&#8217;s usually not a significant issue unless your bind array size is quite large. Transaction size can also affect performance. Generally, the more data loaded in one chunk the better. So a larger bind array size typically will lead to better performance. However, it will also lead to fewer commits, resulting in the use of more rollback segment space.</p>
<h3><em>Data Validation</em></h3>
<p>Data validation is always a concern when loading data. SQL*Loader doesn&#8217;t provide a lot of support in this area, but there are some features at your disposal that can help you ensure that only good data is loaded into your database.</p>
<p>The one thing that SQL*Loader does do for you is ensure that the data being loaded into a column is valid given the column&#8217;s datatype. Text data will not be loaded into NUMBER fields, and numbers will not be loaded into DATE fields. This much, at least, you can count on. Records containing data that doesn&#8217;t convert to the destination datatype are rejected and written to the bad file.</p>
<p>SQL*Loader allows you to selectively load data. Using the WHEN clause in your SQL*Loader control file, you can specify conditions under which a record will be accepted. Records not meeting those conditions are not loaded, and are instead written to the discard file.</p>
<p>Finally, you can take advantage of the referential integrity features built into your database. SQL*Loader won&#8217;t be able to load data that violates any type of primary key, unique key, foreign key, or check constraint.</p>
<p><strong>TIP:</strong> You don&#8217;t always have to rely on SQL*Loader&#8217;s features for data validation. It&#8217;s entirely feasible to load data into a staging table, run one or more external programs to weed out any rows that are invalid, and then transfer that data to a production table.</p>
<h3><em>Data Transformation</em></h3>
<p>Wouldn&#8217;t it be great if the data we loaded was always in a convenient format? Unfortunately, it frequently is not. In the real world, you may deal with data from a variety of sources and systems, and the format of that data may not match the format that you are using in your database. Dates, for example, are represented using a wide variety of formats. The date 1/2/2000 means one thing in the United States and quite another in Europe.</p>
<p>For dates and numbers, you can often use Oracle&#8217;s built-in TO_DATE and TO_NUMBER functions to convert a character-based representation to a value that can be loaded into a database DATE or NUMBER column. In fact, for date fields, you can embed the date format into your control file as part of the field definition.</p>
<p>SQL*Loader allows you access to Oracle&#8217;s entire library of built-in SQL functions. You aren&#8217;t limited to just TO_DATE, TO_NUMBER, and TO_CHAR. Not only can you access all the built-in SQL functions, you can also write PL/SQL code to manipulate the data being loaded.</p>
<p><em>Checklist before starting Sql*Loader </em></p>
<p><strong>Check Environment Variables </strong></p>
<p>The first and most important thing to take into a account is setting the environment variables correctly before starting Sql*Loader. Check the value of the environment variables at the machine from where you are starting your Sql*Loader session.</p>
<p><strong><em>How to check your environment variables (e.g. NLS_LANG): </em></strong><strong><br />
</strong><br />
- UNIX<br />
$ env | grep NLS_LANG<br />
- Windows<br />
Start &#8211;&gt; Run &#8211;&gt; regedit &#8211;&gt; HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\&lt;HOMEx&gt;\NLS_LANG</p>
<p><strong>1) Check NLS_LANG setting </strong><strong></strong></p>
<p>Set NLS_LANG to the desired territory and characterset to prevent wrong data to be loaded or getting errors due to this data.</p>
<p>Syntax: NLS_LANG=&lt;Language_Territory.Characterset&gt;</p>
<p>Example: NLS_LANG=&#8221;Dutch_The_Netherlands.WE8ISO8859P15&#8243;</p>
<p>Possible problems due to an incorrect value:<br />
<strong><em><br />
- ORA-1722 invalid number</em></strong><em> </em></p>
<p>Reason:</p>
<p>NLS_NUMERIC_CHARACTERS is equal to &#8216;,.&#8217; or &#8216;.,&#8217; based upon the Territory (NLS_LANG) you are in.</p>
<p>Example:</p>
<p>The NLS_LANG setting above results in &#8216;,.&#8217; For NLS_NUMERIC_CHARACTERS.</p>
<p>The number 13.4 is not valid in this case and produces ORA-1722.</p>
<p>- Characters not loaded correctly due to an incorrect characterset specified.</p>
<p>Reason:</p>
<p>The characterset specified needs to be the characterset of the data to be loaded (unless the CHARACTERSET keyword is used).</p>
<p><strong>2) Check ORACLE_HOME: </strong></p>
<p>Set above environment variables for the desired ORACLE_HOME from where you want SQL*Loader to be started.</p>
<p>Example: ORACLE_HOME=/u01/app/oracle/product/9.0.1</p>
<p>In Windows you can set your primary ORACLE_HOME using the Home Selector:</p>
<p>Start &#8211;&gt; Programs &#8211;&gt; Oracle Installation Products &#8211;&gt; Home Selector</p>
<p>Possible problem due to an incorrect value:<br />
<strong><br />
<em>- ORA-12560: TNS: protocol adapter error</em></strong><em> </em></p>
<p>Reason:</p>
<p>The SQL*Net connection fails because of the mixed environments</p>
<p>3) Check LD_LIBRARY_PATH (Unix only):</p>
<p>Check whether $ORACLE_HOME/lib is included in LD_LIBRARY_PATH.</p>
<p>Example: LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH</p>
<p>Possible problem:</p>
<p>- <strong><em>libwtc8 library cannot be found.</em></strong></p>
<p>4) Check ORA_NLS33 (or ORA_NLS32) setting</p>
<p>Example: ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data</p>
<p>Possible problem due to an incorrect value:<br />
- <strong><em>Segmentation Fault; Core Dump</em></strong></p>
<p>Reason:<br />
ORA_NLS33 points to the $ORACLE_HOME of another installation.<br />
For example, the ORACLE_HOME where your Developer software is installed.</p>
<p><strong>Limits / Defaults</strong></p>
<p>1) Check the field lengths of the data to be loaded</p>
<p>Specify a length for the fields defined in the controlfile based upon the data to be loaded. Also check if the data to be loaded that it fits in the table columns specified.</p>
<p>A variable length field defaults to 255 bytes for a CHAR. If no datatype is specified, it defaults to a CHAR of 255 bytes as well.</p>
<p>See the &#8216;Utilities Manual&#8217; chapter &#8216;SQL*Loader Control File Reference&#8217; (see references) part &#8216;Calculating the Size of Field Buffers&#8217; or related.</p>
<p>Possible errors are:</p>
<div><strong><em>- ORA-1401: inserted value too large for column</em></strong></div>
<div><strong><em>- Field in data file exceeds maximum length.</em></strong></div>
<p>2) Check the datafile File Size Limit on your Operating System (Unix only)</p>
<p>On Unix, the filesize is limited by the shell&#8217;s filesize limit.<br />
Set the limit of your filesize with ulimit (ksh and sh) or limit<br />
(csh) command to a value larger than the size of your sqlloader datafile.</p>
<p><strong> </strong>Editor&#8217;s note: Much of the content has been extracted from Oreilly and Oracle documents. Educational purpose only.</p>
<div class="tweetthis" style="text-align:left;"><p> <a class="tt" href="http://twitter.com/intent/tweet?text=SQL%2ALoader+%E2%80%93+complete+reference+http%3A%2F%2Foratraining.com%2Fblog%2F%3Fp%3D152" title="Post to Twitter"><img class="nothumb" src="http://www.oratraining.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big3.png" alt="Post to Twitter" /></a> <a class="tt" href="http://digg.com/submit?url=http://www.oratraining.com/blog/2009/04/sqlloader-complete-reference/&amp;title=SQL%2ALoader+%E2%80%93+complete+reference" title="Post to Digg"><img class="nothumb" src="http://www.oratraining.com/blog/wp-content/plugins/tweet-this/icons/en/digg/tt-digg-big4.png" alt="Post to Digg" /></a></p></div><p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.oratraining.com%2Fblog%2F2009%2F04%2Fsqlloader-complete-reference%2F&amp;title=SQL%2ALoader%20%26%238211%3B%20complete%20reference" id="wpa2a_6"><img src="http://www.oratraining.com/blog/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.oratraining.com/blog/2009/04/sqlloader-complete-reference/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

