<?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 DBA</title>
	<atom:link href="http://www.oratraining.com/blog/category/oracle/database/oracle-dba/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>Configuring Oracle Identity and Access Management components</title>
		<link>http://www.oratraining.com/blog/2012/02/configuring-oracle-identity-and-access-management-components/</link>
		<comments>http://www.oratraining.com/blog/2012/02/configuring-oracle-identity-and-access-management-components/#comments</comments>
		<pubDate>Mon, 06 Feb 2012 09:30:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Fusion Applications Provisioning]]></category>
		<category><![CDATA[Fusion Middleware]]></category>
		<category><![CDATA[HTTP Server]]></category>
		<category><![CDATA[Identity Management]]></category>
		<category><![CDATA[Installing Oracle Applications]]></category>
		<category><![CDATA[Linux/Unix/Solaris]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Oracle Applications]]></category>
		<category><![CDATA[Oracle Applications DBA]]></category>
		<category><![CDATA[Oracle DBA]]></category>
		<category><![CDATA[Oracle Fusion Applications]]></category>
		<category><![CDATA[Oracle Internet Directory]]></category>
		<category><![CDATA[Webgate]]></category>
		<category><![CDATA[access manager]]></category>
		<category><![CDATA[Administration]]></category>
		<category><![CDATA[fusion 11g]]></category>
		<category><![CDATA[fusion applications installation]]></category>
		<category><![CDATA[guide]]></category>
		<category><![CDATA[HTTP server]]></category>
		<category><![CDATA[identity management]]></category>
		<category><![CDATA[installation]]></category>
		<category><![CDATA[installing]]></category>
		<category><![CDATA[installing oracle fusion applications]]></category>
		<category><![CDATA[oracle applications]]></category>
		<category><![CDATA[oracle apps]]></category>
		<category><![CDATA[oracle directory service]]></category>
		<category><![CDATA[Oracle fusion applications]]></category>
		<category><![CDATA[oracle internet directory]]></category>
		<category><![CDATA[virtual directory]]></category>
		<category><![CDATA[webgate]]></category>

		<guid isPermaLink="false">http://www.oratraining.com/blog/?p=878</guid>
		<description><![CDATA[Tweet Oracle Fusion Applications Installation: Configuring Oracle Identity and Access Management components Previous: Installing Oracle Identity and Access Management Components Configuring Oracle Identity Management components&#8221; can be divided into following tasks. Configuring the Web Tier Create Weblogic Domain for Identity Management Extending the Domain with Oracle Internet Directory Extending the Domain with Oracle Directory Service Manager [...]]]></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%2Fconfiguring-oracle-identity-and-access-management-components%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/configuring-oracle-identity-and-access-management-components/"></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/configuring-oracle-identity-and-access-management-components/"  data-text="Configuring Oracle Identity and Access Management components" 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/configuring-oracle-identity-and-access-management-components/" data-counter="right"></script></div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div><p style="background: white;"><span style="color: #404040; font-size: 13pt;"><span style="text-decoration: underline;">Oracle Fusion Applications Installation</span><strong>: Configuring Oracle Identity and Access Management components<br />
</strong></span></p>
<p style="background: white;">Previous: <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></strong></p>
<p style="background: white;">Configuring Oracle Identity Management components&#8221; can be divided into following tasks.</p>
<ol>
<li>Configuring the Web Tier</li>
<li>Create Weblogic Domain for Identity Management</li>
<li>Extending the Domain with Oracle Internet Directory</li>
<li>Extending the Domain with Oracle Directory Service Manager (ODSM)</li>
<li>Extending the Domain with Oracle Virtual Directory</li>
<li>Extending the Domain with Oracle Access Manager</li>
<li>Extending the Domain to Configure Oracle Identity Manager and Oracle SOA Suite</li>
<li>Installing and Configuring WebGate</li>
</ol>
<p><span style="color: red; background-color: white;">Please note that this post is going to be long so allow time to load all images.</span></p>
<p style="background: white;"><span style="color: #632423; font-size: 14pt; text-decoration: underline;"><strong>Configuring the Web Tier<br />
</strong></span></p>
<p>Start the configuration from <strong>&lt;Web_Home&gt;/bin<br />
</strong></p>
<blockquote><p>[oracle@fusion bin]$ <strong>cd /app/fusion/bea_default/Oracle_WT1/bin</strong></p>
<p>[oracle@fusion bin]$ <strong>./config.sh</strong></p></blockquote>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring1.png" alt="" /></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring2.png" alt="" /></p>
<p>Click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring3.png" alt="" /></p>
<p>Select &#8220;<strong>Oracle HTTP Server</strong>&#8221; and click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring4.png" alt="" /></p>
<p>For Instance location enter &#8220;/app/fusion/bea_default/instances&#8221; since we will keep all instances in this location. Provide any appropriate Instance name and OHS component name. We will go for the defaults. Click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring5.png" alt="" /></p>
<p>Select &#8220;<strong>Specify Ports using Configuration File</strong>&#8221; and enter file name as <strong>/home/oracle/staticports.ini<br />
</strong></p>
<p>Now we will copy staticports.ini default file from &lt;repository_location&gt;/installers/webtier/Disk1/stage/Response to home directory /home/oracle</p>
<blockquote><p><strong>cp /mnt/fusion/installers/webtier/Disk1/stage/Response/staticports.ini ~/staticports.ini<br />
</strong></p></blockquote>
<p>Now click on &#8220;<strong>View/Edit File</strong>&#8221; to edit this file.</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring6.png" alt="" /></p>
<p>Uncomment and set the following values. Click <strong>Save</strong></p>
<p><strong>OPMN Local Port = 6700<br />
</strong></p>
<p><strong>OHS Port = 7777<br />
</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring7.png" alt="" /></p>
<p>Click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring8.png" alt="" /></p>
<p>Deselect email notification and click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring9.png" alt="" /></p>
<p>Save summary if needed and click <strong>Configure</strong> to start configuration.</p>
<blockquote><p><strong>Important Note:</strong> If SELinux is enabled in your Linux operating System then it will throw an error. Since we already disabled it during installation, we will not see that error here.</p></blockquote>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring10.png" alt="" /></p>
<p>Once installation finishes, click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring11.png" alt="" /></p>
<p>Save installation summary if needed and click <strong>Finish</strong> to complete the installation.</p>
<p>It would have already started HTTP server now. We can verify the same.</p>
<blockquote><p>[oracle@fusion instances]$ ps -ef | grep http</p>
<p><span style="font-size: 10pt;">oracle 3521 3491 0 10:06 ? 00:00:00 /app/fusion/bea_default/Oracle_WT1/ohs/bin/httpd.worker -DSSL<br />
</span></p>
<p><span style="font-size: 10pt;">oracle 3547 3521 0 10:06 ? 00:00:00 /app/fusion/bea_default/Oracle_WT1/ohs/bin/httpd.worker -DSSL<br />
</span></p>
<p><span style="font-size: 10pt;">oracle 3548 3521 0 10:06 ? 00:00:00 /app/fusion/bea_default/Oracle_WT1/ohs/bin/httpd.worker -DSSL<br />
</span></p>
<p><span style="font-size: 10pt;">oracle 3549 3521 0 10:06 ? 00:00:00 /app/fusion/bea_default/Oracle_WT1/ohs/bin/httpd.worker -DSSL<br />
</span></p></blockquote>
<p>Check /app/fusion/bea_default/Oracle_WT1/instances/instance1/config/OHS/ohs1/httpd.conf to make sure it reflects correct user and group name</p>
<p><strong>User oracle</strong></p>
<p><strong>Group oinstall<br />
</strong></p>
<p>We can launch <span style="color: red;">http://fusion:7777</span> (Homepage of Oracle HTTP server) now. It will look as follows.</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring12.png" alt="" /></p>
<p><span style="color: #632423; font-size: 15pt; text-decoration: underline;"><strong>Create Weblogic Domain for Identity Management<br />
</strong></span></p>
<p>&nbsp;</p>
<p>Start the configuration from <strong>&lt;Middleware Home&gt;/oracle_common/commin/bin</strong></p>
<blockquote><p>[oracle@fusion bin]$ /app/fusion/bea_default/oracle_common/common/bin/config.sh</p></blockquote>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring13.png" alt="" /><strong><br />
</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring14.png" alt="" /><strong><br />
</strong></p>
<p>Select &#8220;Create a new Weblogic domain&#8221; and click<strong> Next<br />
</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring15.png" alt="" /><strong><br />
</strong></p>
<p>Select &#8220;<strong>Oracle Enterprise Manager – 11.1.1.0 [oracle_common]</strong>&#8221; and &#8220;<strong>Oracle JRF – 11.1.1.0 [oracle_common]</strong>&#8221; and click <strong>Next<br />
</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring16.png" alt="" /></p>
<p>Enter details as above or accept default values and click <strong>Next.<br />
</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring17.png" alt="" /><strong><br />
</strong></p>
<p>Since it accepts minimum 8 characters set password again to<strong><br />
</strong>oracle123. Please note that you can also change username from weblogic but in future whenever we refer to weblogic user you must enter the new user which selected. We will go for default &#8220;weblogic&#8221; username</p>
<p><strong><a href="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring18.png"><img class="alignnone size-full wp-image-882" title="020612_0626_Configuring18" src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring18.png" alt="" width="628" height="474" /></a><br />
</strong></p>
<p>You would see option of Oracle JRockit here. So select that JDK in this list.</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring19.png" alt="" /><strong><br />
</strong></p>
<p>Select &#8220;Administration Server&#8221; and &#8220;Managed Servers, Clusters and Machines&#8221;. Click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring20.png" alt="" /><strong><br />
</strong></p>
<p>Keep defaults but make a note of the port since this will be widely used during next part of installation. Click <strong>Next<br />
</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring21.png" alt="" /><strong><br />
</strong></p>
<p>Just click <strong>Next<br />
</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring22.png" alt="" /><strong><br />
</strong></p>
<p>Click <strong>Next</strong> again</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring23.png" alt="" /><strong><br />
</strong></p>
<p>Select Second Tab &#8220;<strong>Unix Machine</strong>&#8221; and enter the hostname as above. Click <strong>Next<br />
</strong></p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring24.png" alt="" /><strong><br />
</strong></p>
<p>Click on <strong>AdminServer</strong> and Click right arrow. Click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring25.png" alt="" /><strong><br />
</strong></p>
<p>It will now look as above. Click <strong>Next<br />
</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring26.png" alt="" /><strong><br />
</strong></p>
<p>On Summary page click <strong>Create<br />
</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring27.png" alt="" /><strong><br />
</strong></p>
<p>Once installation finishes, click <strong>Done<br />
</strong></p>
<p>Make sure that the encrypted username and password values are already in boot.properties</p>
<blockquote><p>[oracle@fusion security]$ <span style="color: red;"><strong>more /app/fusion/bea_default/user_projects/domains/IDM_domain/servers/AdminServer/security/boot.properties</strong><br />
</span></p>
<p># Generated by Configuration Wizard on Mon Jan 23 10:59:07 GST 2012</p>
<p>username={AES}zaXc3+4y2KGuxnK6WkI7ehKcliQDeandkjdTdu0vpuY=</p>
<p>password={AES}WZ6Zo+j6aGoCyE2nQmCCdboEkA8TDGRlagdSqFGRedo=</p></blockquote>
<p>&nbsp;</p>
<p>Set StartScriptEnabled=true in nodemanager.properties by running following script</p>
<blockquote><p><strong>[oracle@fusion bin]$ <span style="color: red;">cd /app/fusion/bea_default/oracle_common/common/bin</span></strong></p>
<p><strong> [oracle@fusion bin]$ <span style="color: red;">./setNMProps.sh</span><br />
</strong></p>
<p>Appending required nodemanager.properties</p></blockquote>
<p>Verify the change.</p>
<blockquote><p><strong>[oracle@fusion bin]$ <span style="color: red;">tail -f /app/fusion/bea_default/wlserver_10.3/common/nodemanager/nodemanager.properties<br />
</span></strong></p>
<p>#Required NM Property overrides (append to existing nodemanager.properties)</p>
<p>StartScriptEnabled=true</p></blockquote>
<p>&nbsp;</p>
<p><span style="font-size: 13pt;"><strong>Start Node manager<br />
</strong></span></p>
<blockquote><p><strong>[oracle@fusion bin]$ <span style="color: red;">cd /app/fusion/bea_default/wlserver_10.3/server/bin<br />
</span></strong></p>
<p><strong>[oracle@fusion bin]$ <span style="color: red;">nohup ./startNodeManager.sh &amp;</span><br />
</strong></p>
<p><strong>…<br />
</strong></p>
<p>IDM_domain -&gt; /app/fusion/bea_default/user_projects/domains/IDM_domain</p>
<p>…</p>
<p>INFO: Secure socket listener started on port 5556</p></blockquote>
<p>&nbsp;</p>
<p><span style="font-size: 12pt;"><strong>Start Weblogic AdminServer<br />
</strong></span></p>
<blockquote><p>[oracle@fusion bin]$ <span style="color: red;"><strong>nohup</strong></span><br />
<span style="color: red;"><strong>/app/fusion/bea_default/user_projects/domains/IDM_domain/bin/startWebLogic.sh &amp;<br />
</strong></span></p></blockquote>
<p>tail nohup.out file until it shows following message.</p>
<p><strong>&lt;Jan 23, 2012 11:55:21 AM GST&gt; &lt;Notice&gt; &lt;WebLogicServer&gt; &lt;BEA-000360&gt; &lt;Server started in RUNNING mode&gt;</strong></p>
<p>&nbsp;</p>
<p><span style="font-size: 12pt;"><strong>Open Weblogic Admin Console<br />
</strong></span></p>
<p>Launch Weblogic Admin console through<strong><br />
<a href="http://fusion:7001/console">http://fusion:7001/console</a><br />
</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring28.png" alt="" /></p>
<p>Login with weblogic/oracle123</p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring29.png" alt="" /><strong><br />
</strong></p>
<p>&nbsp;</p>
<p>Note: Go to preferences and change &#8220;automatic acquire lock&#8221; settings to avoid accidental changes since we are in development mode.</p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring30.png" alt="" /><strong><br />
</strong></p>
<p>&nbsp;</p>
<p><span style="color: #632423;"><strong><span style="font-size: 13pt;">Configuring HTTP server for the Administration Server</span><span style="font-size: 14pt;"><br />
</span></strong></span></p>
<p>&nbsp;</p>
<p>Create a new file admin.conf as follows.</p>
<p>&nbsp;</p>
<blockquote><p>[oracle@fusion moduleconf]$ <strong>more /app/fusion/bea_default/Oracle_WT1/instances/<span style="color: red;">instance1/config/OHS/ohs1/moduleconf/admin.conf</span><br />
</strong></p>
<p>&lt;VirtualHost *:7777&gt;</p>
<p>ServerName fusion:80</p>
<p>ServerAdmin you@your.address</p>
<p>RewriteEngine On</p>
<p>RewriteOptions inherit</p>
<p>RewriteRule ^/console/jsp/common/logout.jsp /oamsso/logout.html [PT]</p>
<p>RewriteRule ^/em/targetauth/emaslogout.jsp /oamsso/logout.html [PT]</p>
<p># Admin Server and EM</p>
<p>&lt;Location /console&gt;</p>
<p>SetHandler weblogic-handler</p>
<p>WebLogicHost fusion</p>
<p>WeblogicPort 7001</p>
<p>&lt;/Location&gt;</p>
<p>&lt;Location /consolehelp&gt;</p>
<p>SetHandler weblogic-handler</p>
<p>WebLogicHost fusion</p>
<p>WeblogicPort 7001</p>
<p>&lt;/Location&gt;</p>
<p>&lt;Location /em&gt;</p>
<p>SetHandler weblogic-handler</p>
<p>WebLogicHost fusion</p>
<p>WeblogicPort 7001</p>
<p>&lt;/Location&gt;</p>
<p>&lt;/VirtualHost&gt;</p></blockquote>
<p>&nbsp;</p>
<p><strong style="font-size: 12pt;">Restart http server.</strong></p>
<blockquote><p>ORACLE_HOME=/app/fusion/bea_default/Oracle_WT1</p>
<p>export ORACLE_HOME</p>
<p>ORACLE_INSTANCE=/app/fusion/bea_default/Oracle_WT1/instances/instance1</p>
<p>export ORACLE_INSTANCE</p>
<p>PATH=$ORACLE_HOME/opmn/bin:$PATH</p>
<p>export PATH</p>
<p>&nbsp;</p>
<p>opmnctl stopall</p>
<p>opmnctl startall</p></blockquote>
<p>&nbsp;</p>
<p><span style="font-size: 12pt;"><strong>Now we need to Register HTTP server with Weblogic Server so that Enterprise Manager can monitor the instance.<br />
</strong></span></p>
<blockquote><p>[oracle@fusion ~]$ <span style="color: red;"><strong>opmnctl registerinstance -adminHost fusion -adminport 7001 -adminUsername weblogic</strong></span></p>
<p>Command requires login to weblogic admin server (fusion):</p>
<p>Username: weblogic</p>
<p>Password:</p>
<p>…</p>
<p>Done</p>
<p>Registering instance</p>
<p>Command succeeded.</p></blockquote>
<p>Note: We will not enable load-balancer access since we have skipped load-balancing in this single node installation guide.</p>
<p>&nbsp;</p>
<p><span style="font-size: 12pt; background-color: white;"><strong>Enable Weblogic Plugin<br />
</strong></span></p>
<p><span style="background-color: white;">Log in the Oracle Weblogic Server Administration and click on Lock and Edit. Click on IDMDomain and Click on Configuration tab and then select the Web Applications tab.</span></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring31.png" alt="" /></p>
<p>&nbsp;</p>
<p><span style="color: #444444;"><strong>Scroll down and enable &#8220;Weblogic Plug-in Enabled&#8221;.<br />
</strong></span></p>
<p><a href="http://bloggingaboutoracleapplications.org/wp-content/uploads/431.png"><span style="text-decoration: underline;"><br />
</span></a>Click on Save and Activate the Changes.</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring32.png" alt="" /></p>
<p><strong>Restart the Weblogic Administration Server.<br />
</strong></p>
<p>&nbsp;</p>
<h2><span style="color: #632423; text-decoration: underline;">Extending the Domain with Oracle Internet Directory<br />
</span></h2>
<p>Start the configuration from <strong>&lt;IDM Oracle Home/bin</strong></p>
<blockquote><p>[oracle@fusion bin]$ cd /app/fusion/bea_default/Oracle_IDM1/bin</p>
<p>[oracle@fusion bin]$ ./config.sh &amp;</p></blockquote>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring33.png" alt="" /></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring34.png" alt="" /></p>
<p>Click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring35.png" alt="" /></p>
<p>Select &#8220;<strong>Configure Without A Domain</strong>&#8221; and click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring36.png" alt="" /></p>
<p>Make sure to select any directory inside MW_HOME/instances. You can accept default for Instance Name. Click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring37.png" alt="" /></p>
<p>Deselect email notification and click <strong>Next</strong></p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring38.png" alt="" /></p>
<p>Select only &#8220;<strong>Oracle Internet Directory</strong>&#8221; and click <strong>Next</strong></p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring39.png" alt="" /></p>
<p>Select &#8220;<strong>Specify Ports using Configuration File</strong>&#8221; and enter file name as <strong>/home/oracle/staticports.ini<br />
</strong></p>
<p>In another terminal window copy the staticports.ini file to home directory.</p>
<blockquote><p>[oracle@fusion bin]$ cp /app/fusion/provisioning/idm/idm/Disk1/stage/Response/staticports.ini ~/</p></blockquote>
<p>Click on View/Edit file</p>
<p>&nbsp;</p>
<blockquote><p><span style="color: red;"><strong>VERY IMPORTANT:<br />
</strong></span></p>
<p>As per Oracle Manual we should Change it to as follows.</p>
<p style="background: white;"><span style="color: #002060;">#The Non-SSL port for OID<br />
</span></p>
<p style="background: white;"><span style="color: #002060;">Oracle Internet Directory Port No = 389<br />
</span></p>
<p style="background: white;"><span style="color: #002060;">#The SSL port for OID<br />
</span></p>
<p style="background: white;"><span style="color: #002060;">Oracle Internet Directory (SSL) Port No = 636<br />
</span></p>
<p>&nbsp;</p>
<p>But OID fails to configure and start at the end of installation with these values so we will stick to the OID values for 11g in the staticports.ini and just remove the comments.</p>
<p>&nbsp;</p>
<p style="background: white;"><span style="color: #002060;">#The Non-SSL port for OID<br />
</span></p>
<p style="background: white;"><span style="color: #002060;">Oracle Internet Directory Port No = 3060<br />
</span></p>
<p style="background: white;"><span style="color: #002060;">#The SSL port for OID<br />
</span></p>
<p style="background: white;"><span style="color: #002060;">Oracle Internet Directory (SSL) Port No = 3061<br />
</span></p>
</blockquote>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring40.png" alt="" /></p>
<p>Click <strong>Save</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring41.png" alt="" /></p>
<p>Once saved, click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring42.png" alt="" /></p>
<p>Enter oracle123 or any suitable password. If you are using different passwords then please make a note of all of them. Click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring43.png" alt="" /></p>
<p>Since we are not using any domains as such but as we have added an entry in our hosts file for fusion.localdomain, we will add &#8220;<strong>dc=localdomain</strong>&#8221; for Realm. Enter oracle123 or any suitable password. Click <strong>Next</strong></p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring44.png" alt="" /></p>
<p>Save summary if needed and click <strong>Configure</strong> to start configuration.</p>
<p><strong><a href="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring46.png"><img class="alignnone size-full wp-image-881" title="020612_0626_Configuring46" src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring46.png" alt="" width="627" height="506" /></a></strong></p>
<p>Once installation finishes, click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring47.png" alt="" /><strong><br />
</strong></p>
<p>Save installation summary if needed and click <strong>Finish</strong> to complete the installation.</p>
<p>&nbsp;</p>
<p><strong>Validate the OID installation<br />
</strong></p>
<blockquote><p>[oracle@fusion ~]$ <span style="color: red;"><strong>export ORACLE_HOME=/app/fusion/bea_default/Oracle_IDM1<br />
</strong></span></p>
<p>[oracle@fusion ~]$ <span style="color: red;"><strong>export ORACLE_INSTANCE=/app/fusion/bea_default/instances/oid_inst1<br />
</strong></span></p>
<p>[oracle@fusion ~]$ <span style="color: red;"><strong>export PATH=$ORACLE_HOME/opmn/bin:$ORACLE_HOME/bin:$ORACLE_HOME/ldap/bin:$ORACLE_HOME/ldap/admin:$PATH<br />
</strong></span></p>
<p>[oracle@fusion ~]$ <span style="color: red;"><strong>ldapbind -h fusion -p 3060 -D &#8220;cn=orcladmin&#8221; -q<br />
</strong></span></p>
<p>Please enter bind password:</p>
<p>bind successful</p>
<p>[oracle@fusion ~]$ <span style="color: red;"><strong>ldapbind -h fusion -p 3061 -D &#8220;cn=orcladmin&#8221; -q -U 1</strong></span></p>
<p>Please enter bind password:</p>
<p>bind successful</p>
<p>[oracle@fusion ~]$ <span style="color: red;"><strong>opmnctl status</strong></span></p>
<p>Processes in Instance: oid_inst1</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;</p>
<p>ias-component | process-type | pid | status</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;</p>
<p>oid1 | oidldapd | 19810 | Alive</p>
<p>oid1 | oidldapd | 19798 | Alive</p>
<p>oid1 | oidmon | 19785 | Alive</p>
<p>EMAGENT | EMAGENT | 19325 | Alive</p></blockquote>
<p>&nbsp;</p>
<p><span style="color: #632423;"><strong><span style="font-size: 13pt;">Registering Oracle Internet Directory with the WebLogic Server Domain</span><span style="font-size: 14pt;"><br />
</span></strong></span></p>
<blockquote><p>[oracle@fusion ~]$ <span style="color: red;"><strong>echo $ORACLE_HOME</strong></span></p>
<p>/app/fusion/bea_default/Oracle_IDM1</p>
<p>[oracle@fusion ~]$ <span style="color: red;"><strong>echo $ORACLE_INSTANCE</strong></span></p>
<p>/app/fusion/bea_default/instances/oid_inst1</p>
<p>[oracle@fusion ~]$ <span style="color: red;"><strong>opmnctl registerinstance -adminHost fusion -adminPort 7001 -adminUsername weblogic<br />
</strong></span></p>
<p>Command requires login to weblogic admin server (fusion):</p>
<p>Username: weblogic</p>
<p>Password:</p>
<p>Registering instance</p>
<p>Command succeeded.</p></blockquote>
<p>&nbsp;</p>
<p><strong>Note:</strong> We have skipped next steps related to SSL since we are setting up non-SSL connections here.</p>
<p>&nbsp;</p>
<p><span style="color: black; font-size: 12pt; background-color: white;"><strong>Update the Enterprise Manager Repository URL</strong><br />
</span></p>
<p><span style="color: black; background-color: white;">Next we will update the Enterprise Manager Repository URL using the emctl utility with the <strong>switchOMS</strong> flag. The emctl utility is located under the <em>ORACLE_INSTANCE</em><span style="font-family: Courier New; font-size: 10pt;">/EMAGENT/EMAGENT/bin </span>directory.<br />
</span></p>
<blockquote><p>[oracle@fusion ~]$ <span style="color: red;"><strong>cd /app/fusion/bea_default/instances/oid_inst1/EMAGENT/EMAGENT/bin</strong></span></p>
<p>[oracle@fusion bin]$ <span style="color: red;"><strong>./emctl switchOMS http://fusion:7001/em/upload<br />
</strong></span></p>
<p>Oracle Enterprise Manager 10g Release 5 Grid Control 10.2.0.5.0.</p>
<p>Copyright (c) 1996, 2009 Oracle Corporation. All rights reserved.</p>
<p>SwitchOMS succeeded.</p></blockquote>
<p>&nbsp;</p>
<p>We can now verify whether this instance is registered for monitoring agent.</p>
<p>Login to <strong>http://fusion:7001/em</strong></p>
<p>Click on <strong>Farm-&gt;Agent monitored targets.</strong></p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring48.png" alt="" /><strong><br />
</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring49.png" alt="" /><strong><br />
</strong></p>
<p>You should be able to see the OID instance under this. Make sure that the Agent URL is showing up fine. If the status shows as &#8220;Need Configuration&#8221; then click on Configure and then in next screen enter weblogic user credentials. It should now show the correct Agent URL.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p style="background: white;"><span style="color: #632423; font-size: 15pt; text-decoration: underline;"><strong>Extending the Domain with Oracle Directory Service Manager (ODSM)<br />
</strong></span></p>
<p>Start the configuration from <strong>&lt;IDM Oracle Home&gt;/bin</strong></p>
<blockquote><p>[oracle@fusion bin]$ cd /app/fusion/bea_default/Oracle_IDM1/bin</p>
<p>[oracle@fusion bin]$ <span style="color: red;"><strong>./config.sh &amp;</strong></span></p></blockquote>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring50.png" alt="" /><strong><br />
</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring51.png" alt="" /><strong><br />
</strong></p>
<p>Click<strong> Next<br />
</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring52.png" alt="" /><strong><br />
</strong></p>
<p>Select &#8220;<strong>Extend Existing Domain</strong>&#8221; and enter details of existing weblogic Server and AdminServer port. Click <strong>Next</strong></p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring53.png" alt="" /><strong><br />
</strong></p>
<p>You can ignore this error since we created this domain using the Identity Management installer. Click <strong>Yes</strong> to ignore.</p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring54.png" alt="" /><strong><br />
</strong></p>
<p>Verify that the weblogic server directory shown is correct as per previous steps. Specify name and path for Oracle Directory Service instance. Make sure to keep the instance in same parent directory as previous instances. Click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring55.png" alt="" /></p>
<p>Deselect email notification and click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring56.png" alt="" /></p>
<p>Select Oracle &#8220;<strong>Directory Service Manager</strong>&#8221; and click <strong>Next</strong></p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring57.png" alt="" /></p>
<p>Select &#8220;<strong>Specify Ports using Configuration File</strong>&#8221; and enter file name as <strong>/home/oracle/staticports.ini</strong></p>
<p>Meanwhile in another terminal window copy the <strong>staticports.ini</strong> to home directory.</p>
<blockquote><p>[oracle@fusion bin]$ cp -p /app/fusion/provisioning/idm/idm/Disk1/stage/Response/staticports.ini ~/</p></blockquote>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring58.png" alt="" /></p>
<p>Uncomment the ODS Server Port and keep it default 7006. Click Save.</p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring59.png" alt="" /></p>
<p>Once Saved click Next.</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring60.png" alt="" /></p>
<p>Save summary if needed and click <strong>Configure</strong> to start configuration.</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring61.png" alt="" /></p>
<p>Once installation finishes, click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring62.png" alt="" /></p>
<p>Save installation summary if needed and click <strong>Finish</strong> to complete the installation.</p>
<p>&nbsp;</p>
<p><span style="font-size: 12pt;"><strong>Password-less startup for ODS<br />
</strong></span></p>
<blockquote><p>cd /app/fusion/bea_default/user_projects/domains/IDM_domain/servers/wls_ods1/security</p>
<p>cp ../../AdminServer/security/boot.properties .</p>
<p>cd /app/fusion/bea_default/user_projects/domains/IDM_domain/bin</p>
<p>nohup ./startManagedWebLogic.sh wls_ods1<strong><br />
</strong></p></blockquote>
<p>&nbsp;</p>
<p>Now you can access ODS homepage at <a href="http://fusion:7006/odsm/faces/odsm.jspx">http://fusion:7006/odsm/faces/odsm.jspx</a> (as per the above post-installation summary screen)</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring63.png" alt="" /></p>
<p>&nbsp;</p>
<p><span style="font-size: 12pt;"><strong>Register ODS with OID<br />
</strong></span></p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring64.png" alt="" /></p>
<p>Click on <strong>Connect to a directory</strong> -&gt; <strong>Create A New Connection</strong></p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring65.png" alt="" /></p>
<p>Enter the details for OID.</p>
<p>Name: <strong>fusion-oid</strong></p>
<p>Server: <strong>fusion</strong></p>
<p>SSL Enabled: <strong>Unchecked</strong></p>
<p>User Name: <strong>cn=orcladmin</strong></p>
<p>Password: <strong>oracel123</strong></p>
<p>Start Page: <strong>Home</strong></p>
<p>Click <strong>Connect</strong></p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring66.png" alt="" /></p>
<p>Once connection is successful, you should be able to see OID page.<img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring67.png" alt="" /></p>
<p>You can randomly check whether you are able to see details of any user, for example <strong>cn=orcladmin</strong></p>
<p>&nbsp;</p>
<p><span style="color: #632423; font-size: 13pt;"><strong>Configuring Oracle HTTP Servers to Access the ODSM Console<br />
</strong></span></p>
<blockquote><p>[oracle@fusion moduleconf]$ cd /app/fusion/bea_default/Oracle_WT1/instances/instance1/config/OHS/ohs1/moduleconf</p>
<p>[oracle@fusion moduleconf]$ vi admin.conf</p>
<p><strong># Append following lines in admin.conf</strong></p>
<p><span style="color: red;"> &lt;Location /odsm&gt;<br />
</span></p>
<p><span style="color: red;"> SetHandler weblogic-handler<br />
</span></p>
<p><span style="color: red;"> WebLogicCluster fusion:7006<br />
</span></p>
<p><span style="color: red;"> &lt;/Location&gt;<br />
</span></p></blockquote>
<p>&nbsp;</p>
<p><strong>Restart HTTP server.<br />
</strong></p>
<p>Now we can access ODSM through <a href="http://fusion:7777/odsm/faces/odsm.jspx">http://fusion:7777/odsm/faces/odsm.jspx</a></p>
<p>&nbsp;</p>
<p><span style="text-decoration: underline;"><strong style="color: #632423;"><span style="font-size: 15pt;">Extending the Domain with Oracle Virtual Directory</span></strong></span></p>
<p>Start the configuration from <strong>&lt;IDM Oracle Home&gt;/bin</strong></p>
<blockquote><p>[oracle@fusion ~]$ cd /app/fusion/bea_default/Oracle_IDM1/bin/</p>
<p>[oracle@fusion bin]$ ./config.sh &amp;</p></blockquote>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring68.png" alt="" /></p>
<p>Click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring69.png" alt="" /></p>
<p>Select &#8220;<strong>Configure Without A Domain</strong>&#8220;. Click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring70.png" alt="" /></p>
<p>Provide values for Oracle Virtual Directory (OVD) instance. You can accept default values. Click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring71.png" alt="" /></p>
<p>Deselect email notification and click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring72.png" alt="" /></p>
<p>Select &#8220;<strong>Oracle Virtual Directory</strong>&#8221; and click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring73.png" alt="" /></p>
<p>Select &#8220;<strong>Specify Ports using Configuration File</strong>&#8221; and enter file name as <strong>/home/oracle/staticports.ini</strong></p>
<p>Open a separate terminal/putty window and copy <strong>staticports.ini</strong> file to home directory.</p>
<blockquote><p>[oracle@fusion ~]$ cp /app/fusion/provisioning/idm/idm/Disk1/stage/Response/staticports.ini ~/</p></blockquote>
<p>Click on <strong>View/Edit</strong>.</p>
<p style="background: white;"><span style="color: black;">Edit the staticports.ini file to assign ports 6501 and 7501, as follows.<br />
</span></p>
<blockquote>
<p style="background: white;"><span style="color: black;"># The non-SSL port for Oracle Virtual Directory<br />
</span></p>
<p style="background: white;"><span style="color: black;">Oracle Virtual Directory port = 6501<br />
</span></p>
<p style="background: white;"><span style="color: black;"># The SSL port for Oracle Virtual Directory<br />
</span></p>
<p style="background: white;"><span style="color: black;">Oracle Virtual Directory (SSL) port = 7501<br />
</span></p>
</blockquote>
<p style="background: white;"><span style="color: black;">Click <strong>Save</strong> and then <strong>Next<br />
</strong></span></p>
<p style="background: white;"><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring74.png" alt="" /><span style="color: black;"><br />
</span></p>
<p style="background: white;"><span style="color: black;">Provide OID login details.<br />
</span></p>
<p style="background: white;"><span style="color: black;">Uncheck &#8220;Configure Administrative Server in secure mode&#8221; since we are not using SSL anywhere in this installation. Click <strong>Next</strong><br />
</span></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring75.png" alt="" /></p>
<p>Click <strong>Ok<br />
</strong></p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring76.png" alt="" /></p>
<p>Save summary if needed and click <strong>Configure</strong> to start configuration.</p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring77.png" alt="" /></p>
<p>Once installation finishes, click <strong>Next</strong></p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring78.png" alt="" /></p>
<p>Save installation summary if needed and click <strong>Finish</strong> to complete the installation.</p>
<p>&nbsp;</p>
<p><span style="font-size: 13pt;"><strong>Registering OVD with the Oracle WebLogic Server Domain<br />
</strong></span></p>
<blockquote><p>[oracle@fusion bin]$ cd /app/fusion/bea_default/instances/ovd_inst1/bin</p>
<p>[oracle@fusion bin]$ <span style="color: red;"><strong>./opmnctl registerinstance -adminHost fusion -adminPort 7001 -adminUsername</strong></span> weblogic</p>
<p>Command requires login to weblogic admin server (fusion):</p>
<p>Username: weblogic</p>
<p>Password:</p>
<p>Registering instance</p>
<p>Command succeeded.</p></blockquote>
<p>&nbsp;</p>
<p><span style="color: black; background-color: white;"><strong>Update the Enterprise Manager Repository URL using the emctl utility with the switchOMS flag.</strong><br />
</span></p>
<p><span style="color: black; background-color: white;">The emctl utility is located under the <em>ORACLE_INSTANCE</em><span style="font-family: Courier New; font-size: 10pt;">/EMAGENT/EMAGENT/bin </span>directory.<br />
</span></p>
<blockquote><p>[oracle@fusion bin]$ cd /app/fusion/bea_default/instances/ovd_inst1/EMAGENT/EMAGENT/bin</p>
<p>[oracle@fusion bin]$ <span style="color: red;"><strong>./emctl switchOMS http://fusion:7001/em/upload</strong></span></p>
<p>Oracle Enterprise Manager 10g Release 5 Grid Control 10.2.0.5.0.</p>
<p>Copyright (c) 1996, 2009 Oracle Corporation. All rights reserved.</p>
<p>SwitchOMS succeeded.</p></blockquote>
<p>&nbsp;</p>
<p>We can now verify whether this instance is registered for monitoring agent.</p>
<p>Login to <strong>http://fusion:7001/em</strong></p>
<p>Click on <strong>Farm-&gt;Agent monitored targets.</strong></p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring79.png" alt="" /><br />
<img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring80.png" alt="" /><br />
<img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring81.png" alt="" /><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring82.png" alt="" /></p>
<p>You should be able to see the OID and OVD instances under this. Make sure that the Agent URL is showing up fine. If the status shows as &#8220;Need Configuration&#8221; then click on Configure and then in next screen enter weblogic user credentials. It should now show the correct Agent URL.</p>
<p>&nbsp;</p>
<p><span style="font-size: 13pt;"><strong>Validate the Oracle Virtual Directory Instances<br />
</strong></span></p>
<blockquote><p>[oracle@fusion ~]$ <span style="color: red;"><strong>export ORACLE_HOME=/app/fusion/bea_default/Oracle_IDM1<br />
</strong></span></p>
<p>[oracle@fusion ~]$ <span style="color: red;"><strong>export ORACLE_INSTANCE=/app/fusion/bea_default/instances/ovd_inst1<br />
</strong></span></p>
<p>[oracle@fusion ~]$ <span style="color: red;"><strong>export PATH=$ORACLE_HOME/opmn/bin:$ORACLE_HOME/bin:$ORACLE_HOME/ldap/bin:$ORACLE_HOME/ldap/admin:$PATH<br />
</strong></span></p>
<p>[oracle@fusion bin]$ <span style="color: red;"><strong>ldapbind -h fusion -p 6501 -D &#8220;cn=orcladmin&#8221; –q</strong></span></p>
<p>Please enter bind password:</p>
<p>bind successful</p>
<p>[oracle@fusion bin]$ <span style="color: red;"><strong>ldapbind -h fusion -p 7501 -D &#8220;cn=orcladmin&#8221; -q -U 1<br />
</strong></span></p>
<p>Please enter bind password:</p>
<p>SSL handshake failed</p>
<p><span style="color: red;">This is fine since we did not configure SSL mode.</span></p></blockquote>
<p>&nbsp;</p>
<p><span style="color: #632423; font-size: 13pt;"><strong>Creating ODSM connections to Oracle Virtual Directory<br />
</strong></span></p>
<p>Open <a href="http://fusion:7777/odsm/faces/odsm.jspx">http://fusion:7777/odsm/faces/odsm.jspx</a></p>
<p>Click <strong>Connect to a directory</strong> -&gt; <strong>Create a new connection</strong></p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring83.png" alt="" /></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring84.png" alt="" /></p>
<p>Enter details of OVD here.</p>
<p>Name: <strong>fusion-ovd</strong></p>
<p>Host: <strong>fusion</strong></p>
<p>Port: <strong>8899</strong></p>
<p>SSL Enabled: <strong>Unchecked</strong></p>
<p>User Name: <strong>cn=orcladmin</strong></p>
<p>Password: <strong>oracle123</strong></p>
<p>Start Page: <strong>Home</strong></p>
<p>Click <strong>Connect</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring85.png" alt="" /></p>
<p>It will display OVD home page.</p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring86.png" alt="" /></p>
<p>Note: We are skipping the adapter creation for now. We will create them later once needed.</p>
<p>&nbsp;</p>
<p><span style="color: #632423; font-size: 15pt; text-decoration: underline;"><strong>Extending the Domain with Oracle Access Manager<br />
</strong></span></p>
<p>&nbsp;</p>
<p>Start the configuration from <strong>&lt;Middleware Home/oracle_common/commin/bin</strong></p>
<blockquote><p>[oracle@fusion bin]$ cd /app/fusion/bea_default/oracle_common/common/bin</p>
<p>[oracle@fusion bin]$ <span style="color: red;"><strong>./config.sh</strong></span></p></blockquote>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring87.png" alt="" /></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring88.png" alt="" /></p>
<p>Click &#8220;Extend an existing WebLogic domain&#8221; and click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring89.png" alt="" /></p>
<p>Scroll down and select <strong>user_projects-&gt;domains-&gt;IDM_domain</strong>. Click <strong>Next<br />
</strong></p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring90.png" alt="" /></p>
<p style="background: white;">Select only &#8220;<strong>Oracle Access Manager with Database Policy Store&#8221;</strong> and click on Next.</p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring91.png" alt="" /></p>
<p>Here you need to provide the database connection details and choose schema owner username. You can keep the name default but make sure to keep a note of it since you will need this later. Choose a password for example oracle123. Click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring92.png" alt="" /></p>
<p>Now it will test the database connectivity through JDBC.</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring93.png" alt="" /></p>
<p>Once successful, click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring94.png" alt="" /></p>
<p>Select &#8220;Managed Servers, Clusters and Machines&#8221; only and click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring95.png" alt="" /></p>
<p>The first row was from previous configuration of ODS and now there will be another row for OAM. Keep the default port and make a note of it. Enter wls_oam1 for the instance name (or whichever you chose while creating instance) and click <strong>Next</strong></p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring96.png" alt="" /></p>
<p>Just click <strong>Next</strong></p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring97.png" alt="" /></p>
<p>On the &#8220;<strong>Machines</strong>&#8221; tab make sure that correct hostname is entered. Click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring98.png" alt="" /></p>
<p>Select <strong>wls_oam1</strong> and click the right arrow.</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring99.png" alt="" /></p>
<p>Now it should look as above. Click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring100.png" alt="" /></p>
<p>On the summary page Click <strong>Extend</strong>.</p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring101.png" alt="" /></p>
<p>Click <strong>OK</strong> Since we are aware that these are correct ports being used by AdminServer and wls_ods1 instance.</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring102.png" alt="" /></p>
<p>Once configuration finishes, click <strong>Done</strong>.</p>
<p>You can start the managed server by using following command.</p>
<blockquote><p>[oracle@fusion bin]$ <span style="color: red;"><strong>cd /app/fusion/bea_default/user_projects/domains/IDM_domain/bin</strong></span></p>
<p>[oracle@fusion bin]$ .<span style="color: red;"><strong>/startManagedWebLogic.sh wls_oam1</strong></span></p></blockquote>
<p>This will create the directory <strong>/app/fusion/bea_default/user_projects/domains/IDM_domain/servers/wls_oam1</strong></p>
<p>Press CTRL+C to stop the process since we will need to configure startup without password prompt.</p>
<blockquote><p>[oracle@fusion wls_oam1]$ <span style="color: red;"><strong>cd /app/fusion/bea_default/user_projects/domains/IDM_domain/servers/wls_oam1</strong></span></p>
<p>[oracle@fusion wls_oam1]$ <span style="color: red;"><strong>cp ../wls_ods1/security/ boot.properties .</strong></span></p></blockquote>
<p>&nbsp;</p>
<p>Now we can start the managed server without prompting for password.</p>
<blockquote><p>[oracle@fusion bin]$ <span style="color: red;"><strong>cd /app/fusion/bea_default/user_projects/domains/IDM_domain/bin</strong></span></p>
<p>[oracle@fusion bin]$ <span style="color: red;"><strong>nohup ./startManagedWebLogic.sh wls_oam1 &amp;</strong></span></p></blockquote>
<p>&nbsp;</p>
<p><span style="color: #632423; font-size: 13pt;"><strong>Configuring Oracle HTTP Servers to Display Login Page and Oracle Access Manager Console</strong><br />
</span></p>
<p><strong>Append</strong> following entries in /app/fusion/bea_default/Oracle_WT1/instances/<strong>instance1/config/OHS/ohs1/moduleconf/admin.conf</strong></p>
<blockquote><p> <span style="color: red;">&lt;Location /oam&gt;</span></p>
<p><span style="color: red;"> SetHandler weblogic-handler<br />
</span></p>
<p><span style="color: red;"> WebLogicCluster fusion:14100<br />
</span></p>
<p><span style="color: red;"> &lt;/Location&gt;<br />
</span></p>
<p>&nbsp;</p>
<p><span style="color: red;"> &lt;Location /oamconsole&gt;<br />
</span></p>
<p><span style="color: red;"> SetHandler weblogic-handler<br />
</span></p>
<p><span style="color: red;"> WebLogicHost fusion<br />
</span></p>
<p><span style="color: red;"> WebLogicPort 7001<br />
</span></p>
<p><span style="color: red;"> &lt;/Location&gt;<br />
</span></p></blockquote>
<p>&nbsp;</p>
<p><strong>Restart HTTP Server</strong> to bring this to effect.</p>
<p><strong>Note: </strong>There are few other steps as well as per Oracle documentation but we will skip them for now.</p>
<p>&nbsp;</p>
<p><span style="color: #632423; font-size: 15pt; text-decoration: underline;"><strong>Extending the Domain to Configure Oracle Identity Manager and Oracle SOA Suite<br />
</strong></span></p>
<p>&nbsp;</p>
<p>Start the configuration from <strong>&lt;Middleware Home/oracle_common/common/bin</strong></p>
<blockquote><p>[oracle@fusion bin]$ <span style="color: red;"><strong>cd /app/fusion/bea_default/oracle_common/common/bin</strong></span></p>
<p>[oracle@fusion bin]$ <span style="color: red;"><strong>./config.sh &amp;<br />
</strong></span></p></blockquote>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring103.png" alt="" /></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring104.png" alt="" /></p>
<p>Select &#8220;<strong>Extend an existing WebLogic domain</strong>&#8221; and click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring105.png" alt="" /></p>
<p>Scroll down and select <strong>user_projects-&gt;domains-&gt;IDM_domain</strong> and click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring106.png" alt="" /></p>
<p>Select <strong>Oracle Identity Manager</strong>. It will automatically select <strong>Oracle SOA Suite</strong> and <strong>Oracle WSM</strong>. Click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring107.png" alt="" /></p>
<p>Check all to modify all entries together. Provide database connect details and select a password for all. Accept default value for Schema owner names. Click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring108.png" alt="" /></p>
<p>Now it will test the database connectivity through JDBC.</p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring109.png" alt="" /></p>
<p>Once JDBC test is successful, click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring110.png" alt="" /></p>
<p>Select only &#8220;<strong>Managed Servers, Clusters and Machines</strong>&#8221; and click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring111.png" alt="" /></p>
<p>Add entries for <strong>soa_server1</strong> and <strong>oim_server1</strong>. As per Oracle documentation you can change them to <strong>wls_soa1</strong> and <strong>wls_oim1</strong> as well. But here we have kept them as default.<strong><br />
</strong></p>
<p>Note the ports and click <strong>Next. </strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring112.png" alt="" /></p>
<p>Just click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring113.png" alt="" /></p>
<p>Since we are using Linux/Unix machine, <strong>delete</strong> entry from above screen. And proceed to <strong>Unix Machine</strong> tab.</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring114.png" alt="" /></p>
<p>Make sure correct hostname is entered here. Click <strong>Next</strong></p>
<p><a href="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring115.png"><img class="alignnone size-full wp-image-880" title="020612_0626_Configuring115" src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring115.png" alt="" width="628" height="472" /></a></p>
<p>Select <strong>oim_server1</strong> and <strong>soa_server1</strong> and click right arrow. (if you had renamed them to <strong>wls_oim1</strong> and <strong>wls_soa1</strong> then you will see those entries instead of this)</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring116.png" alt="" /><strong><br />
</strong></p>
<p>The screen will now look like above. Click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring117.png" alt="" /><strong><br />
</strong></p>
<p>On Summary screen click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring118.png" alt="" /><strong><br />
</strong></p>
<p>Click<strong> OK</strong></p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring119.png" alt="" /><strong><br />
</strong></p>
<p>Once configuration finishes, click <strong>Done<br />
</strong></p>
<p>&nbsp;</p>
<p><span style="color: #632423; font-size: 14pt;"><strong>Configuring Oracle Identity Manager<br />
</strong></span></p>
<p>Now we will configure the Identity Manager from<strong> &lt;IAM Oracle Home&gt;/bin</strong></p>
<blockquote><p>[oracle@fusion bin]$ <strong><span style="color: red;">cd /app/fusion/bea_default/Oracle_IAM/bin</span><br />
</strong></p>
<p>[oracle@fusion bin]$ <span style="color: red;"><strong>./config.sh &amp;</strong></span></p></blockquote>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring120.png" alt="" /><strong><br />
</strong></p>
<p>Click<strong> Next<br />
</strong></p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring121.png" alt="" /><strong><br />
</strong></p>
<p>Select only OIM Server and click <strong>Next</strong></p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring122.png" alt="" /><strong><br />
</strong></p>
<p>Enter database details in shown format &#8220;<strong>fusion:1521:fusiondb</strong>&#8220;. Select Schema names (keep default) and enter password (oracle123). Make sure to keep a note of these schema names <strong>DEV_OIM</strong> and <strong>DEV_MDS</strong>. We will need these later during provisioning plan. Click <strong>Next<br />
</strong></p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring123.png" alt="" /><strong><br />
</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring124.png" alt="" /><strong><br />
</strong></p>
<p>Enter AdminServer details in <strong>t3://&lt;hostname&gt;:&lt;port&gt; </strong>format. Here<strong> t3://fusion:7001<br />
</strong></p>
<p>&nbsp;</p>
<blockquote><p><strong>Important Note: </strong>Before clicking next make sure that AdminServer is running otherwise it may throw following error on next page. Start or restart AdminServer if you see this error.<strong><br />
</strong></p>
<p><span style="color: red;">INST-6180: Error while retrieving OIM Managed Server URL from the domain.</span></p></blockquote>
<p>&nbsp;</p>
<p>Click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring125.png" alt="" /><strong><br />
</strong></p>
<p>Enter passwords as follows and keep a note of them since we will require them in provisioning wizard.</p>
<p>OIM Admin password: Oracle123</p>
<p>Keystore Password: oracle123</p>
<p>Enter OIM HTTP URL as <a href="http://fusion:14000">http://fusion:14000</a> (based on port value in previous configuration step). Click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring126.png" alt="" /><strong><br />
</strong></p>
<p>Deselect both and click <strong>Next<br />
</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring127.png" alt="" /><strong><br />
</strong></p>
<p>Save the summary if required and click <strong>Configure.<br />
</strong></p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring128.png" alt="" /><strong><br />
</strong></p>
<p>Once configuration finishes click <strong>Next<br />
</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring129.png" alt="" /><strong><br />
</strong></p>
<p>Save the configuration summary if needed and click <strong>Finish</strong> to complete the configuration.</p>
<p>&nbsp;</p>
<p><span style="color: #632423; font-size: 15pt; text-decoration: underline;"><strong>Installing and Configuring WebGate<br />
</strong></span></p>
<p>Start Webgate 10g installation from <strong>&lt;repository_location&gt;/installers/webgate</strong></p>
<blockquote><p>[oracle@fusion webgate]$ <span style="color: red;"><strong>cd /mnt/fusion/installers/webgate</strong></span></p>
<p>[oracle@fusion webgate]$ <span style="color: red;"><strong>./Oracle_Access_Manager10_1_4_3_0_linux64_OHS11g_WebGate –gui<br />
</strong></span></p></blockquote>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring130.png" alt="" /></p>
<p>Click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring131.png" alt="" /></p>
<p>Enter the OS oracle user details. Click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring132.png" alt="" /></p>
<p>Select a path where you want to install webgate. We have selected <strong>/app/fusion/webgate</strong>. Click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring133.png" alt="" /></p>
<p>Click <strong>Next</strong></p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring134.png" alt="" /></p>
<p>Open a new terminal/putty window and execute following commands. Once done enter the location /app/fusion/oam_lib in this screen and click <strong>Next</strong> to start the installation.<strong><br />
</strong></p>
<p>&nbsp;</p>
<blockquote><p>[oracle@fusion oam_lib]$ <strong>mkdir /app/fusion/oam_lib</strong></p>
<p>[oracle@fusion oam_lib]$ <strong>ln -s /usr/lib64/libstdc++.so.5 /app/fusion/oam_lib/libstdc++.so.5<br />
</strong></p>
<p>[oracle@fusion oam_lib]$ <strong>ln -s /lib64/libgcc_s.so.1 /app/fusion/oam_lib/libgcc_s.so.1</strong></p></blockquote>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring135.png" alt="" /></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring136.png" alt="" /></p>
<p>Now WebGate Configuration will start. Select &#8220;<strong>Open Mode</strong>&#8221; and click <strong>Next</strong></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring137.png" alt="" /></p>
<p>&nbsp;</p>
<p>Since this screen requires WebGate ID from Access Manager. We need to first create a Webgate Agent in Access Manager. So keep this Java window open and open Oracle Access Manager Console in browser by entering <a href="http://fusion/oamconsole">http://fusion/oamconsole</a> or <a href="http://fusion:7777/oamconsole">http://fusion:7777/oamconsole</a></p>
<p>&nbsp;</p>
<p>Note: We could have done this before starting Webgate installation as well but keeping it here in the guide gives you an idea where we are going to this configuration. Next time when you install, you can do this step before itself.</p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring138.png" alt="" /></p>
<p>Login with weblogic admin user.</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring139.png" alt="" /></p>
<p>Once logged under SSO Agents, click on New &#8220;<strong>OAM 10g Webgate</strong>&#8221; (since we are installing 10g webgate).</p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring140.png" alt="" /></p>
<p>Enter name: <strong>Webgate_sso</strong> or any name</p>
<p>Base URL: <strong>http://fusion:7777<br />
</strong></p>
<p>Host Identifier: <strong>Webgate_sso</strong></p>
<p>Security: <strong>Open</strong></p>
<p>Uncheck all 3 options on right.</p>
<p><strong>Click Apply</strong></p>
<p>&nbsp;</p>
<p>Now <strong>Edit</strong> the same Webgate Agent again. It will show following screen.</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring141.png" alt="" /></p>
<p>&nbsp;</p>
<p>We did not put <span style="text-decoration: underline;">domain</span> since we are using only <a href="http://fusion">http://fusion</a></p>
<p><span style="text-decoration: underline;">Change Max Connections</span> to <strong>4</strong></p>
<p><span style="text-decoration: underline;">Logout URL:</span> Enter following values.</p>
<p><strong>/oamconsole/logout.html<br />
</strong></p>
<p><strong>/console/jsp/common/logout.jsp<br />
</strong></p>
<p><strong>/em/targetauth/eamlogout.jsp<br />
</strong></p>
<p>&nbsp;</p>
<p>Click <strong>Apply<br />
</strong></p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020612_0626_Configuring142.png" alt="" /></p>
<p>Once webgate Agent is created in OAM, go back to the already open configuration window and enter following details and click Next to finish the configuration. In case if the configuration window was closed, you can also launch the configuration from command prompt.</p>
<blockquote><p>[oracle@fusion webgate]$ <span style="color: red;"><strong>/app/fusion/webgate/access/oblix/tools/configureWebGate/start_configureWebGate -i /app/fusion/webgate/access -t WebGate</strong></span></p>
<p>Please enter the Mode in which you want the Web Gate to run : 1(Open) 2(Simple) 3(Cert) : <strong>1</strong></p>
<p>Please enter the Web Gate ID : <strong>Webgate_sso</strong></p>
<p>Please enter the Password for this Web Gate : &lt;enter oracle123 or any password here. Make note of it&gt;</p>
<p>Please enter the Access Server ID : <strong>wls_oam1</strong></p>
<p>Please enter the Access Server Host Machine Name : <strong>fusion</strong></p>
<p>Please enter the Access Server Port : <strong>5575</strong></p>
<p>Preparing to connect to Access Server. Please wait.</p>
<p>Web Gate installed Successfully.</p>
<p>Press enter key to continue &#8230;</p></blockquote>
<p>&nbsp;</p>
<p>As per Oracle documentation there are a few steps to use the Webgate and validate but we will skip them for now.</p>
<p>Next step is to prepare Identity and Policy Stores by creating necessary users and groups for provisioning Fusion Applications.</p>
<p>Next: <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></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 – 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="printfriendly alignleft"><a href="http://www.oratraining.com/blog/2012/02/configuring-oracle-identity-and-access-management-components/?pfstyle=wp" rel="nofollow" ><img src="//cdn.printfriendly.com/pf-button-both.gif" alt="Print Friendly" /></a></div><div class="tweetthis" style="text-align:left;"><p> <a class="tt" href="http://twitter.com/intent/tweet?text=Configuring+Oracle+Identity+and+Access+Management+components+http%3A%2F%2Foratraining.com%2Fblog%2F%3Fp%3D878" 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/configuring-oracle-identity-and-access-management-components/&amp;title=Configuring+Oracle+Identity+and+Access+Management+components" 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%2Fconfiguring-oracle-identity-and-access-management-components%2F&amp;title=Configuring%20Oracle%20Identity%20and%20Access%20Management%20components" 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/configuring-oracle-identity-and-access-management-components/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Creating a new Provisioning Plan</title>
		<link>http://www.oratraining.com/blog/2012/02/creating-a-new-provisioning-plan/</link>
		<comments>http://www.oratraining.com/blog/2012/02/creating-a-new-provisioning-plan/#comments</comments>
		<pubDate>Thu, 02 Feb 2012 19:16:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Application server]]></category>
		<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 DBA]]></category>
		<category><![CDATA[Oracle Fusion Applications]]></category>
		<category><![CDATA[fusion 11g]]></category>
		<category><![CDATA[fusion applications installation]]></category>
		<category><![CDATA[guide]]></category>
		<category><![CDATA[installation]]></category>
		<category><![CDATA[installing]]></category>
		<category><![CDATA[oracle applications]]></category>
		<category><![CDATA[oracle apps]]></category>
		<category><![CDATA[Oracle fusion applications]]></category>
		<category><![CDATA[provisioning]]></category>
		<category><![CDATA[provisioning plan]]></category>

		<guid isPermaLink="false">http://www.oratraining.com/blog/?p=617</guid>
		<description><![CDATA[Tweet Oracle Fusion Applications Installation: Creating a new Provisioning Plan Previous: Preparing Identity and Policy Store In order to create a new fusion applications provisioning plan we should launch the provisioning wizard again 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 [oracle@fusion bin]$ ./provisioningWizard.sh &#160; On Welcome screen, click Next &#160; Select [...]]]></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%2Fcreating-a-new-provisioning-plan%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/creating-a-new-provisioning-plan/"></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/creating-a-new-provisioning-plan/"  data-text="Creating a new Provisioning Plan" 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/creating-a-new-provisioning-plan/" data-counter="right"></script></div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div><p><span style="font-size: 13pt;"><span style="text-decoration: underline;">Oracle Fusion Applications Installation</span>: <strong>Creating a new Provisioning Plan<br />
</strong></span></p>
<p>Previous: <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 Store</a></strong></p>
<p>In order to create a new fusion applications provisioning plan we should launch the provisioning wizard again <span style="color: #333333;">from <strong>&lt;<em>framework_location&gt;/provisioning/bin</em></strong></span></p>
<p><span style="color: #333333;"><em>&lt;framework_location&gt; </em>is same what we mentioned in previous post. i.e.<em><strong> /app/fusion</strong></em></span></p>
<p><span style="color: #333333;">[oracle@fusion $ <strong>cd /app/fusion/provisioning/bin</strong><br />
</span></p>
<p><span style="color: #333333;">[oracle@fusion bin]$ <strong>./provisioningWizard.sh</strong><br />
</span></p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_1912_Creatingane1.png" alt="" /></p>
<p>On Welcome screen, click <strong>Next</strong></p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_1912_Creatingane2.png" alt="" /></p>
<p>Select &#8220;Create a New Applications Environment Provisioning Plan&#8221; and click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_1912_Creatingane3.png" alt="" /></p>
<p>Deselect Security updates notification and click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_1912_Creatingane4.png" alt="" /></p>
<p>Please note that in Fusion Applications each Applications will include multiple Weblogic Managed Servers, admin servers etc and since our Virtual Machine is not having sufficient capacity to host all these applications, we selected &#8220;Oracle Human Capital Management&#8221;. You can select any product which you wish to configure first. Click <strong>Details </strong>to see the topology details for the selected module.</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_1912_Creatingane5.png" alt="" /></p>
<p>Click <strong>Close</strong> and then <strong>Next</strong> on configurations screen.</p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_1912_Creatingane6.png" alt="" /></p>
<p>In this screen provide any name to this provisioning plan. Click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_1912_Creatingane7.png" alt="" /><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_1912_Creatingane8.png" alt="" /></p>
<p>Since we entered &#8220;<strong>weblogic</strong>&#8221; as Node Manager login earlier, provide its credentials.</p>
<p>Installers Directory Location: The stage or repository location. In our case <strong>/mnt/fusion</strong></p>
<p>Oracle Fusion Applications Home: Provide base location for the installation. <strong>/app/fusion</strong></p>
<p>Enter <strong>/app/fusion/instance</strong> for Application Configuration Directory.</p>
<p>As we have noted the location for Webgate Library earlier in Previous post, enter <strong>/app/fusion/oam_lib</strong></p>
<p>We had created IDM Properties file <span style="color: red;"><strong>/app/fusion/bea_default/Oracle_IAM/idmtools/bin/idmDomainConfig.param</strong></span> in previous post.</p>
<p>RDP Password: oracle123</p>
<p>Click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_1912_Creatingane9.png" alt="" /></p>
<p>Accept default values. Click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_1912_Creatingane10.png" alt="" /></p>
<p>Enter database details in this screen. Click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_1912_Creatingane11.png" alt="" /></p>
<p>Enter same password. Lets&#8217; keep oracle123 again <span style="font-family: Wingdings;">J</span></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_1912_Creatingane12.png" alt="" /></p>
<p>This will only accept earlier entered ODI Supervisor password. In our case, nothing to worry since we have all passwords as oracle123</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_1912_Creatingane13.png" alt="" /></p>
<p>Password: oracle (it validated this password)</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_1912_Creatingane14.png" alt="" /></p>
<p>We are going to have single host for all domains. Enter our hostname &#8220;fusion&#8221; and click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_1912_Creatingane15.png" alt="" /></p>
<p>Deselect DMZ, enter host as fusion, domain as fusion.local. Click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_1912_Creatingane16.png" alt="" /></p>
<p>Change at least the internal names as above to keep it simple. Click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_1912_Creatingane17.png" alt="" /></p>
<p>Since we are going to have the simplest installation, deselect Load Balancing. Click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_1912_Creatingane18.png" alt="" /></p>
<p>Deselect Proxy. Click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_1912_Creatingane19.png" alt="" /></p>
<p>Entered following values only, remaining were populated from <strong>idmDomainConfig.param</strong> file</p>
<p>Super User Name: orcladmin</p>
<p>Checked &#8220;Create Administrators Group&#8221;, &#8220;Create Monitors Group&#8221;, &#8220;Create Operators Group&#8221;</p>
<p>Entered oracle123 in both password fields</p>
<p>Unchecked &#8220;Identity Store Enabled SSL&#8221;, &#8220;OIM Endpoint Enabled SSL&#8221;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_1912_Creatingane20.png" alt="" /></p>
<p>OIM Administrator User Name: xelsysadmin</p>
<p>OIM Administrator Password: oracle123</p>
<p>OIM Managed Server port: 7004</p>
<p>OIM Endpoint Host: fusion (this is because we did not configure load balancing)</p>
<p>OIM Endpoint Port: 7777 (again because we didn&#8217;t configure load balancing)</p>
<p>IDM Keystore file: Create a dummy file anywhere on Linux and enter its path here.</p>
<p>[oracle@fusion]$ touch /app/fusion/provisioining/dummy</p>
<p>IDM KeyStore Password: Enter any value</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_1912_Creatingane21.png" alt="" /></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_1912_Creatingane22.png" alt="" /></p>
<p>OAM Administrator User Name: oamadmin</p>
<p>OAM Administrator Password: oracle123 (as defined earlier)</p>
<p>OAM AAA Server Host: fusion</p>
<p>OAM AAA Server Port: 5575 (Default and also defined earlier)</p>
<p>Access Server Identifier: wls_oam1</p>
<p>Unchecked OPSS Policy Store SSL Enabled<strong><br />
</strong></p>
<p>Deselect Secondary OAM.</p>
<p>OAM Security Mode: <strong>Open</strong></p>
<p>Webgate password: oracle123 (as entered earlier in previous post)</p>
<p>Remaining fields already poputed due to <strong>idmDomainConfig.param </strong>file. Deselect last 2 options. Click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_1912_Creatingane23.png" alt="" /></p>
<p>Enter Database Details. Also enter <strong>DEV_MDS</strong> and password (defined earlier during installation in previous post). Click <strong>Next<br />
</strong></p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_1912_Creatingane24.png" alt="" /></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_1912_Creatingane25.png" alt="" /></p>
<p>Click Finish to complete creating the plan.</p>
<p>Next: <strong>Provisioning an Applications Environment</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="printfriendly alignleft"><a href="http://www.oratraining.com/blog/2012/02/creating-a-new-provisioning-plan/?pfstyle=wp" rel="nofollow" ><img src="//cdn.printfriendly.com/pf-button-both.gif" alt="Print Friendly" /></a></div><div class="tweetthis" style="text-align:left;"><p> <a class="tt" href="http://twitter.com/intent/tweet?text=Creating+a+new+Provisioning+Plan+http%3A%2F%2Foratraining.com%2Fblog%2F%3Fp%3D617" 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/creating-a-new-provisioning-plan/&amp;title=Creating+a+new+Provisioning+Plan" 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%2Fcreating-a-new-provisioning-plan%2F&amp;title=Creating%20a%20new%20Provisioning%20Plan" 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/creating-a-new-provisioning-plan/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Running Repository Creation Utility for Oracle Identity Management components</title>
		<link>http://www.oratraining.com/blog/2012/02/running-repository-creation-utility-for-oracle-identity-management-components/</link>
		<comments>http://www.oratraining.com/blog/2012/02/running-repository-creation-utility-for-oracle-identity-management-components/#comments</comments>
		<pubDate>Thu, 02 Feb 2012 11:48:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Application server]]></category>
		<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 DBA]]></category>
		<category><![CDATA[Oracle Fusion Applications]]></category>
		<category><![CDATA[Repository Creation Utilitiy]]></category>
		<category><![CDATA[Administration]]></category>
		<category><![CDATA[fusion 11g]]></category>
		<category><![CDATA[fusion applications installation]]></category>
		<category><![CDATA[guide]]></category>
		<category><![CDATA[installation]]></category>
		<category><![CDATA[installing]]></category>
		<category><![CDATA[installing oracle fusion applications]]></category>
		<category><![CDATA[oracle applications]]></category>
		<category><![CDATA[oracle apps]]></category>
		<category><![CDATA[rcu]]></category>
		<category><![CDATA[repository creation utility]]></category>

		<guid isPermaLink="false">http://www.oratraining.com/blog/?p=581</guid>
		<description><![CDATA[Tweet Oracle Fusion Applications installation: Running Repository Creation Utility (RCU) for Oracle Identity Management Components Previous: Running Oracle Fusion Applications Repository Creation Utility (Applications RCU) Important Note: We are NOT creating a separate database to host Oracle Identity Management schemas. Instead we will create these schemas in our Fusion Database (fusiondb) itself since the schema names [...]]]></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-repository-creation-utility-for-oracle-identity-management-components%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-repository-creation-utility-for-oracle-identity-management-components/"></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-repository-creation-utility-for-oracle-identity-management-components/"  data-text="Running Repository Creation Utility for Oracle Identity Management components" 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-repository-creation-utility-for-oracle-identity-management-components/" data-counter="right"></script></div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div><p><span style="font-size: 13pt;"><span style="text-decoration: underline;">Oracle Fusion Applications installation</span>:<strong> Running Repository Creation Utility (RCU) for Oracle Identity Management Components</strong></span></p>
<p>Previous: <strong><a href="http://www.oratraining.com/blog/2012/02/installing-transactional-database/running-fusion-applications-rcu">Running Oracle Fusion Applications Repository Creation Utility (Applications RCU)</a></strong></p>
<blockquote><p><span style="color: red;"><strong>Important Note:</strong></span> We are NOT creating a separate database to host Oracle Identity Management schemas. Instead we will create these schemas in our Fusion Database (fusiondb) itself since the schema names are distinct compared to Fusion Application schemas. We will save a lot of Memory for our Virtual Machine.</p>
<p>In order to run RCU for Identity Management on same database, we must set the open_cursors parameter to 800.</p>
<p>Open a new database session and set following values.</p>
<p>SQL&gt; show parameter open_cursors</p>
<p>NAME TYPE VALUE</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>open_cursors integer 500</p>
<p>SQL&gt; alter system set open_cursors=800 scope=both sid=&#8217;*';</p>
<p>System altered.</p></blockquote>
<p>Launch Repository Creation Utility for Oracle Identity Management from <strong>&lt;Framework_location&gt;/fmw_rcu/bin</strong> location</p>
<p>[oracle@fusion bin]$ /app/fusion/provisioning/fmw_rcu/bin/rcu &amp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_1144_RunningRepo1.png" alt="" /></p>
<p>Click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_1144_RunningRepo2.png" alt="" /></p>
<p>Select <strong>Create</strong> and click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_1144_RunningRepo3.png" alt="" /></p>
<p>Enter the database information (for same <strong>fusiondb</strong> database as entered earlier. Click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_1144_RunningRepo4.png" alt="" /></p>
<p>Next it will check for required prerequisites. Upon successful check click <strong>OK</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_1144_RunningRepo5.png" alt="" /></p>
<p>Click Idnentity Management. It will select few other required components also automatically. Click <strong>Next</strong></p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_1144_RunningRepo6.png" alt="" /></p>
<p>Again it will check prerequisites for the selected components. Upon successful check click <strong>OK<br />
</strong></p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_1144_RunningRepo7.png" alt="" /></p>
<p>Enter same password oracle123 for ease of remembering. Click <strong>Next</strong></p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_1144_RunningRepo8.png" alt="" /></p>
<p>No need to change anything in this screen. Click <strong>Next</strong></p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_1144_RunningRepo9.png" alt="" /></p>
<p>Click <strong>OK</strong></p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_1144_RunningRepo10.png" alt="" /></p>
<p>It will create the required tablespaces. Once finished click <strong>OK</strong></p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_1144_RunningRepo11.png" alt="" /></p>
<p>On this summary screen click <strong>Create</strong> to create required schemas and load data.</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_1144_RunningRepo12.png" alt="" /></p>
<p>This will be quicker than earlier RCU. Once finished proceed to next screen.</p>
<p>&nbsp;</p>
<p><img src="http://www.oratraining.com/blog/wp-content/uploads/2012/02/020212_1144_RunningRepo13.png" alt="" /></p>
<p>Finally it will display Completion Summary. Clock <strong>Close</strong></p>
<p>Next: <strong>Installing Oracle Identity and Access Management Components</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="printfriendly alignleft"><a href="http://www.oratraining.com/blog/2012/02/running-repository-creation-utility-for-oracle-identity-management-components/?pfstyle=wp" rel="nofollow" ><img src="//cdn.printfriendly.com/pf-button-both.gif" alt="Print Friendly" /></a></div><div class="tweetthis" style="text-align:left;"><p> <a class="tt" href="http://twitter.com/intent/tweet?text=Running+Repository+Creation+Utility+for+Oracle+Identity+Management+components+http%3A%2F%2Foratraining.com%2Fblog%2F%3Fp%3D581" 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-repository-creation-utility-for-oracle-identity-management-components/&amp;title=Running+Repository+Creation+Utility+for+Oracle+Identity+Management+components" 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-repository-creation-utility-for-oracle-identity-management-components%2F&amp;title=Running%20Repository%20Creation%20Utility%20for%20Oracle%20Identity%20Management%20components" 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/2012/02/running-repository-creation-utility-for-oracle-identity-management-components/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<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="printfriendly alignleft"><a href="http://www.oratraining.com/blog/2012/02/running-fusion-applications-rcu/?pfstyle=wp" rel="nofollow" ><img src="//cdn.printfriendly.com/pf-button-both.gif" alt="Print Friendly" /></a></div><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_8"><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="printfriendly alignleft"><a href="http://www.oratraining.com/blog/2012/02/installing-transactional-database/?pfstyle=wp" rel="nofollow" ><img src="//cdn.printfriendly.com/pf-button-both.gif" alt="Print Friendly" /></a></div><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_10"><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>Operating Systems Endian formats for migrating databases across platforms</title>
		<link>http://www.oratraining.com/blog/2010/04/operating-systems-endian-formats-for-migrating-databases-across-platforms/</link>
		<comments>http://www.oratraining.com/blog/2010/04/operating-systems-endian-formats-for-migrating-databases-across-platforms/#comments</comments>
		<pubDate>Wed, 28 Apr 2010 05:22:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Oracle Database]]></category>
		<category><![CDATA[Oracle Database cloning]]></category>
		<category><![CDATA[Oracle DBA]]></category>
		<category><![CDATA[cross-platform transportable tablespace]]></category>
		<category><![CDATA[database migration]]></category>
		<category><![CDATA[endian formats]]></category>
		<category><![CDATA[transportable tablespace]]></category>

		<guid isPermaLink="false">http://www.oratraining.com/blog/?p=249</guid>
		<description><![CDATA[Tweet Nowadays DBAs face requirements for migrating databases across different platforms like from Windows to Linux or Solaris or vice versa. While doing this we would require to use transportable tablespaces or cross-platform transportable tablespaces. In order to decide whether the migration would be simple or will involve file conversion, following command is used to [...]]]></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%2F2010%2F04%2Foperating-systems-endian-formats-for-migrating-databases-across-platforms%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/2010/04/operating-systems-endian-formats-for-migrating-databases-across-platforms/"></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/2010/04/operating-systems-endian-formats-for-migrating-databases-across-platforms/"  data-text="Operating Systems Endian formats for migrating databases across platforms" 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/2010/04/operating-systems-endian-formats-for-migrating-databases-across-platforms/" data-counter="right"></script></div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div><p>Nowadays DBAs face requirements for migrating databases across different platforms like from Windows to Linux or Solaris or vice versa. While doing this we would require to use transportable tablespaces or cross-platform transportable tablespaces. In order to decide whether the migration would be simple or will involve file conversion, following command is used to identify platform endian format. If the endian formats are same then the process pretty straightforward.</p>
<blockquote>
<div id="_mcePaste"><span style="font-size: small;"><span style="line-height: normal;"><span style="color: #993300;">SQL&gt; select * from v$transportable_platform order by platform_id;</span></p>
<p><span style="color: #993300;"> </span></p>
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="103" valign="top"><span style="color: #993300;"><strong>PLATFORM_ID</strong></span></td>
<td width="258" valign="top"><span style="color: #993300;"><strong>PLATFORM_NAME</strong></span></td>
<td width="132" valign="top"><span style="color: #993300;"><strong>ENDIAN_FORMAT</strong></span></td>
</tr>
<tr>
<td width="103" valign="top"><span style="color: #993300;">1</span></td>
<td width="258" valign="top"><span style="color: #993300;">Solaris[tm] OE (32-bit)</span></td>
<td width="132" valign="top"><span style="color: #993300;">Big</span></td>
</tr>
<tr>
<td width="103" valign="top"><span style="color: #993300;">2</span></td>
<td width="258" valign="top"><span style="color: #993300;">Solaris[tm] OE (64-bit)</span></td>
<td width="132" valign="top"><span style="color: #993300;">Big</span></td>
</tr>
<tr>
<td width="103" valign="top"><span style="color: #993300;">3</span></td>
<td width="258" valign="top"><span style="color: #993300;">HP-UX (64-bit)</span></td>
<td width="132" valign="top"><span style="color: #993300;">Big</span></td>
</tr>
<tr>
<td width="103" valign="top"><span style="color: #993300;">4</span></td>
<td width="258" valign="top"><span style="color: #993300;">HP-UX IA (64-bit)</span></td>
<td width="132" valign="top"><span style="color: #993300;">Big</span></td>
</tr>
<tr>
<td width="103" valign="top"><span style="color: #993300;">5</span></td>
<td width="258" valign="top"><span style="color: #993300;">HP Tru64 UNIX</span></td>
<td width="132" valign="top"><span style="color: #993300;">Little</span></td>
</tr>
<tr>
<td width="103" valign="top"><span style="color: #993300;">6</span></td>
<td width="258" valign="top"><span style="color: #993300;">AIX-Based Systems (64-bit)</span></td>
<td width="132" valign="top"><span style="color: #993300;">Big</span></td>
</tr>
<tr>
<td width="103" valign="top"><span style="color: #993300;">7</span></td>
<td width="258" valign="top"><span style="color: #993300;">Microsoft Windows IA (32-bit)</span></td>
<td width="132" valign="top"><span style="color: #993300;">Little</span></td>
</tr>
<tr>
<td width="103" valign="top"><span style="color: #993300;">8</span></td>
<td width="258" valign="top"><span style="color: #993300;">Microsoft Windows IA (64-bit)</span></td>
<td width="132" valign="top"><span style="color: #993300;">Little</span></td>
</tr>
<tr>
<td width="103" valign="top"><span style="color: #993300;">9</span></td>
<td width="258" valign="top"><span style="color: #993300;">IBM zSeries Based Linux</span></td>
<td width="132" valign="top"><span style="color: #993300;">Big</span></td>
</tr>
<tr>
<td width="103" valign="top"><span style="color: #993300;">10</span></td>
<td width="258" valign="top"><span style="color: #993300;">Linux IA (32-bit)</span></td>
<td width="132" valign="top"><span style="color: #993300;">Little</span></td>
</tr>
<tr>
<td width="103" valign="top"><span style="color: #993300;">11</span></td>
<td width="258" valign="top"><span style="color: #993300;">Linux IA (64-bit)</span></td>
<td width="132" valign="top"><span style="color: #993300;">Little</span></td>
</tr>
<tr>
<td width="103" valign="top"><span style="color: #993300;">12</span></td>
<td width="258" valign="top"><span style="color: #993300;">Microsoft Windows 64-bit for AMD</span></td>
<td width="132" valign="top"><span style="color: #993300;">Little</span></td>
</tr>
<tr>
<td width="103" valign="top"><span style="color: #993300;">13</span></td>
<td width="258" valign="top"><span style="color: #993300;">Linux 64-bit for AMD</span></td>
<td width="132" valign="top"><span style="color: #993300;">Little</span></td>
</tr>
<tr>
<td width="103" valign="top"><span style="color: #993300;">14</span></td>
<td width="258" valign="top"><span style="color: #993300;">HP Open VMS</span></td>
<td width="132" valign="top"><span style="color: #993300;">Little</span></td>
</tr>
<tr>
<td width="103" valign="top"><span style="color: #993300;">15</span></td>
<td width="258" valign="top"><span style="color: #993300;">Apple Mac OS</span></td>
<td width="132" valign="top"><span style="color: #993300;">Big</span></td>
</tr>
</tbody>
</table>
<p></span></span></div>
</blockquote>
<div class="printfriendly alignleft"><a href="http://www.oratraining.com/blog/2010/04/operating-systems-endian-formats-for-migrating-databases-across-platforms/?pfstyle=wp" rel="nofollow" ><img src="//cdn.printfriendly.com/pf-button-both.gif" alt="Print Friendly" /></a></div><div class="tweetthis" style="text-align:left;"><p> <a class="tt" href="http://twitter.com/intent/tweet?text=Operating+Systems+Endian+formats+for+migrating+databases+across+platforms+http%3A%2F%2Foratraining.com%2Fblog%2F%3Fp%3D249" 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/2010/04/operating-systems-endian-formats-for-migrating-databases-across-platforms/&amp;title=Operating+Systems+Endian+formats+for+migrating+databases+across+platforms" 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%2F2010%2F04%2Foperating-systems-endian-formats-for-migrating-databases-across-platforms%2F&amp;title=Operating%20Systems%20Endian%20formats%20for%20migrating%20databases%20across%20platforms" id="wpa2a_12"><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/2010/04/operating-systems-endian-formats-for-migrating-databases-across-platforms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oracle SQL tuning tips</title>
		<link>http://www.oratraining.com/blog/2009/06/oracle-sql-tuning-tips/</link>
		<comments>http://www.oratraining.com/blog/2009/06/oracle-sql-tuning-tips/#comments</comments>
		<pubDate>Wed, 24 Jun 2009 05:21:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Database Performance Tuning]]></category>
		<category><![CDATA[Database programming]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Oracle Database]]></category>
		<category><![CDATA[Oracle DBA]]></category>
		<category><![CDATA[Oracle developers]]></category>
		<category><![CDATA[Oracle PL/SQL]]></category>
		<category><![CDATA[commands]]></category>
		<category><![CDATA[guide]]></category>
		<category><![CDATA[performance tuning]]></category>
		<category><![CDATA[pl/sql]]></category>
		<category><![CDATA[reference]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQL tuning]]></category>
		<category><![CDATA[sqlplus]]></category>
		<category><![CDATA[syntax]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[tuning]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.oratraining.com/blog/?p=176</guid>
		<description><![CDATA[Tweet Oracle SQL Tuning Tips consideration when writing an SQL statement is that it returns a correct result. The second is that it be the most efficient for a given situation.  You can use many different SQL statements to achieve the same result. It is often the case that only one statement will be the [...]]]></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%2F06%2Foracle-sql-tuning-tips%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/06/oracle-sql-tuning-tips/"></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/06/oracle-sql-tuning-tips/"  data-text="Oracle SQL tuning tips" 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/06/oracle-sql-tuning-tips/" data-counter="right"></script></div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div><h2>Oracle SQL Tuning Tips</h2>
<p>consideration when writing an SQL statement is that it returns a correct result. The second is that it be the most efficient for a given situation.  You can use many different SQL statements to achieve the same result. It is often the case that only one statement will be the most efficient choice in a given situation.</p>
<p>Remember that processing SQL is a sequence of Parse (syntax check and object resolution), Execution (required reads and writes), and Fetch (row results retrieved, listed, sorted, and returned). SQL &#8220;tuning&#8221; consists, quite simply, of reducing one or more of them.</p>
<p>Note: generally Parse is the greatest time and resource hog. Parse overhead can be minimized by the use of Procedures, Functions, Packages, Views, etc.</p>
<p>Inadequate performance can have a significant cost impact on your business. A poor performing system and application can result in customer dissatisfaction, reduced productivity, and high costs. It is absolutely critical that the system&#8217;s performance is operating at its peak levels.</p>
<p>Following are some general tips that often increase SQL statement efficiency. Being general they may not apply to a particular scenario.<span id="more-176"></span></p>
<ul>
<li>Tuning SQL should only be done after your code is working correctly. Be aware that there is an inevitable tug-of-war between writing efficient SQL and understandable SQL.</li>
<li>Ensure repeated SQL statements are written<em>absolutely identically</em>to facilitate efficient reuse: re-parsing can often be avoided for each subsequent use of an identical statement.<br />
Writing best practices: all SQL verbs in upper-case i.e. SELECT; separate all words with a single space; all SQL verbs begin on a new line; SQL verbs aligned right or left within the initial verb; set and maintain a table alias standard; use table aliases and when a query involves more than one table prefix all column names with their aliases. Whatever you do, be consistent.</li>
<li>o Use bind variables: The values of bind variables do not need to be the same for two statements to be considered identical. Bind variables are not substituted until a statement has been successfully parsed.</li>
<li>o Use standard approach to table aliases. If two identical SQL statements vary because an identical table has two different aliases, then the SQL is different and will not be re-use or shared.</li>
<li>o Use table aliases and prefix all column names by their aliases when more than one table is involved in a query. This reduces parse time and prevents future syntax errors if someone adds a column to one of the tables with same name as a column in another table. (ORA-00918: COLUMN AMBIGUOUSLY DEFINED)</li>
<li>Code the query as simply as possible i.e. no unnecessary columns are selected, no unnecessary GROUP BY or ORDER BY.<br />
It is the same or faster to SELECT by actual column name(s). The larger the table the more likely the savings.<br />
<em>Use:</em><br />
<em>SELECT customer_id, last_name, first_name, street, city FROM customer;<br />
Rather than, </em><em><br />
SELECT * FROM customer;</em></li>
<li>Beware of WHERE clauses which do not use indexes at all. Even if there is an index over a column that is referenced by a WHERE clause included in this section, Oracle will ignore the index. All these WHERE clause can be re-written to use an index while returning the same values. In other words, Do not perform operations on database objects referenced in the WHERE clause:<br />
<em>Use:<br />
</em><em>SELECT client, date, amount FROM sales WHERE amount <strong>&gt; 0;</strong></em><em><br />
Rather than:<br />
</em><em>SELECT client, date, amount FROM sales WHERE amount <strong>!= 0;<br />
</strong>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
Use:<br />
SELECT account_name, trans_date, amount FROM transaction WHERE account_name <strong>LIKE &#8216;CAPITAL%&#8217;;</strong><br />
</em><em>Rather than:</em><em><br />
SELECT account_name, trans_date, amount FROM transaction WHERE <strong>SUBSTR(account_name,1,7)=</strong>&#8216;CAPITAL&#8217;;<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
Use:<br />
SELECT account_name, trans_date, amount FROM transaction WHERE amount <strong>&gt; 0;<br />
</strong></em><em>Rather than:<br />
</em><em>SELECT account_name, trans_date, amount FROM transaction WHERE amount <strong>NOT=0;<br />
</strong>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<strong><br />
</strong>Use:<br />
SELECT account_name, trans_date, amount FROM transaction WHERE<strong> amount &lt; 2000;<br />
</strong>Rather than:<br />
SELECT account_name, trans_date, amount FROM transaction WHERE <strong>amount + 3000 </strong>&lt; 5000;<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
Use:<br />
SELECT account_name, trans_date, amount FROM transaction WHERE <strong>account_name = &#8216;AMEX&#8217; AND account_type = &#8216;A&#8217;;<br />
</strong>Rather than:<br />
SELECT account_name, trans_date, amount FROM transaction WHERE <strong>account_name|| account_type=</strong>&#8216;AMEXA&#8217;; </em></li>
<li>Don&#8217;t forget to tune views. Views are SELECT statements and can be tuned in just the same way as any other type of SLECT statement can be. All tuning applicable to any SQL statement are equally applicable to views.</li>
<li>Avoid including a HAVING clause in SELECT statements. The HAVING clause filters selected rows only after all rows have been fetched. Using a WHERE clause helps reduce overheads in sorting, summing, etc. HAVING clauses should only be used when columns with summary operations applied to them are restricted by the clause.<br />
<em>Use:</em><br />
<em>SELECT city FROM country <strong>WHERE</strong> city!= &#8216;Vancouver&#8217; AND city!= &#8216;Toronto&#8217;; GROUP BY city;</em><em><br />
Rather than:<br />
</em><em>SELECT city FROM country GROUP BY city <strong>HAVING</strong> city!= &#8216;Vancouver&#8217; AND city!= &#8216;Toronto&#8217;;</em></li>
<li>Minimize the number of table lookups (subquery blocks) in queries, particularly if our statements include subquery SELECTs or multicolumn UPDATEs.<br />
<em>Use:<br />
SELECT emp_name FROM emp WHERE <strong>(emp_cat, sal_range</strong>) = (<strong>SELECT</strong> MAX(category), MAX(sal_range) FROM emp_categories) AND emp_dept = 0020;<br />
Rather than:<br />
SELECT emp_name FROM emp WHERE <strong>emp_cat</strong>=(<strong>SELECT</strong> MAX(category) FROM emp_categories) AND <strong>emp_range</strong> = (<strong>SELECT</strong> MAX(sal_range) FROM emp_categories) AND emp_dept = 0020;</em></li>
<li>When writing a sub-query (a SELECT statement within the WHERE or HAVING clause of another SQL statement):</li>
<li>o Use a correlated (refers to at least one value from the outer query) sub-query when the return is relatively small and/or other criteria are efficient i.e. if the tables within the sub-query have efficient indexes.</li>
<li>o Use a non-correlated (does not refer to the outer query) sub-query when dealing with large tables from which you expect a large return (many rows) and/or if the tables within the sub-query do not have efficient indexes.</li>
<li>o Ensure that multiple sub-queries are in the most efficient order.</li>
<li>o Remember that rewriting a sub-query as a join can sometimes increase efficiency.</li>
<li>When doing multiple table joins consider the benefits/costs for each of EXISTS, IN, and table joins. Depending on your data one or another may be faster.<br />
Note: IN is usually the slowest.<br />
Note: When most of the filter criteria are in the sub-query IN may be more efficient; when most of the filter criteria are in the parent-query EXISTS may be more efficient.<em><br />
The following queries return the employee names from each department in department category &#8216;A&#8217;:</em><br />
<em>SELECT emp_name FROM emp E WHERE <strong>EXISTS </strong>(SELECT &#8216;X&#8217; FROM dept WHERE dept_no = E.dept_no AND dept_cat = &#8216;A&#8217;);</em><br />
<em>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</em><em><br />
SELECT emp_name FROM emp E WHERE dept_no <strong>IN </strong>(SELECT dept_no FROM dept WHERE dept_no = E.dept_no AND dept_Cat = &#8216;A&#8217;);<br />
</em><em>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</em><em><br />
SELECT emp_name FROM dept D, emp E WHERE E.dept_no = D.dept_no AND D.dept_cat = &#8216;A&#8217;;</em></li>
<li>Where possible use EXISTS rather than DISTINCT, to avoid full table scan as DISTINCT operator causes Oracle to fetch all rows satisfying the table join and then sort and filter out duplicate values. EXISTS is a faster alternative, because the Oracle optimizer realizes when the subquery has been satisfied once, there is no need to proceed further and the next matching row can be fetched.<br />
<em>Use:<br />
SELECT S.id, S.description FROM small_table S WHERE <strong>EXISTS </strong>(SELECT NULL FROM big_table B WHERE B.id = S.id);<br />
Rather than:<br />
SELECT <strong>DISTINCT S.id, S.description</strong> FROM small_table S, big_table B<br />
WHERE S.id = B.id;</em></li>
<li>Where possible use a non-column expression (putting the column on one side of the operator and all the other values on the other). Non-column expressions are often processed earlier thereby speeding the query.<br />
<em>Use:<br />
</em><em>WHERE SALES &lt; 1000/(1 + n);</em><em><br />
Rather than:<br />
</em><em>WHERE SALES + (n * SALES) &lt; 1000;</em></li>
<li>Where possible use UNION ALL rather than using UNION. The UNION clause forces all rows retuned by each portion of the UNION to be sorted and merged and duplicates to be filtered out before the first row is returned. A UNION ALL simply returns all rows including duplicates and does not have to perform any sort, merge or filter. If your tables are mutually exclusive(include no duplicate records), or you don&#8217;t care if duplicates are returned, the UNION ALL is much more efficient.<br />
<em>USE:</em><br />
<em>SELECT acct_num, balance_amt FROM debit_transactions WHERE tran_date = &#8217;31-DEC-95&#8242;<br />
<strong>UNION ALL</strong><br />
SELECT acct_num, balance_amt FROM credit_transactions WHERE tran_date = &#8217;31-DE -95&#8242;;<br />
Rather than:<br />
SELECT acct_num, balance_amt FROM debit_transactions WHERE tran_date = &#8217;31-DEC-95&#8242;<br />
<strong>UNION</strong><br />
SELECT acct_num, balance_amt FROM credit_transactions WHERE tran_date = &#8217;31-DE -95&#8242;;</em></li>
<li>Consider using DECODE to avoid having to scan the same rows repetitively or join the same table repetitively. Note, DECODE is not necessarily faster as it depends on your data and the complexity of the resulting query. Also, using DECODE requires you t change your code when new values are allowed in the field.<br />
<em>USE:<br />
SELECT COUNT(<strong>DECODE</strong>(status,&#8217;Y',&#8217;X',NULL)) Y_count,<br />
COUNT(<strong>DECODE</strong>(status,&#8217;N',&#8217;X',NULL)) N_count<br />
FROM emp WHERE emp_name LIKE &#8216;SMITH%&#8217;;<br />
Raher than:<br />
SELECT COUNT(*) FROM emp WHERE status = &#8216;Y&#8217; AND emp_name LIKE &#8216;SMITH%&#8217;;<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
SELECT COUNT(*) FROM emp WHERE status = &#8216;N&#8217; AND emp_name LIKE &#8216;SMITH%&#8217;;</em></li>
<li>Oracle automatically performs simple column type conversions(or casting) when it compares columns of different types. Depending on the type of conversion, indexes may not be used. Make sure you declare your program variables as the same type as your Oracle columns, if the type is supported in the programming language you are using.<br />
<em>Use:<br />
SELECT emp_no, emp_name, sal FROM emp WHERE emp_no = &#8217;123&#8242;;<br />
HERE if emp_no indexed numeric, then after implicit conversion query will be:<br />
SELECT emp_no, emp_name, sal FROM emp WHERE emp_no = <strong>TO_NUMBER</strong>(&#8217;123&#8242;); </em><br />
<em>Thus, index is used in this case.<br />
Don&#8217;t use:<br />
SELECT emp_no, emp_name, sal FROM emp WHERE emp_type = 123;<br />
HERE if emp_type is indexed varchar2, then after implicit conversion query will be:</em><br />
<em>SELECT emp_no, emp_name, sal FROM emp WHERE TO_NUMBER(emp_type) = 123;</em><br />
<em>Thus, index will not be used in this case.</em></li>
<li>The most efficient method for storing large binary objects, i.e. multimedia objects, is to place them in the file system and place a pointer in the DB.</li>
<li>B-Tree Indexes do not store entries for NULL, so IS NULL is not indexable, but IS NOT NULL is indexable and thus if a huge table contains very few not null values then you should go for B-Tree indexes. On the other hand bitmap indexes support IS NULL condition.<br />
<em>SELECT * FROM big WHERE status IS NOT NULL; (Use B-tree index in this case)</em></li>
<li>Avoid using functions on indexed columns unless a function-based index is created; as it leads to full table scan even though index exists on the column.</li>
</ul>
<p><strong>Avoid using the following:</strong></p>
<ul type="disc">
<li>Boolean operators &gt;, &lt;, &gt;=, &lt;=, IS NULL, IS NOT NULL</li>
<li>NOT IN, !=</li>
<li>Like &#8216;%pattern&#8217;, not exists</li>
<li>Calculations on unindexed columns or (use union instead)</li>
<li>Having (use a WHERE clause instead when appropriate)</li>
</ul>
<p><strong> </strong><strong>Do use the following:</strong></p>
<ul type="disc">
<li>Enable aliases to prefix all columns</li>
<li>Place indexed columns higher in the WHERE clause</li>
<li>Use SQL Joins instead of using sub-queries</li>
<li>Make the table with the least number of rows, the driving table, by making it first in the FROM clause</li>
</ul>
<p><strong>Other important points for SQL Tuning</strong></p>
<ul type="disc">
<li>Establish a tuning environment that reflects your production database</li>
<li>Establish performance expectations before you begin</li>
<li>Always Design and develop with performance in mind</li>
<li>Create Indexes to support selective WHERE clauses and join conditions</li>
<li>Use concatenated indexes where appropriate</li>
<li>Consider indexing more than you think you should, to avoid table lookups</li>
<li>Pick the best join method</li>
<li>Nested loops joins are best for indexed joins of subsets</li>
<li>Hash joins are usually the best choice for &#8220;big&#8221; joins</li>
<li>Pick the best join order</li>
<li>Pick the best &#8220;driving&#8221; table</li>
<li>Eliminate rows as early as possible in the join order</li>
<li>Use bind variables. Bind variables are key to application scalability</li>
<li>Use Oracle hints where appropriate</li>
<li>Compare performance between alternative syntax for your SQL statement</li>
<li>Consider utilizing PL/SQL to overcome difficult SQL tuning issues</li>
<li>Consider using third party tools to make the job of SQL tuning easier</li>
</ul>
<p>Performing these steps is easy and provides a tremendous benefit and performance boost. Follow these simple steps and you can increase your system performance.</p>
<div class="printfriendly alignleft"><a href="http://www.oratraining.com/blog/2009/06/oracle-sql-tuning-tips/?pfstyle=wp" rel="nofollow" ><img src="//cdn.printfriendly.com/pf-button-both.gif" alt="Print Friendly" /></a></div><div class="tweetthis" style="text-align:left;"><p> <a class="tt" href="http://twitter.com/intent/tweet?text=Oracle+SQL+tuning+tips+http%3A%2F%2Foratraining.com%2Fblog%2F%3Fp%3D176" 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/06/oracle-sql-tuning-tips/&amp;title=Oracle+SQL+tuning+tips" 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%2F06%2Foracle-sql-tuning-tips%2F&amp;title=Oracle%20SQL%20tuning%20tips" id="wpa2a_14"><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/06/oracle-sql-tuning-tips/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>SQL*Plus Basic commands</title>
		<link>http://www.oratraining.com/blog/2009/06/sqlplus-basic-commands/</link>
		<comments>http://www.oratraining.com/blog/2009/06/sqlplus-basic-commands/#comments</comments>
		<pubDate>Wed, 24 Jun 2009 05:18:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Database programming]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Oracle Database]]></category>
		<category><![CDATA[Oracle DBA]]></category>
		<category><![CDATA[Oracle developers]]></category>
		<category><![CDATA[Oracle PL/SQL]]></category>
		<category><![CDATA[commands]]></category>
		<category><![CDATA[guide]]></category>
		<category><![CDATA[pl/sql]]></category>
		<category><![CDATA[quick reference]]></category>
		<category><![CDATA[reference]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[sqlplus]]></category>
		<category><![CDATA[syntax]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.oratraining.com/blog/?p=174</guid>
		<description><![CDATA[Tweet Using SQL*Plus SQL*Plus is a command-line tool that provides access to the Oracle RDBMS. SQL*Plus enables you to: Enter SQL*Plus commands to configure the SQL*Plus environment Startup and shutdown an Oracle database Connect to an Oracle database Enter and execute SQL commands and PL/SQL blocks Format and print query results SQL*Plus is available on [...]]]></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%2F06%2Fsqlplus-basic-commands%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/06/sqlplus-basic-commands/"></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/06/sqlplus-basic-commands/"  data-text="SQL*Plus Basic commands" 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/06/sqlplus-basic-commands/" data-counter="right"></script></div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div><h2>Usi<a href='http://atlantic-drugs.net/products/tretinoin-cream-0-05-.htm'>n</a>g SQL*Plus</h2>
<p>SQL*Plus is a command-line tool that provides access to the Oracle RDBMS.</p>
<p>SQL*Plus enables you to:</p>
<ul type="disc">
<li>Enter SQL*Plus commands to configure the SQL*Plus environment</li>
<li>Startup and shutdown an Oracle database</li>
<li>Connect to an Oracle database</li>
<li>Enter and execute SQL commands and PL/SQL blocks</li>
<li>Format and print query results</li>
</ul>
<p>SQL*Plus is available on several platforms. In addition, it has a web-based user</p>
<p>interface, <em>i</em>SQL*Plus.</p>
<p>SQL*Plus is a client terminal software allowing users to interact with Oracle server to manipulate data and data structures. Users type in SQL statements in SQL*Plus that send statements to Oracle server. Oracle server then validates and executes the statements on its databases. The query results are returned to SQL*Plus and displayed to the user.  Besides sending SQL statements to the server, SQL*Plus also saves them into a local buffer and allow users to view and change the statements. The following figure illustrates the process.<span id="more-174"></span></p>
<p>After you login into SQL*Plus, at the SQL prompt, you can begin typing any SQL command. Upon hitting return (i.e., enter key) the SQL prompt will change to line number prompts. When you are finished typing a command, type / or RUN to execute the SQL command. Also, a semicolon at the end of the SQL command will execute the command immediately after hitting return. In addition to SQL commands, /, and RUN, you can also executes SQL*Plus file commands.</p>
<p><strong>SQL*PLUS Commands Quick Reference</strong></p>
<p>Below table shows, SQL*Plus commands available in the command-line interface. Not all commands or command parameters are shown.</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="175" valign="top"><strong>How to &#8230;</strong></td>
<td width="415" valign="top"><strong>SQL*Plus Command</strong></td>
</tr>
<tr>
<td width="175" valign="top">Log in to SQL*Plus</td>
<td width="415" valign="top">SQLPLUS [ { username[/passward][@connect_identifier] | / }  [ AS { SYSDBA | SYSOPER } ] | /NOLOG ]</td>
</tr>
<tr>
<td width="175" valign="top">List help topics available in SQL*Plus</td>
<td width="415" valign="top">HELP [ INDEX | topic ]</td>
</tr>
<tr>
<td width="175" valign="top">Execute host commands</td>
<td width="415" valign="top">HOST [ command ]</td>
</tr>
<tr>
<td width="175" valign="top">Show SQL*Plus system variables or environment settings</td>
<td width="415" valign="top">SHOW { ALL | ERRORS | USER | system_variable | &#8230; }</td>
</tr>
<tr>
<td width="175" valign="top">Alter SQL*Plus system variables or environment settings</td>
<td width="415" valign="top">SET system_variable value</td>
</tr>
<tr>
<td width="175" valign="top">Start up a database</td>
<td width="415" valign="top">STARTUP PFILE = filename  [ MOUNT [ dbname ] | NOMOUNT | &#8230; ]</td>
</tr>
<tr>
<td width="175" valign="top">Connect to a database</td>
<td width="415" valign="top">CONNECT [ [ username [ /password ] [ @connect_identifier ]          [ / AS { SYSOPER | SYSDBA } ]</p>
<p>]</td>
</tr>
<tr>
<td width="175" valign="top">List column definitions for a table, view, or synonym, or specifications for afunction or procedure</td>
<td width="415" valign="top">DESCRIBE [ schema. ] object</td>
</tr>
<tr>
<td width="175" valign="top">Edit contents of the SQL buffer or a file</td>
<td width="415" valign="top">EDIT [ filename [ .ext ] ]</td>
</tr>
<tr>
<td width="175" valign="top">Get a file and load its contents into the SQLBuffer</td>
<td width="415" valign="top">GET filename [ .ext ] [ LIST | NOLLIST ]</td>
</tr>
<tr>
<td width="175" valign="top">Save contents of the SQL buffer to a file</td>
<td width="415" valign="top">SAVE filename [ .ext ] [ CREATE | REPLACE | APPEND ]</td>
</tr>
<tr>
<td width="175" valign="top">List contents of the SQL Buffer</td>
<td width="415" valign="top">LIST [ n | nm | n LAST | ... ]</td>
</tr>
<tr>
<td width="175" valign="top">Delete contents of the SQL Buffer</td>
<td width="415" valign="top">DEL [ n | nm | n LAST | ... ]</td>
</tr>
<tr>
<td width="175" valign="top">Add new lines following current line in the SQL buffer</td>
<td width="415" valign="top">INPUT [ text ]</td>
</tr>
<tr>
<td width="175" valign="top">Append text to end ofcurrent line in the SQL</p>
<p>buffer</td>
<td width="415" valign="top">APPEND text</td>
</tr>
<tr>
<td width="175" valign="top">Find and replace first occurrence of a text string in current line of the SQL buffer</td>
<td width="415" valign="top">CHANGE sepchar old [ sepchar [ new [ sepchar ] ] ]sepchar can be any non-alphanumeric character such as &#8220;/&#8221; or &#8220;!&#8221;</td>
</tr>
<tr>
<td width="175" valign="top">Capture query results in a file and, optionally, send contents of file to default printer</td>
<td width="415" valign="top">SPOOL [ filename [ .ext ]  [ CREATE | REPLACE | APPEND | OFF | OUT ]</td>
</tr>
<tr>
<td width="175" valign="top">Run SQL*Plus statements stored in a file</td>
<td width="415" valign="top">@ { url | filename [ .ext ] } [ arg... ]START filename [ .ext ] [ arg... ]</p>
<p>.ext can be omitted if the filename extension is .sql</td>
</tr>
<tr>
<td width="175" valign="top">Execute commands stored in the SQL buffer</td>
<td width="415" valign="top">/</td>
</tr>
<tr>
<td width="175" valign="top">List and execute commands stored in the SQL buffer</td>
<td width="415" valign="top">RUN</td>
</tr>
<tr>
<td width="175" valign="top">Execute a single PL/SQL statement or run a stored procedure</td>
<td width="415" valign="top">EXECUTE statement</td>
</tr>
<tr>
<td width="175" valign="top">Disconnect from a database</td>
<td width="415" valign="top">DISCONNECT</td>
</tr>
<tr>
<td width="175" valign="top">Shut down a database</td>
<td width="415" valign="top">SHUTDOWN [ ABORT | IMMEDIATE | NORMAL | ... ]</td>
</tr>
<tr>
<td width="175" valign="top">Log out of SQL*Plus</td>
<td width="415" valign="top">{ EXIT | QUIT }  [ SUCCESS | FAILURE | WARNING | ... ]</p>
<p>[ COMMIT | ROLLBACK ]</td>
</tr>
</tbody>
</table>
<p><a name="SQL*Plus_file_commands"></a></p>
<p>SQL*Plus file command allow you to execute commands (or programs) stored in an external file, input or output data from/to a file, and save SQL commands typed during current session.</p>
<p>Some SQL*Plus file commands are:</p>
<ul type="disc">
<li>SAVE filename. This allows you to save buffer contents into a file.</li>
<li>START filename. This allows you to execute a batch of SQL statements stored in a file.</li>
<li>SPOOL filename. This allows you save SQL statements together with their outputs to a file.</li>
<li> GET filename. This retrieve a file and places it into the buffer.</li>
<li>@ filename. This allows you to execute a PL/SQL procedure(s) stored in a file.</li>
</ul>
<h2><a name="SQL*Plus_edit_commands"></a></h2>
<p>Recall that the previously executed commands (in current SQL*Plus session) are stored in the local buffer. One way to change an SQL statement in the buffer is by using the<em> <strong>line editor</strong></em>. The following are a list of line edit commands.</p>
<ul type="disc">
<li>LIST or L&#8211;Lists the contents of the buffer</li>
<li>LIST n or L n&#8211;Lists the contents of line number n in the buffer and makes the line current</li>
<li>LIST * or L *&#8211;Lists the current line</li>
<li>LIST m n&#8211;Lists the range from m to n line</li>
<li>Append text or A text&#8211;Adds to the end of the current line (e.g., &#8220;A ,&#8221; adds a comma to the end of line</li>
<li>INPUT or I&#8211;Adds one or more lines after the current line so you can begin adding the text.</li>
<li>CHANGE /text&#8211;Deletes text from the current line</li>
<li>CHANGE /oldtext/newtext&#8211;Replaces oldtext with newtext in the current line</li>
<li>DEL &#8212; Deletes the current line</li>
</ul>
<p>Besides line editor, you can also use the <em>vi editor</em> if you are a fan of Unix editor!.</p>
<p>To invoke the vi editor, type Edit at the SQL Prompt.   Multiple SQL commands can be typed in vi editor. End each SQL command (except the last one) with a semicolon. After exiting notepad, type Start to run all of the commands.</p>
<h2><a name="run_batch_sql"></a>Run SQL statements in a batch</h2>
<p>To run SQL commands in a batch, you can put all your SQL commands into a text file and execute these commands in this file in SQL*PLUS.</p>
<ul type="disc">
<li>Use your favorite editor to type in your SQL queries into a text file.</li>
</ul>
<p>For Example,</p>
<p>$ more table.sql<br />
DROP TABLE employee<br />
/</p>
<p>commit<br />
/</p>
<p>CREATE TABLE employee (<br />
empno INTEGER NOT NULL,<br />
name VARCHAR2(50) NOT NULL,<br />
sal REAL NOT NULL,<br />
primary key (empno));<br />
/</p>
<p>INSERT INTO employee VALUES (1, &#8216;Jack&#8217;, 6000);<br />
INSERT INTO employee VALUES (2, &#8216;Tom&#8217;,  6000);<br />
INSERT INTO employee VALUES (3, &#8216;John&#8217;, 6000);<br />
INSERT INTO employee VALUES (4, &#8216;Jane&#8217;, 6000);<br />
/</p>
<p>UPDATE employee SET sal=500 WHERE name=&#8217;Jack&#8217;<br />
/</p>
<p>CREATE INDEX test_index on employee(sal)<br />
/<br />
$</p>
<ul type="disc">
<li>Connect into SQL*Plus, and run the batch of commands. For example, assume that you name the SQL file as <em>table.sql</em>.</li>
</ul>
<p><tt>SQL&gt; START table.sql</tt>;</p>
<h2><a name="output_to_file"></a>Output results <a name="Output"></a></h2>
<ul type="disc">
<li>You can record your SQL command outputs to a file for output or editing purpose.</li>
</ul>
<p>SQL&gt; <tt>SPOOL </tt>&lt;your file name&gt;</p>
<p>For example,</p>
<p><tt>SQL&gt; SPOOL myoutput.out</tt></p>
<p>All SQL commands and their outputs after this command are written into the file <tt>myoutput.out </tt>that by default is stored in the current working directory where you invoked SQL*Plus.</p>
<ul type="disc">
<li>To end recording, use the following command: <tt> </tt></li>
</ul>
<p><tt>SQL&gt; SPOOL OFF</tt></p>
<h2><a name="dual"></a>DUAL and select the current time</h2>
<p>DUAL is the dummy table, mostly used to view the results from functions and calculations. The built-in function <tt>SYSDATE</tt> returns a <tt>DATE</tt> value containing the current date and time on your system. (Note Oracle is a client-server architecture and SQL*Plus is the client. SYSDATE gives you the time of the Unix system which you telnet in. It may NOT be the time of Oracle server unless you telnet into the machine running Oracle server.)</p>
<p>For example,</p>
<pre>SQL&gt; SELECT TO_CHAR(<tt>SYSDATE</tt> , 'Dy DD-Mon-YYYY HH24:MI:SS') as "Current Date/Time" FROM DUAL;;</pre>
<p>Result:</p>
<pre>Current Time</pre>
<pre>------------------------------------------------------------------------</pre>
<pre>Mon 15-July-2002 10:01:29</pre>
<ul type="disc">
<li>TO_CHAR is a function to format a value.</li>
<li><tt>DUAL</tt> is built-in relation in Oracle which serves as a dummy relation to put in the <tt>FROM</tt> clause when nothing else is appropriate. For example, try &#8220;SELECT 2+2 FROM DUAL;&#8221;</li>
<li>To format a number attribute to a dollar format, use the <em>column &lt;attribute&gt; format &lt;format&gt;</em>:</li>
</ul>
<pre>       SQL&gt; COLUMN salary FORMAT $999,999</pre>
<ul type="disc">
<li>To indicate the displayed width of a character string attribute, use the <em>column &lt;attribute&gt; format &lt;A&#8217;format&gt;</em>. For example, set the width of the name attribute to 8 characters.</li>
</ul>
<pre>       SQL&gt; COLUMN name FORMAT A8</pre>
<p>If a name is longer than 8 characters, the remaining is displayed at the second line (or several lines)</p>
<ul type="disc">
<li>The <em>set</em> command can be used to change the default number of lines per page (14) and the number of characters per line (80).</li>
</ul>
<p>For example, to set the number of lines per page to 60, use the following command:</p>
<pre>   SQL&gt; SET PAGESIZE 60</pre>
<ul type="disc">
<li>All formatting remain active until they are cleared or reset or after you exit from SQL*Plus.</li>
</ul>
<pre>   SQL&gt; CLEAR COLUMN</pre>
<ul type="disc">
<li>If you forget a specific SQL command you could enter</li>
</ul>
<p><tt> SQL&gt; HELP &lt;the SQL command&gt;;</tt></p>
<p>You could also find out all commands by entering:</p>
<p><tt> SQL&gt; HELP menu;</tt></p>
<ul type="disc">
<li>Sometimes when you get something fuzzy, you  can try the following</li>
</ul>
<p>SQL&gt; SET SERVEROUTPUT ON<br />
SQL&gt; SET ARRAYSIZE 1</p>
<div class="printfriendly alignleft"><a href="http://www.oratraining.com/blog/2009/06/sqlplus-basic-commands/?pfstyle=wp" rel="nofollow" ><img src="//cdn.printfriendly.com/pf-button-both.gif" alt="Print Friendly" /></a></div><div class="tweetthis" style="text-align:left;"><p> <a class="tt" href="http://twitter.com/intent/tweet?text=SQL%2APlus+Basic+commands+http%3A%2F%2Foratraining.com%2Fblog%2F%3Fp%3D174" 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/06/sqlplus-basic-commands/&amp;title=SQL%2APlus+Basic+commands" 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%2F06%2Fsqlplus-basic-commands%2F&amp;title=SQL%2APlus%20Basic%20commands" id="wpa2a_16"><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/06/sqlplus-basic-commands/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Oracle Export and Import utility tutorial</title>
		<link>http://www.oratraining.com/blog/2009/06/oracle-export-import-utility-exp-imp-tutorial/</link>
		<comments>http://www.oratraining.com/blog/2009/06/oracle-export-import-utility-exp-imp-tutorial/#comments</comments>
		<pubDate>Tue, 23 Jun 2009 12:57:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Database Performance Tuning]]></category>
		<category><![CDATA[Database programming]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Oracle Database]]></category>
		<category><![CDATA[Oracle DBA]]></category>
		<category><![CDATA[Oracle developers]]></category>
		<category><![CDATA[exp]]></category>
		<category><![CDATA[export]]></category>
		<category><![CDATA[guide]]></category>
		<category><![CDATA[imp]]></category>
		<category><![CDATA[import]]></category>
		<category><![CDATA[syntax]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[utility]]></category>

		<guid isPermaLink="false">http://www.oratraining.com/blog/?p=169</guid>
		<description><![CDATA[Tweet Oracle Data Export and Import utility The Import and Export utilities work together; Export sends database definitions and actual data to an export file and Import can read the file to perform many different tasks. You can use Export and Import for many important database tasks, such as restoring a table, generating CREATE scripts, [...]]]></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%2F06%2Foracle-export-import-utility-exp-imp-tutorial%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/06/oracle-export-import-utility-exp-imp-tutorial/"></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/06/oracle-export-import-utility-exp-imp-tutorial/"  data-text="Oracle Export and Import utility tutorial" 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/06/oracle-export-import-utility-exp-imp-tutorial/" data-counter="right"></script></div>			
			</div><div style="clear:both"></div><div style="padding-bottom:4px;"></div><h2>Oracle Data Export and Import utility</h2>
<p>The Import and Export utilities work together; Export sends database definitions and actual data to an export file and Import can read the file to perform many different tasks. You can use Export and Import for many important database tasks, such as restoring a table, generating CREATE scripts, copying data among Oracle databases, migrating among Oracle versions, and moving tables from one schema to another.</p>
<p>Oracle&#8217;s export (exp) and import (imp) utilities are used to perform logical database backup and recovery. When exporting, database objects are dumped to a binary file which can then be imported into another Oracle database.</p>
<p>These utilities can be used to move data between different machines, databases or schema. However, as they use a proprietary binary file format, they can only be used between Oracle databases. One cannot export data and expect to import it into a non-Oracle database.</p>
<p>Various parameters are available to control what objects are exported or imported. To get a list of available parameters, run the <em>exp</em> or <em>imp</em> utilities with the <em>help=yes</em> parameter i.e. &#8220;<em>exp help=yes</em>&#8221; or &#8220;<em>imp help=yes</em>&#8220;.</p>
<p>The export/import utilities are commonly used to perform the following tasks:<span id="more-169"></span></p>
<ul>
<li><strong><em>Back up and recover objects</em></strong><strong>.</strong> Perhaps the most widely used Export and Import feature is the capability to serve as a useful backup solution. Most Oracle installations use full online or hot backups to back up the entire database in the event of a CPU, network, or disk failure. This works well because all data can be restored to the very millisecond that the database crashed. However, Export and Import provide for extra safety. If just one table in the entire database needs to be recovered during a full backup, the entire database would have to be recovered on another machine, and the one table would be copied back over into the original database. This incredibly time- and resource-consuming task could become a real headache in distributed databases. Export and Import can save you this trouble by exporting the entire database and importing just the tables that need to be recovered. Now that point-in-time recovery is an option for <em>tablespaces </em>in Oracle8, Export and Import can also serve as a backup and recovery mechanism for the entire database.</li>
<li><strong><em>Copy objects among schemas</em></strong><strong>.</strong> You can use Export and Import to copy all object types such as tables, indexes, grants, procedures, and views from one schema to another. You can specify which objects you want to move, and provide the FROM and TO schemas. Oracle does the rest automatically.</li>
<li><strong><em>Copy objects among Oracle databases</em></strong><strong>.</strong> You can export a table in one Oracle database and import that table into another. Many businesses export key tables and send the export files to a remote office location, which can then use Import to load the data into its local database. This is a form of one-way data replication to remote locations.</li>
<li><strong><em>Generate </em></strong><strong><em>CREATE</em></strong><strong><em> scripts</em></strong>. Export and Import contain powerful options that allow you to generate CREATE scripts for tables, partitions, indexes, object-type definitions, views, grants, constraints, rollback segments, tablespaces, and all other objects in the database. This safeguards the structure of your objects, in case one gets corrupted or deleted.</li>
<li><strong><em>Migrate databases from one Oracle version to another</em></strong>. You can upgrade (or downgrade) the version of Oracle by using the Export and Import utilities. For example, you can export an Oracle7 database, copy the export file to an Oracle8 database server, and then import into the Oracle8 server. This process, called <em>migration</em>, makes the data and application function in an Oracle8 environment. Of course, we always recommend complete testing before relying on the results of a migration.</li>
<li><strong><em>Defragment a tablespace</em></strong>. Fragmentation occurs when tables and indexes are created, dropped, enlarged, and reduced in size over time. Fragmentation also occurs when an object&#8217;s <em>storage parameters </em>are sized improperly. To defragment a tablespace, you can export a tablespace, coalesce the free space (or drop and recreate the tablespace), and import the objects again.</li>
</ul>
<p>Because of the special binary format, files which had been created by the EXPORT utility can only be read by IMPORT. Both tools are only used to maintain ORACLE database objects.</p>
<p>SQL*Loader is similar to Import in that it can load data; the main difference is that Import can read only Oracle export files. SQL*Loader can read text files generated by non-Oracle databases.To load data from other systems into the database you have to use SQL*LOADER or other programs. To store data from database into readable operating system files you may use e.g. REPORTS, SQLPLUS.</p>
<p>While still supported on 10g the original import (<em>imp</em>) and export (<em>exp</em>) utilities were replaced in 10g with the faster and more advanced Data Pump-based import-export, <em>impdp</em> and <em>expdp</em>.</p>
<p>NOTE: It is generally advised not to use exports as the only means of backing-up a database. Physical backup methods (for example, when you use RMAN) are normally much quicker and supports point in time based recovery (apply archivelogs after recovering a database). Also, exp/imp is not practical for large database environments.</p>
<p>On 11g just imp will be still available, so if you using 10g, now is the time to starting using data pump.</p>
<h2>Prerequisites/Requirements</h2>
<p>exp and imp are utilities present in the <strong><em>$ORACLE_HOME/bin</em></strong> directory and are installed when Oracle is installed. Their prime purpose is to move logical objects out of and into the database respectively &#8211; for example dumping all of the tables owned by a user to a single file is achieved using the exp utility. It is important to distinguish between dumping data in this manner and backing up the database which is normally achieved using the <em>rman</em> utility.</p>
<p><strong><em>$ORACLE_HOME, $ORACLE_SID</em></strong> and <strong><em>$PATH</em></strong> environment variables need to be set appropriately in a unix environment and the <strong><em>%ORACLE_SID%</em></strong> environment variable needs to be set in a windows environment, before executing these commands. If you login as the owner of the oracle software (usually the oracle user on unix) these are likely to have been set in the users profile. The Oracle Database instance needs to be up in order to export/import data. Type <em>&#8216;imp help=y&#8217;</em> or <em>&#8216;exp help=y&#8217;</em> for a detailed explanation of the available options for these utilities.</p>
<p>It is a prerequisite that <strong><em>oraenv</em></strong> or <strong><em>coraenv</em></strong> (if you are working in a c-shell) was executed before you export-import data. Consider, if you stored data in the database by using an national language support (NLS) other than AMERICAN you have to change your environment before import-export.<br />
Example for a german environment:<br />
<strong><em>NLS_LANG=GERMAN_GERMANY.WE8ISO8859P1</em></strong><strong><em><br />
</em></strong><strong><em>export NLS_LANG</em></strong></p>
<p>In order to use exp and imp, the <strong><em>catexp.sql</em></strong> script must be run. <em>catexp.sql</em> basically creates the <strong><em>exp_full_database</em></strong> and <strong><em>imp_full_database</em></strong> roles. It is found under <strong><em>$ORACLE_HOME/rdbms/admin</em></strong>:</p>
<p>SQL&gt; @?/rdbms/admin/catexp</p>
<p><em>catexp</em> is called by <em>catalog.sql</em>. Note: SQL*Plus provides a shortcut to refer to the ORACLE_HOME directory: the question mark (<strong>?</strong>).</p>
<p>One must have the create session privilege for being able to use exp. If objects of another user&#8217;s schema need to be exported, the <strong><em>EXP_FULL_DATABASE</em></strong> role is required.</p>
<p>Before one imports rows into already populated tables, one needs to truncate or drop these tables to get rid of the old data. If not, the new data will be appended to the existing tables or it&#8217;ll get rejected. Either way, use the same syntax when you are ready to import the data. One must always DROP existing Sequences before re-importing. If the sequences are not dropped, they will generate numbers inconsistent with the rest of the database.</p>
<p>Note: It is also advisable to drop indexes before importing to speed up the import process. Indexes can easily be recreated after the data was successfully imported.</p>
<p><strong>Control and Configure Export-Import</strong><strong><br />
</strong>FULL, OWNER, and TABLE are the three types of exports. A FULL export exports all objects, structures, and data within the database for all schemas. OWNER exports only those objects owned by the specified user accounts. TABLE exports only the specified tables and partitions for specific user accounts.</p>
<p>Because dozens of object types can be exported, it&#8217;s important to distinguish what gets exported with each export category:</p>
<ul>
<li>With <strong>TABLE</strong>, the specified table (or cluster or partition) is exported with its indexes, referential integrity constraints, synonyms, and triggers.</li>
<li>With <strong>OWNER</strong> specified, all the specified schema&#8217;s objects are exported. This includes database links, sequences, packages/procedures/functions, object-type definitions, clusters/tables/partitions, postable actions, synonyms, views, triggers, snapshots/snapshot logs, job queues, and refresh groups.</li>
<li>With the <strong>FULL</strong> option, all objects described in OWNER are exported for every user account, in addition to tablespace definitions, profiles, user definitions (and encrypted passwords), roles, resource costs, rollback segment definitions, directory aliases, user history table, and auditing options.</li>
</ul>
<p>You can use the Export and Import utilities in <strong><em>interactive</em></strong> or <strong><em>non-interactive</em></strong> mode. In interactive mode, Oracle steps you through the process, prompting for basic Import/Export session information. This method, however, limits you to the simple prompts that Oracle provides. You have more flexibility in non-interactive mode because you can supply up to 23 parameters for the Export utility and 24 parameters for the Import utility. The parameters may be supplied at the command line or by specifying a command file that contains all parameters and values. You can automate Export and Import sessions by using a command file, or repeat them over and over again manually.</p>
<p>The syntax of running Export and Import is as follows:<br />
<em>EXP KEYWORD=value or keyword=(value1,value2,&#8230;,valueN)<br />
IMP KEYWORD=value or keyword=(value1,value2,&#8230;,valueN)</em><br />
Replace KEYWORD with the parameter, and value with what should be the parameter&#8217;s value. For example, use the following to export the entire database:<br />
<em>EXP USERID=SYSTEM/MANAGER FULL=Y</em></p>
<p>Use the following to import the EMP and DEPT tables owned by the SCOTT user account: <em>IMP USERID=SYSTEM/MANAGER FROMUSER=SCOTT TABLES=(EMP,DEPT)</em>The following examples demonstrate how the imp/exp utilities can be used:<br />
<em>exp scott/tiger file=emp.dmp log=emp.log tables=emp rows=yes indexes=no<br />
exp scott/tiger file=emp.dmp tables=(emp,dept)<br />
imp scott/tiger file=emp.dmp full=yes<br />
imp scott/tiger file=emp.dmp fromuser=scott touser=scott tables=dept</em><em> </em></p>
<p>Using a parameter file:<br />
<em>exp userid=scott/tiger@orcl parfile=export.txt</em><br />
&#8230; where export.txt contains:<br />
BUFFER=100000<br />
FILE=account.dmp<br />
FULL=n<br />
OWNER=scott<br />
GRANTS=y<br />
COMPRESS=y<br />
NOTE: If you do not like command line utilities, you can import and export data with the &#8220;Schema Manager&#8221; GUI that ships with Oracle Enterprise Manager (OEM).<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
<em>The EXPORT utility may be used in three ways: </em></p>
<ul>
<li>Interactive dialogue<br />
Simply type <strong>exp</strong>. You will be prompted for your ORACLE userid, password. All other prompts answer by pressing the return key. This is the easiest way to export all data you stored in the ORACLE database. You may assign other values than the defaults to the parameters but in most cases it is unnecessary.</li>
<li>Controlled through bypassed parameters<br />
You may bypass parameters when you export data from the database. Type:<br />
<strong><em>exp</em></strong><em> &lt;userid<strong>/</strong>password&gt; &lt;parameter&gt;<strong>=</strong>&lt;value&gt;,&lt;parameter&gt;<strong>=</strong>&lt;value&gt;,&#8230;</em><br />
Example of exporting scott&#8217;s tables EMP and DEPT to file empdept.expdat and storing all messages to file empdept.log:<br />
<em>exp scott/tiger file=empdept.expdat tables=(EMP,DEPT) log=empdept.log</em></li>
<li>Parameterfile controlled<br />
Instead of typing the parameters on the commandline you may use a parameter file where the parameters are stored. The syntax for this method is: <em>exp &lt;userid/password&gt; parfile=&lt;filename&gt;</em></li>
</ul>
<p>Do not ignore warnings and messages. Look at your logfile and repeat EXPORT until you get messages like:</p>
<pre><em>About to export specified tables ...
. exporting table                            EMP       14 rows exported
. exporting table                           DEPT        4 rows exported
Export terminated successfully without warnings.</em>
--------------------------------------------------------------------------------------
Like Export the <em>Import utility</em> is controlled by parameters. To get familiar with these parameters type: <em>imp help=y</em>
You will get a short description of usage and default settings of parameters.
To start IMPORT simply type <strong>imp</strong>. You will be prompted for your ORACLE userid, password. The next prompts depend on what you answer. In most cases you may answer the prompts by pressing the return key. But the following prompts you have to answer carefully.
<em>Import file: expdat.dmp &gt;
</em>If your data was exported to file expdat.dmp press return, otherwise enter the filename where the exported data resides.
<em>Ignore create error due to object existence (yes/no): yes &gt;
</em>This is a flag to indicate how object creation errors should be handeld. If you import into an existing table and you set <strong><em>IGNORE=Y</em></strong>, rows could be duplicated if they where already present in the table.
<em>Import entire export file (yes/no): yes &gt; no
Username:
</em>If your exportfile consists of more objects than you want to import, enter no. In this case you will be prompted for the Username (this is normally your ORACLE account). <em>Enter table names. Null list means all tables for user
Enter table name or . if done:
</em>After entering the username you will be prompted for table names until you press the return key without entering a table name. Than IMPORT will be started.

Instead of the dialogue method you may use parameters. This is analogous to the methods described for EXPORT.
Examples:
<em>imp &lt;userid/password&gt; tables=(table1,table2)</em><em>
</em>Tables table1, table2 will be imported from the default file export.dmp into the database.
<em>imp &lt;userid/password&gt; parfile=&lt;filename&gt;</em>
Import will be controlled by the named parameterfile.
After importing you should get messages like:</pre>
<pre><em>importing SCOTT's objects into SCOTT
. importing table "DEPT"                                     4 rows imported
. importing table "EMP"                                     14 rows imported
Import terminated successfully without warnings.</em>
-----------------------------------------------------------------------------------</pre>
<p><strong>Parameters for the Export utility</strong></p>
<p>Table below lists all parameters that can be used with the Export utility, along with their default values (if any).</p>
<table border="1" cellpadding="0">
<tbody>
<tr>
<td width="144" valign="top"><strong>Parameter</strong></td>
<td width="96" valign="top"><strong>Default Value</strong></td>
<td width="336" valign="top"><strong>Description</strong></td>
</tr>
<tr>
<td width="144" valign="top">BUFFER</td>
<td width="96" valign="top">OS-dependent</td>
<td width="336" valign="top">The size of BUFFER (in bytes) determines the memory buffer through which rows are exported. This should be larger than the size of the largest record multiplied by the number of rows that you want to fit within the buffer.</td>
</tr>
<tr>
<td width="144" valign="top">COMPRESS</td>
<td width="96" valign="top">Y</td>
<td width="336" valign="top">If COMPRESS=Y, the INITIAL storage parameter is set to the total size of all extents allocated for the object. The change takes effect only when the object is imported.</td>
</tr>
<tr>
<td width="144" valign="top">CONSISTENT</td>
<td width="96" valign="top">N</td>
<td width="336" valign="top">Setting CONSISTENT=Y exports all tables and references in a consistent state. This slows the export, as rollback space is used. If CONSISTENT=N and a record is modified during the export, the data will become inconsistent.</td>
</tr>
<tr>
<td width="144" valign="top">CONSTRAINTS</td>
<td width="96" valign="top">N</td>
<td width="336" valign="top">Specifies whether table constraints are exported.</td>
</tr>
<tr>
<td width="144" valign="top">DIRECT</td>
<td width="96" valign="top">N</td>
<td width="336" valign="top">If DIRECT=Y, Oracle bypasses the SQL command-processing layer, improving the speed of the export. Unfortunately, the new object types endemic to Oracle8, such as LOBs, don&#8217;t get exported.</td>
</tr>
<tr>
<td width="144" valign="top">FEEDBACK</td>
<td width="96" valign="top">0</td>
<td width="336" valign="top">Oracle displays a period for each group of records inserted. FEEDBACK defines the size of the group. For example, if FEEDBACK=1000, a period will be displayed for every 1,000 records imported. This parameter is useful for tracking the progress of large imports.</td>
</tr>
<tr>
<td width="144" valign="top">FILE</td>
<td width="96" valign="top">expdat.dmp</td>
<td width="336" valign="top">By default, expdat.dmp (stands for EXPort DATa.DuMP) is the filename. For a more meaningful name, change the FILE parameter.</td>
</tr>
<tr>
<td width="144" valign="top">FULL</td>
<td width="96" valign="top">N</td>
<td width="336" valign="top">The entire database will be exported if FULL=Y, including tablespace definitions.</td>
</tr>
<tr>
<td width="144" valign="top">GRANTS</td>
<td width="96" valign="top">Y</td>
<td width="336" valign="top">Specifies whether all grant definitions are exported for the objects being exported.</td>
</tr>
<tr>
<td width="144" valign="top">HELP</td>
<td width="96" valign="top">N</td>
<td width="336" valign="top">No other parameters are needed if you specify HELP=Y. A basic help screen will appear.</td>
</tr>
<tr>
<td width="144" valign="top">INCTYPE</td>
<td width="96" valign="top"></td>
<td width="336" valign="top">The valid options for this parameter are COMPLETE, CUMULATIVE, and INCREMENTAL. A COMPLETE export lays down a full export for which the other two options rely on for restores of the database. CUMULATIVE exports all tables and other objects that have changed since the last CUMULATIVE or COMPLETE export was taken; if one record in a table is altered, the entire table is exported. INCREMENTAL exports all tables and objects that have changed since the last INCREMENTAL, CUMULATIVE, or COMPLETE export.</td>
</tr>
</tbody>
</table>
<table border="1" cellpadding="0">
<tbody>
<tr>
<td width="600" valign="top"><strong>How can you easily see the Export/Import parameters and syntax?</strong></td>
</tr>
<tr>
<td width="600" valign="top">If you don&#8217;t have this book handy when necessary and haven&#8217;t memorized the dozens of parameters, the Export and Import utilities have a handy reference built in. Typing EXP HELP=Y or IMP HELP=Y at a command prompt brings up a nice one-page reference manual.</td>
</tr>
</tbody>
</table>
<table border="1" cellpadding="0">
<tbody>
<tr>
<td width="185" valign="top"><strong>Parameter</strong></td>
<td width="88" valign="top"><strong>Default Value</strong></td>
<td width="303" valign="top"><strong>Description</strong></td>
</tr>
<tr>
<td width="185" valign="top">INDEXES</td>
<td width="88" valign="top">Y</td>
<td width="303" valign="top">Specifies whether user-defined indexes are exported. System indexes created with constraints (primary key, unique key) and OID indexes are automatically exported, regardless of this parameter&#8217;s value.</td>
</tr>
<tr>
<td width="185" valign="top">LOG</td>
<td width="88" valign="top"></td>
<td width="303" valign="top">Specifies the name of the file to spool the feedback from the export session. Unless otherwise specified, Oracle appends a .LOG extension to the file.</td>
</tr>
<tr>
<td width="185" valign="top">PARFILE</td>
<td width="88" valign="top"></td>
<td width="303" valign="top">Rather than enter all parameters on the command line, some or all can be kept in a parameter file. This parameter specifies which file to use, if desired. This parameter is especially useful for non-interactive import sessions.</td>
</tr>
<tr>
<td width="185" valign="top">POINT_IN_TIME_RECOVER</td>
<td width="88" valign="top">N</td>
<td width="303" valign="top">Exports information for a point-in-time recovery for the tablespace listed with the TABLESPACES parameter.</td>
</tr>
<tr>
<td width="185" valign="top">RECORD</td>
<td width="88" valign="top">Y</td>
<td width="303" valign="top">If you use the INCTYPE parameter with RECORD=Y, the SYS data dictionary tables INCEXP, INCFIL, and INCVID are populated with export data such as owner, type of export, and the time of export.</td>
</tr>
<tr>
<td width="185" valign="top">RECORDLENGTH</td>
<td width="88" valign="top">OS-dependent</td>
<td width="303" valign="top">The RECORDLENGTH parameter is used only when you&#8217;ll import on a machine with a different byte count of the file than on the machine where the export occurs. The default should be used in most import sessions.</td>
</tr>
<tr>
<td width="185" valign="top">RECOVERY_TABLESPACES</td>
<td width="88" valign="top"></td>
<td width="303" valign="top">Used with POINT_IN_TIME_RECOVER;specifies which tablespaces can be recovered by using point-in-time recovery. This is important because imports otherwise can&#8217;t recover transactions past the time of export.</td>
</tr>
<tr>
<td width="185" valign="top">ROWS</td>
<td width="88" valign="top">Y</td>
<td width="303" valign="top">Specifies whether table and object data will be exported. If ROWS=N, only object definitions are exported.</td>
</tr>
<tr>
<td width="185" valign="top">STATISTICS</td>
<td width="88" valign="top">ESTIMATE</td>
<td width="303" valign="top">Specifies whether table and index statistics are to be analyzed with COMPUTE or ESTIMATE when imported. Only those objects that already have statistics on them will be analyzed during import. Specify NONE if no objects should be analyzed.</td>
</tr>
<tr>
<td width="185" valign="top">TABLES</td>
<td width="88" valign="top"></td>
<td width="303" valign="top">Specifies a comma-separated list of all tables to be exported. This parameter could be used with the OWNER parameter to specify which owner to associate the tables with. Tables can also be specified with the owner.table_name format. In a non-UNIX environment such as Windows NT, you must enclose the table list within parentheses.</td>
</tr>
<tr>
<td width="185" valign="top">TABLESPACES</td>
<td width="88" valign="top"></td>
<td width="303" valign="top">List of tablespaces to be exported with the POINT_IN_TIME_RECOVER parameter.</td>
</tr>
<tr>
<td width="185" valign="top">USERID</td>
<td width="88" valign="top"></td>
<td width="303" valign="top">Specifies the username and password for the user conducting the import. The format for the command is username/password. You can also use Net8&#8242;s @connect_string format if you want.</td>
</tr>
</tbody>
</table>
<p><strong>Parameters for the Import utility</strong><strong><br />
</strong>You can use 24 parameters during an import session. They may be specified in the command line or any specified parameter file. Table below lists all the import parameters.</p>
<table border="1" cellpadding="0">
<tbody>
<tr>
<td width="144" valign="top"><strong>Parameter</strong></td>
<td width="96" valign="top"><strong>Default Value</strong></td>
<td width="336" valign="top"><strong>Description</strong></td>
</tr>
<tr>
<td width="144" valign="top">ANALYZE</td>
<td width="96" valign="top">Y</td>
<td width="336" valign="top">Imported tables have their statistics analyzed if ANALYZE is set to Y. Only those tables that already had statistics on them during the export are computed. The tables will be ESTIMATED by default, unless the export was performed with the STATISTICS=COMPUTE parameter configuration.</td>
</tr>
<tr>
<td width="144" valign="top">BUFFER</td>
<td width="96" valign="top">OS-dependent</td>
<td width="336" valign="top">The BUFFER size (in bytes) determines the memory buffer through which rows are imported. This should be larger than the size of the largest record multiplied by the number of rows that you want to fit within the buffer.</td>
</tr>
<tr>
<td width="144" valign="top">CHARSET</td>
<td width="96" valign="top"></td>
<td width="336" valign="top">An obsolete Oracle6 parameter, indicating whether the export was done in ASCII or EBCDIC. This information is processed automatically in Oracle7 and Oracle8.</td>
</tr>
<tr>
<td width="144" valign="top">COMMIT</td>
<td width="96" valign="top">N</td>
<td width="336" valign="top">By default, a COMMIT occurs after each table, nested table, and partition. If you&#8217;re importing a large table, the rollback segments may grow large. To improve performance while loading large tables, you should set COMMIT=Y.</td>
</tr>
<tr>
<td width="144" valign="top">DESTROY</td>
<td width="96" valign="top">N</td>
<td width="336" valign="top">If you set DESTROY=Y and do a full import, Oracle will overwrite any data files that exist. If you use raw devices for your data files, they will be overwritten during a full import, as DESTROY=N won&#8217;t prevent the overwriting of datafiles! Don&#8217;t use this option unless you know what you&#8217;re doing.</td>
</tr>
<tr>
<td width="144" valign="top">FEEDBACK</td>
<td width="96" valign="top">0</td>
<td width="336" valign="top">Oracle displays a period for each group of records inserted. FEEDBACK defines the size of the group. For example, if FEEDBACK=1000, a period is displayed for every 1,000 records imported. This parameter is useful for tracking the progress of large imports.</td>
</tr>
</tbody>
</table>
<table border="1" cellpadding="0">
<tbody>
<tr>
<td width="600" valign="top"><strong>Export/Import and non-Oracle databases</strong></td>
</tr>
<tr>
<td width="600" valign="top">The export file (expdat.dmp by default) is a binary file that only Oracle databases can read. Many databases and PC software can export data into delimited text files, but the Export utility can&#8217;t. To transfer data from Oracle to a non-Oracle database, you must make a delimited file manually by spooling from within PL/SQL or SQL*Plus and running a custom-made script.</td>
</tr>
</tbody>
</table>
<table border="1" cellpadding="0">
<tbody>
<tr>
<td width="144" valign="top"><strong>Parameter</strong></td>
<td width="96" valign="top"><strong>Default Value</strong></td>
<td width="336" valign="top"><strong>Description</strong></td>
</tr>
<tr>
<td width="144" valign="top">FILE</td>
<td width="96" valign="top">expdat.dmp</td>
<td width="336" valign="top">By default, expdat.dmp (stands for EXPort DATa.DuMP) is the name of the file that Import will import from. If the file is something other than expdat.dmp, specify it with this parameter.</td>
</tr>
<tr>
<td width="144" valign="top">FROMUSER</td>
<td width="96" valign="top"></td>
<td width="336" valign="top">Specifying this parameter imports only those objects owned by the FROMUSER user account.</td>
</tr>
<tr>
<td width="144" valign="top">FULL</td>
<td width="96" valign="top">N</td>
<td width="336" valign="top">The entire database will be imported if FULL=Y.</td>
</tr>
<tr>
<td width="144" valign="top">GRANTS</td>
<td width="96" valign="top">Y</td>
<td width="336" valign="top">Specifies whether all grants will be created for the exported objects.</td>
</tr>
<tr>
<td width="144" valign="top">HELP</td>
<td width="96" valign="top">N</td>
<td width="336" valign="top">No other parameters are needed if you specify HELP=Y. A basic help screen will appear.</td>
</tr>
<tr>
<td width="144" valign="top">IGNORE</td>
<td width="96" valign="top">N</td>
<td width="336" valign="top">If IGNORE=Y, object creation errors are ignored, and records are inserted into the table. Duplicate records can result, if no unique constraints exist for the table. Non-object creation errors are still reported, such as operating system problems.</td>
</tr>
<tr>
<td width="144" valign="top">INCTYPE</td>
<td width="96" valign="top"></td>
<td width="336" valign="top">If you&#8217;re importing an incremental export, tables are dropped and recreated. You must first restore from the last SYSTEM export (specify INCTYPE=SYSTEM). Then import every incremental export (specify INCTYPE=RESTORE) until the desired changes are applied to the database.</td>
</tr>
<tr>
<td width="144" valign="top">INDEXES</td>
<td width="96" valign="top">Y</td>
<td width="336" valign="top">Specifies whether user-defined indexes are imported. System indexes created with constraints (primary key, unique key) and OID indexes are automatically imported, regardless of this parameter&#8217;s value.</td>
</tr>
<tr>
<td width="144" valign="top">INDEXFILE</td>
<td width="96" valign="top"></td>
<td width="336" valign="top">Specifies the name of the file to generate CREATE INDEX statements. Unless otherwise specified, Oracle appends an .SQL extension to the file. (This parameter is explained in more detail later in this chapter.)</td>
</tr>
</tbody>
</table>
<table border="1" cellpadding="0">
<tbody>
<tr>
<td width="600" valign="top"><strong>Using the </strong><strong>LOG </strong><strong>parameter</strong></td>
</tr>
<tr>
<td width="600" valign="top">You can specify a <em>log file </em>for the Export and Import sessions with the LOG parameter. The file, which mimics what&#8217;s output to the screen, reports all successful and unsuccessful messages to be examined at a later point. Some Oracle experts use this file during an automated load process and then checks the file for errors. A database administrator is paged if any appear.</td>
</tr>
</tbody>
</table>
<table border="1" cellpadding="0">
<tbody>
<tr>
<td width="187" valign="top"><strong>Parameter</strong></td>
<td width="92" valign="top"><strong>Default Value</strong></td>
<td width="298" valign="top"><strong>Description</strong></td>
</tr>
<tr>
<td width="187" valign="top">LOG</td>
<td width="92" valign="top"></td>
<td width="298" valign="top">Specifies the name of the file to spool the feedback from the import session. Unless otherwise specified, Oracle appends an .LOG extension to the file.</td>
</tr>
<tr>
<td width="187" valign="top">PARFILE</td>
<td width="92" valign="top"></td>
<td width="298" valign="top">Rather than enter all parameters on the command line, some or all may be kept in a parameter file. The PARFILE parameter specifies which file to use, if desired. This parameter is especially useful for non-interactive import sessions.</td>
</tr>
<tr>
<td width="187" valign="top">POINT_IN_TIME_RECOVER</td>
<td width="92" valign="top">N</td>
<td width="298" valign="top">Performs a point-in-time recovery for the tablespace exported with the TABLESPACES parameter.</td>
</tr>
<tr>
<td width="187" valign="top">RECORDLENGTH</td>
<td width="92" valign="top">OS-dependent</td>
<td width="298" valign="top">Used only when importing on a machine with a different byte count of the file than on the machine where the export occurred. The default should be used in most Import sessions.</td>
</tr>
<tr>
<td width="187" valign="top">SHOW</td>
<td width="92" valign="top">N</td>
<td width="298" valign="top">Displays each SQL statement and doesn&#8217;t apply them to the database. The SQL statements can be viewed and modified when used with the FILE parameter. (The SHOW parameter is explained in more detail later in this chapter.)</td>
</tr>
<tr>
<td width="187" valign="top">SKIP_UNUSABLE_INDEXES</td>
<td width="92" valign="top">N</td>
<td width="298" valign="top">Allows the postponement of index creation until the record data is imported. The indexes affected are only those set to an unusable state, and all other indexes are created if INDEXES=Y (the default value) is set.</td>
</tr>
<tr>
<td width="187" valign="top">TABLES</td>
<td width="92" valign="top"></td>
<td width="298" valign="top">Specifies a comma-separated list of all tables to be imported. You should use this parameter with the FROMUSER parameter. In a non-UNIX environment, such as Windows NT, enclose the table list within parentheses.</td>
</tr>
<tr>
<td width="187" valign="top">TOUSER</td>
<td width="92" valign="top"></td>
<td width="298" valign="top">Specifies the user account into which tables should be imported, if you want it to be different from the original owner of the tables. This parameter needs to be used with the FROMUSER parameter.</td>
</tr>
<tr>
<td width="187" valign="top">USERID</td>
<td width="92" valign="top"></td>
<td width="298" valign="top">Specifies the username and password for the user conducting the import. The format for the command is username/password. You may also use Net8&#8242;s @connect_string format if desired.</td>
</tr>
</tbody>
</table>
<h2>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;Using imp/exp across different Oracle version</h2>
<p>If exp and imp are used to export data from an Oracle database with a different version than the database in which is imported, then the following rules apply:</p>
<ul>
<li>1. exp must be of the lower version</li>
<li>2. imp must match the target version</li>
</ul>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<strong>Common Export/Import Errors</strong></p>
<ul>
<li><strong>ORA-00001: Unique constraint (&#8230;) violated</strong><br />
You are importing duplicate rows. Use IGNORE=YES to skip tables that already exist (imp will give an error if the object is re-created) OR Perform the following actions:</li>
<li>1. Back up the target table.</li>
<li>2. Try deleting the target table.</li>
<li>3. Run the import for this table again in overwrite mode.</li>
<li><strong>ORA-01555: Snapshot too old</strong><br />
Ask your users to STOP working while you are exporting or try using parameter CONSISTENT=NO</li>
<li><strong>ORA-01562: Failed to extend rollback segment</strong><br />
Create bigger rollback segments or set parameter COMMIT=Y while importing</li>
<li><strong>IMP-00015: Statement failed &#8230; object already exists&#8230;</strong><br />
Use the IGNORE=Y import parameter to ignore these errors, but be careful as you might end up with duplicate rows.</li>
</ul>
<p><a name="BACDAACC"></a><a name="i1008356"></a><a name="BACFJHAI"></a><a name="i1008361"></a><a name="BACGIDJI"></a><a name="i1008366"></a><a name="BACHBHDD"></a><a name="i1008371"></a><a name="BACHJCCC"></a>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
<strong>To Improve performance<em> </em></strong></p>
<p><strong>Export</strong></p>
<ul>
<li>Set the BUFFER parameter to a high value (e.g. 2Mb &#8212; entered as an integer &#8220;2000000&#8243;)</li>
<li>Set the RECORDLENGTH parameter to a high value (e.g. 64Kb &#8212; entered as an integer &#8220;64000&#8243;)</li>
<li>Use DIRECT=yes (direct mode export)</li>
<li>Stop unnecessary applications to free-up resources for your job.</li>
<li>If you run multiple export sessions, ensure they write to different physical disks.</li>
<li>DO NOT export to an NFS mounted filesystem. It will take forever.</li>
</ul>
<p><strong>Import</strong><strong><em> </em></strong></p>
<ul>
<li>Create an indexfile so that you can create indexes AFTER you have imported data. Do this by setting INDEXFILE to a filename and then import. No data will be imported but a file containing index definitions will be created. You must edit this file afterwards and supply the passwords for the schemas on all CONNECT statements. <strong><em> </em></strong></li>
<li>Place the file to be imported on a separate physical disk from the oracle data files<strong><em> </em></strong></li>
<li>Increase DB_CACHE_SIZE (DB_BLOCK_BUFFERS prior to 9i) considerably in the init$SID.ora file <strong><em> </em></strong></li>
<li>Set the LOG_BUFFER to a big value and restart oracle. <strong><em> </em></strong></li>
<li>Stop redo log archiving if it is running (ALTER DATABASE NOARCHIVELOG;)<strong><em> </em></strong></li>
<li>Create a BIG tablespace with a BIG rollback segment inside. Set all other rollback segments offline (except the SYSTEM rollback segment of course). The rollback segment must be as big as your biggest table (I think?) <strong><em> </em></strong></li>
<li>Use COMMIT=N in the import parameter file if you can afford it <strong><em> </em></strong></li>
<li>Use STATISTICS=NONE in the import parameter file to avoid time consuming to import the statistics <strong><em> </em></strong></li>
<li>Remember to run the indexfile previously created <strong><em> </em></strong></li>
</ul>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
<strong>Good practices</strong></p>
<ul>
<li>Always take care about CHARSETS when you do export and import. Using the wrong ones can convert your data in a lossy manner. The best situation is when your source and destination database have the same character sets, so you can avoid completely any character conversion. You control this behavior by setting NLS_LANG environment variable appropriately. When not set properly you may see &#8216;Exporting questionable statistics&#8217; messages.</li>
<li>After doing an export, it is better to check your dump by doing an import with the parameter SHOW=Y. This checks the validity of your dump file.</li>
</ul>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<strong>Other considerations</strong></p>
<ul>
<li>You may need to patch your Oracle client (where you are running exp/imp) to the same level as the Oracle server to prevent errors</li>
<li>When importing large amounts of data consider dropping indexes prior to the import to speed up the process and re-creating them once the import is completed</li>
<li>The amount of archive logs that may be created on a large import may fill up your disk</li>
<li>On INSERT triggers will fire, consider whether these need to be disabled</li>
<li>Increasing the RECORDLENGTH (max 65535) parameter can improve the length of time to perform an import/export as well as DIRECT=y for export</li>
</ul>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
Tablespace fragmentation occurs when objects are created, dropped, enlarged, and shrunk. The more often this occurs, the more fragmented the tablespace becomes. This causes free space to be broken into many separated island-like chunks of space. In addition, if an object has multiple extents, they could be spread out over different parts of the tablespace; this causes performance and maintenance problems. With many small blocks of free space instead of fewer large free spaces, you may be unable to create some objects that you otherwise could have. By defragmenting the tablespace, the data is reorganized so that all free space is put into one contiguous area, and each object&#8217;s extents are grouped next to each other.</p>
<ul>
<li>The Export and Import utilities can fix fragmentation in two ways:<br />
They can take a table with multiple extents and resize it into a table with one larger extent. This larger single extent will encompass the total size of all previous table extents.</li>
<li>They can make all objects within the tablespace adjacent to each other with no island-like characteristics, while at the same time merging all the free space into one larger free space.</li>
</ul>
<p>The easiest and most dramatic method fixes both fragmentation problems for the entire database. The database is shut down during the process. This forces all sessions against the database to stop (which is why it&#8217;s the most dramatic method).</p>
<p>Fixing a table&#8217;s storage parameter is fairly easy compared to the entire tablespace, as only one table is affected. To fix an entire tablespace, you&#8217;ll have to drop and recreate it, along with all the tables within it.</p>
<p><strong>Fix both fragmentation problems quickly</strong></p>
<ul type="disc">
<li>Export the entire database, specifying <tt>FULL=Y</tt> and <tt>COMPRESS=Y</tt>. <tt>FULL=Y</tt> exports the entire database; <tt>COMPRESS=Y</tt> changes the <tt>INITIAL</tt> storage parameter of each table in the database (if necessary) to fit within one extent each. For example, if a table has five 10M extents, the <tt>COMPRESS=Y</tt> specification changes the table to one 50M extent when imported.</li>
<li>Drop and recreate the entire database.</li>
<li>Import the entire database with the <tt>FULL=Y</tt> parameter.</li>
</ul>
<p><strong>Defragment just one tablespace (a less dramatic method)</strong></p>
<ul type="disc">
<li>Determine which tables exist in the tablespace and export just those tables.</li>
<li>Drop all the tables in the tablespace.</li>
<li>Issue the <tt>ALTER TABLESPACE COALESCE</tt> command (or drop and recreate the tablespace). This will coalesce all the free space within the tablespace into one contiguous area.</li>
<li>Import the tables. Oracle will create the tables adjacent to each other within the tablespace, and all free space will still be contiguous in one chunk of space. <strong> </strong></li>
</ul>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p><strong>Some more examples</strong></p>
<p><strong>EXP</strong><br />
To dump a single schema to disk (we use the scott example schema here)</p>
<p>- Login to server which has an Oracle client</p>
<p><em>exp &lt;user&gt;/&lt;password&gt; FILE=scott.dmp OWNER=scott</em><br />
To export specific tables to disk: Login to server which has an Oracle client</p>
<p><em>exp SYSTEM/password FIlE=expdat.dmp TABLES=(scott.emp,hr.countries) </em></p>
<p>The above command uses two users : scott and hr</p>
<p><em> </em></p>
<p><em>exp &lt;user&gt;/&lt;password&gt; FILE=scott.dmp TABLES=(emp,dept) </em></p>
<p>the above is only for one user : scott</p>
<p><strong>IMP<br />
</strong>To import the full database exported in the example above.<br />
<em>imp SYSTEM/password FULL=y FIlE=dba.dmp </em></p>
<p>To import just the dept and emp tables from the scott schema<br />
<em>imp SYSTEM/password FIlE=dba.dmp FROMUSER=scott TABLES=(dept,emp) </em></p>
<p>To import tables and change the owner</p>
<p><em>imp SYSTEM/password FROMUSER=blake TOUSER=scott FILE=blake.dmp TABLES=(unit,manager)</em><br />
To import just the scott schema exported in the example above:<br />
<em>imp &lt;user&gt;/&lt;password&gt; FIlE=scott.dmp</em></p>
<p>If you do not supply any parameters then you enter an interactive session as illustrated below. (Responses to prompts are shown in blue<strong>. </strong>from the prompt type imp and press enter</p>
<p>$&gt;imp<br />
Import: Release 9.2.0.6.0 &#8211; Production on Thu Mar 29 15:07:43 2007<br />
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.<br />
Username: SYSTEM<br />
Password: password<br />
Connected to: Oracle9i Enterprise Edition Release 9.2.0.6.0 &#8211; Production<br />
With the Partitioning, OLAP and Oracle Data Mining options<br />
JServer Release 9.2.0.6.0 &#8211; Production<br />
Import file: expdat.dmp &gt; /mention/path/of/dumpFile/includingFileName.dmp<br />
Enter insert buffer size (minimum is 8192) 30720&gt;<strong> </strong>(press enter to accept default)<br />
Export file created by EXPORT:V09.02.00 via conventional path<br />
import done in US7ASCII character set and AL16UTF16 NCHAR character set<br />
import server uses AL32UTF8 character set (possible charset conversion)<br />
List contents of import file only (yes/no): no &gt; press enter<br />
Ignore create error due to object existence (yes/no): no &gt; press enter<br />
Import grants (yes/no): yes &gt; press enter<br />
Import table data (yes/no): yes &gt; press enter<br />
Import entire export file (yes/no): no &gt; press enter or type no<br />
Username: give the userName for which you want the data to be imported<br />
Enter table(T) or partition(T:P) names. Null list means all tables for user<br />
Enter table(T) or partition(T:P) name or . if done: press enter<br />
. importing TST_001_V2&#8242;s objects into TST_001_V2</p>
<div class="printfriendly alignleft"><a href="http://www.oratraining.com/blog/2009/06/oracle-export-import-utility-exp-imp-tutorial/?pfstyle=wp" rel="nofollow" ><img src="//cdn.printfriendly.com/pf-button-both.gif" alt="Print Friendly" /></a></div><div class="tweetthis" style="text-align:left;"><p> <a class="tt" href="http://twitter.com/intent/tweet?text=Oracle+Export+and+Import+utility+tutorial+http%3A%2F%2Foratraining.com%2Fblog%2F%3Fp%3D169" 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/06/oracle-export-import-utility-exp-imp-tutorial/&amp;title=Oracle+Export+and+Import+utility+tutorial" 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%2F06%2Foracle-export-import-utility-exp-imp-tutorial%2F&amp;title=Oracle%20Export%20and%20Import%20utility%20tutorial" id="wpa2a_18"><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/06/oracle-export-import-utility-exp-imp-tutorial/feed/</wfw:commentRss>
		<slash:comments>0</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="printfriendly alignleft"><a href="http://www.oratraining.com/blog/2009/04/sqlloader-complete-reference/?pfstyle=wp" rel="nofollow" ><img src="//cdn.printfriendly.com/pf-button-both.gif" alt="Print Friendly" /></a></div><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_20"><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>

