<?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>All Things Oracle</title>
	<atom:link href="http://allthingsoracle.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://allthingsoracle.com</link>
	<description>Content for Oracle Developers and DBAs</description>
	<lastBuildDate>Fri, 18 May 2012 09:39:07 +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>Live, Rapid Dev Guided by Kscope12 Attendees</title>
		<link>http://allthingsoracle.com/live-rapid-dev-guided-by-kscope12-attendees/</link>
		<comments>http://allthingsoracle.com/live-rapid-dev-guided-by-kscope12-attendees/#comments</comments>
		<pubDate>Thu, 17 May 2012 17:09:25 +0000</pubDate>
		<dc:creator>All Things Oracle</dc:creator>
				<category><![CDATA[All Things Oracle Full Articles]]></category>
		<category><![CDATA[Application Development]]></category>
		<category><![CDATA[Database Administration]]></category>
		<category><![CDATA[Database Development]]></category>
		<category><![CDATA[Oracle Database]]></category>

		<guid isPermaLink="false">http://allthingsoracle.com/?p=2193</guid>
		<description><![CDATA[Attendees to this year&#8217;s ODTUG Kscope conference will have the opportunity to get involved in a live software development experience on the Red Gate exhibition stand (stand no. 424 &#8211; 425). Attendees will provide input to go from zero to first prototype in 3 days through a series of rapid development sessions live on the stand. Monday&#8217;s feedback is Tuesday&#8217;s... <a class="read-more" href="http://allthingsoracle.com/live-rapid-dev-guided-by-kscope12-attendees/">Continue Reading &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p>Attendees to this year&#8217;s <a href="http://kscope12.com/" target="blank">ODTUG Kscope conference</a> will have the opportunity to get involved in a live software development experience on the Red Gate exhibition stand (stand no. 424 &#8211; 425). Attendees will provide input to go from zero to first prototype in 3 days through a series of rapid development sessions live on the stand.</p>
<h6>Monday&#8217;s feedback is Tuesday&#8217;s features</h6>
<p>The entire stand will be turned into a mini development lab to create a prototype for an Oracle schema version control tool over the course of the 3 exhibition days. Red Gate will be involving 100&#8242;s of people in rapid feedback sessions during 9 <a href="http://en.wikipedia.org/wiki/Scrum_(development)#Sprint" target="_blank" title="Wikipedia definition of (Scrum) sprints">sprints</a> to develop a paper prototype and then using this feedback to build an HTML prototype. The prototype will constantly evolve based on the feedback from Kscope attendees: features will be added, deleted and improved, and the prototype may even be scrapped completely several times. The main thing is that Oracle developers and DBAs can define how they want this tool to work, and this will go straight into the final product. <a href="http://www.red-gate.com/products/oracle-development/source-control-for-oracle/kscope12" target="blank">Find out more&#8230;</a></p>
<h6>A unique two-way learning experience</h6>
<p>Participants will get to experience rapid prototyping, agile development and learn how a company like <a href="http://www.red-gate.com/products/oracle-development/" target="_blank">Red Gate</a> develops software. At the same time Red Gate will gain loads of feedback on the features, UI and requirements for an Oracle version control tool. So if you&#8217;re making your way to Kscope12, please join in on stand 424 &#8211; 425 for a unique two-way learning experience. ODTUG Kscope12 runs from 24 &#8211; 28 June in San Antonio, Texas. </p>
<h6>Not going to Kscope12? Join in here</h6>
<p><strong>Daily update</strong></p>
<p><a href="http://kscope12.com/" target="blank">Kscope12</a> runs from 24 &#8211; 28 June in San Antonio, Texas. As the prototype progresses we&#8217;ll be keeping a blog post up-to-date on All Things Oracle.com and including photos. Please keep checking back to see how Kscope attendees and the Red Gate team are getting on and use the comments function to add your feedback.</p>
<p><strong>Current version of the HTML prototype</strong></p>
<p>A link to the most recent version of the HTML prototype will be put up after the first round of feedback and development sessions on Monday 25 June.</p>
<p><strong>Fill out our quick survey</strong></p>
<p>If you have some time now, please fill in Red Gate&#8217;s short survey: <a href="https://www.surveymk.com/s/DTR9WFR" target="blank">Oracle Database Source Control Survey</a></p>
<p><strong>Be part of the Early Access program</strong></p>
<p>Please email <a href="mailto: oracletools.info@red-gate.com?subject=Source Control for Oracle EAP">oracletools.info@red-gate.com</a> with &#8216;Source Control for Oracle EAP&#8217; as your subject line and Red Gate will be in touch.</p>
<h6>How will the tool work?</h6>
<p>The tool &#8211; currently named Source Control for Oracle &#8211; will connect to your existing version control system to automatically store a complete history of your Oracle database schema changes. With your database under source control (just like your application code) your development team can share, track and understand schema changes quickly and easily. <a href="http://www.red-gate.com/products/oracle-development/source-control-for-oracle/" target="blank">Find out more&#8230;</a></p>
]]></content:encoded>
			<wfw:commentRss>http://allthingsoracle.com/live-rapid-dev-guided-by-kscope12-attendees/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introduction to Oracle Flashback Technology (Part 1: Application Developers)</title>
		<link>http://allthingsoracle.com/introduction-to-oracle-flashback-technology-part-1-application-developers/</link>
		<comments>http://allthingsoracle.com/introduction-to-oracle-flashback-technology-part-1-application-developers/#comments</comments>
		<pubDate>Wed, 16 May 2012 16:34:11 +0000</pubDate>
		<dc:creator>David Njoku</dc:creator>
				<category><![CDATA[Application Development]]></category>
		<category><![CDATA[Database Administration]]></category>
		<category><![CDATA[Database Development]]></category>
		<category><![CDATA[Oracle Database]]></category>
		<category><![CDATA[Troubleshooting]]></category>

		<guid isPermaLink="false">http://allthingsoracle.com/?p=2125</guid>
		<description><![CDATA[Imagine, if you will, that someone invented time travel. What would you do with it? Nip back into the past and fix that error you made? And maybe you’d want to do something about that silly, ill-advised haircut you had when you were 17. Well, the good news is that, in a manner of speaking, time travel has been invented.... <a class="read-more" href="http://allthingsoracle.com/introduction-to-oracle-flashback-technology-part-1-application-developers/">Continue Reading &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p>Imagine, if you will, that someone invented time travel. What would you do with it? Nip back into the past and fix that error you made? And maybe you’d want to do something about that silly, ill-advised haircut you had when you were 17. Well, the good news is that, in a manner of speaking, time travel has been invented. At least as far as Oracle databases go.</p>
<p>And the bad news?  There’s nothing it can do about your teenage haircut.</p>
<p>Oracle Flashback Technology is a suite of features that enables Oracle application developers and database administrators to wind the clock back and examine their database objects and data in a previous state without having to resort to backup media.</p>
<p>In this series of articles I intend to outline the benefits of Oracle Flashback to application developers and to database administrators. This first installment will concentrate on the tools that will be of interest to application developers.</p>
<p>Oracle Flashback Technology is actually a collection of features that enables the developer to examine the database’s recent past in a number of ways:</p>
<h6>Oracle Flashback Query:</h6>
<p>Flashback query is a neat trick. It allows you run a query against your data as it was at past time. Imagine you accidentally delete a number of rows and commit your changes. With flashback query you can easily reach into the past and retrieve those lost rows.  Using the <strong>SELECT&#8230; AS OF</strong> syntax you can examine the ghost of data past by referencing its timestamp.</p>
<pre>SELECT *
FROM emp AS OF TIMESTAMP TO_TIMESTAMP('2012-04-21 17:00:00','YYYY-MM-DD HH24:MI:SS');</pre>
<p>And if you wanted to view those rows that you accidentally deleted 5 minutes ago?</p>
<pre>SELECT *
FROM emp AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '6' MINUTE)
MINUS
SELECT *
FROM emp;</pre>
<h6>Oracle Flashback Version Query:</h6>
<p>While flashback query seems pretty much like magic, it actually comes with a cherry on it. Flashback Version Query has the power to not only resurrect bygone data, it can also give you important metadata about those rows. You can find out the exact chronology of the changes that have occurred to those rows &#8211; the whens and the whats. You do this using the <strong>SELECT … VERSIONS BETWEEN</strong> syntax referencing a start and end timestamp (you can also reference the System Change Number &#8211; SCN &#8211; if you prefer). Using this syntax you can query a number of pseudocolumns:</p>
<table>
<tbody>
<tr>
<td>VERSIONS_STARTTIME</td>
<td>The timestamp at which the row version was created.</td>
</tr>
<tr>
<td>VERSIONS_ENDTIME</td>
<td>The timestamp at which the row version ended.</td>
</tr>
<tr>
<td>VERSIONS_OPERATION</td>
<td>This pseudocolumn contains the operation that resulted in the row version. I(nsert), U(pdate) or D(elete).</td>
</tr>
<tr>
<td>VERSIONS_XID</td>
<td>The identifier for the transaction that resulted in the row version.</td>
</tr>
</tbody>
</table>
<p>Imagine that those rows from the previous example were not simply deleted, but were updated and changed numerously, and you are interested in finding out the details of each edition that occurred to a particular row. You might write a query such as the following:</p>
<pre>SELECT versions_starttime, versions_endtime, versions_operation, versions_xid, ename, sal
FROM  emp BETWEEN TIMESTAMP (systimestamp - interval '6' minute) AND systimestamp;</pre>
<p>Edit a row or two in one of your database tables and give the above query a spin. It will immediately strike you how important the flashback version query pseudocolumns could be. Pay attention to versions_xid, we will need it to add a further layer of functionality to our flashback cake.</p>
<h6>Oracle Flashback Transaction Query:</h6>
<p>The versions_xid value that we got from the previous query is the internal id that Oracle assigns each transaction. It’s a hexadecimal value, seemingly unremarkable in itself; but using it we can rummage around in the FLASHBACK_TRANSACTION_QUERY data dictionary view and obtain further information about our query. Amongst the columns in this view are the following:</p>
<p>XID<br />
START_TIMESTAMP<br />
COMMIT_TIMESTAMP<br />
LOGON_USER<br />
OPERATION<br />
UNDO_SQL</p>
<p>There are a few other columns in the view; one identifying the table and a few identifying the SCN. Describe the view yourself to get the full picture. However, do pay LOGON_USER and UNDO_SQL especial attention. Going back to our previous example, we can use this view to not only discover who deleted the missing rows, but also to allow Oracle generate for us the code it would take to undo the change.</p>
<pre>SELECT logon_user, operation, start_timestamp, undo_sql
FROM flashback_transaction_query
WHERE xid in (
SELECT  versions_xid
FROM  emp BETWEEN TIMESTAMP (systimestamp - interval '6' minute) AND systimestamp);</pre>
<h6>DBMS_FLASHBACK</h6>
<p>You know how, when you go to a really fancy store, they package your shopping up for you in a really nice bag? Well, that’s what Oracle have done with the DBMS_FLASHBACK package. The flashback technology is nothing short of amazing, but with DBMS_FLASHBACK they have wrapped it up and put a bow on it.</p>
<p>Using the tag team of DBMS_FLASHBACK.ENABLE_AT_TIME and DBMS_FLASHBACK.DISABLE, you can dial back your session to a past time and carry out select queries without having to bother with the SELECT&#8230;AS OF or SELECT … VERSIONS BETWEEN syntaxes. Using this package, the above example can be rewritten as follows:</p>
<pre>EXECUTE DBMS_FLASHBACK.ENABLE_AT_TIME(systimestamp- interval '6' minute);

SELECT * FROM emp;

EXECUTE DBMS_FLASHBACK.DISABLE;</pre>
<p>There are a few things you need to bear in mind, however. Only run select statements, no other DML and definitely no DDL statements. Also, you must follow each call to DBMS_FLASHBACK.ENABLE_AT_TIME with a call to DBMS_FLASHBACK.DISABLE before calling DBMS_FLASHBACK.ENABLE_AT_TIME again.</p>
<p>The DBMS_FLASHBACK package can also smooth out the hassle of restoring lost data for you. Using the TRANSACTION_BACKOUT procedure, Oracle will not only rollback any specified transactions, but also any dependent transactions that may have taken place as a result of them.</p>
<p>DBMS_FLASHBACK.BACKOUT_TRANSACTION</p>
<div dir="ltr">
<table>
<col width="113" />
<col width="112" />
<col width="386" />
<tbody>
<tr>
<td>numberofxids</td>
<td>NUMBER</td>
<td>Number of transactions to be backed out of.</td>
</tr>
<tr>
<td>Xids</td>
<td>XID_ARRAY</td>
<td>Array of transaction ids.</td>
</tr>
<tr>
<td>Options</td>
<td>NUMBER</td>
<td>How do you want dependent transactions to be handled?</p>
<p dir="ltr">·         NOCASCADE: You expect no dependencies.</p>
<p dir="ltr">·         NOCASCADE_FORCE: Back out of specified transactions, ignoring any dependencies.</p>
<p dir="ltr">·         NONCONFLICT_ONLY: Only back out of non-conflicting transactions.</p>
<p dir="ltr">·         CASCADE: Remove the parameterized transactions and all dependencies.</p>
</td>
</tr>
</tbody>
</table>
</div>
<p>The default value of the <strong>options</strong> parameter is NOCASCADE. If your transaction has dependencies, you will want to use CASCADE instead. Also bear in mind that you will need to commit the changes the procedure has made. However, you will probably want to examine the reports that the procedure has created in USER_FLASHBACK_TXT_STATE and USER_FLASHBACK_TXT_REPORT (or DBA_FLASHBACK_TXN_STATE and DBA_FLASHBACK_TXN_REPORT, if you have the access to them) before saving the changes.</p>
<h6>Conclusion:</h6>
<p>No man, Oscar Wilde once said, is rich enough to buy back his past. Perhaps so, but with Oracle Flashback Technology we can make the mistakes of the past a little less expensive. Using the functionality I have outlined above, developers can either deal with spilt milk on a transaction by transaction basis as needed, or perhaps build a simple overlying application that can reverse time at the press of a button.</p>
<p>“The past is not dead,” William Faulkner once said. “In fact, it’s not even past.”</p>
<p>Perhaps he was an Oracle developer too.</p>
<p><em>In the next instalment in this series I will discuss the tools in the Oracle Flashback Technology locker that database administrators will find invaluable.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://allthingsoracle.com/introduction-to-oracle-flashback-technology-part-1-application-developers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Auto Restart Enterprise Manager Cloud Control Agent 12c</title>
		<link>http://allthingsoracle.com/auto-restart-enterprise-manager-cloud-control-agent-12c/</link>
		<comments>http://allthingsoracle.com/auto-restart-enterprise-manager-cloud-control-agent-12c/#comments</comments>
		<pubDate>Thu, 10 May 2012 10:25:19 +0000</pubDate>
		<dc:creator>Wissem El Khlifi</dc:creator>
				<category><![CDATA[11g]]></category>
		<category><![CDATA[Database Administration]]></category>
		<category><![CDATA[Oracle Cloud]]></category>
		<category><![CDATA[Oracle Database]]></category>

		<guid isPermaLink="false">http://allthingsoracle.com/?p=1901</guid>
		<description><![CDATA[Introduction: Oracle Restart is a component added to the 11gR2 in order to improve the high availability of different database resources. Database instances, listeners are resources that can be automatically restarted after a hardware or software failure or whenever the server host restarts. These components can be easily added to the Oracle Restart using the crsctl add command. In this... <a class="read-more" href="http://allthingsoracle.com/auto-restart-enterprise-manager-cloud-control-agent-12c/">Continue Reading &#8594;</a>]]></description>
			<content:encoded><![CDATA[<h6>Introduction:</h6>
<p>Oracle Restart is a component added to the 11gR2 in order to improve the high availability of different database resources. Database instances, listeners are resources that can be automatically restarted after a hardware or software failure or whenever the server host restarts. These components can be easily added to the Oracle Restart using the crsctl add command. In this article, I am going to show you how to add the Enterprise Manager Agent 12c component to the Oracle Restart.</p>
<p>The following procedure has been tested on 11.2.0.3 RAC environment under Redhat Enterprise Linux. Apply the following steps on each node of the cluster:</p>
<h6>The procedure:</h6>
<ul>
<li>The Agent cloud control 12c is installed under the /opt/agent12c directory.</li>
<li>The agent can be started / Stopped by running $AGENT_HOME/bin/emctl start agent , $AGENT_HOME/bin/emctl stop agent commands, where $AGENT_HOME is /opt/agent12c/agent_inst in my case.</li>
</ul>
<p>Read the full article here:<a title="Permanent Link to Auto Restart Enterprise Manager Cloud Control Agent 12c;" href="http://www.oracle-class.com/?p=2597" rel="bookmark"> Auto Restart Enterprise Manager Cloud Control Agent 12c; </a></p>
]]></content:encoded>
			<wfw:commentRss>http://allthingsoracle.com/auto-restart-enterprise-manager-cloud-control-agent-12c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oracle Heap Tables or SQL Server Clustered Indexes? Jonathan Lewis and Grant Fritchey Live Debate</title>
		<link>http://allthingsoracle.com/oracle-heap-tables-or-sql-server-clustered-indexes-jonathan-lewis-and-grant-fritchey-live-debate/</link>
		<comments>http://allthingsoracle.com/oracle-heap-tables-or-sql-server-clustered-indexes-jonathan-lewis-and-grant-fritchey-live-debate/#comments</comments>
		<pubDate>Mon, 30 Apr 2012 13:48:04 +0000</pubDate>
		<dc:creator>Jonathan Lewis</dc:creator>
				<category><![CDATA[Database Administration]]></category>
		<category><![CDATA[Database Development]]></category>
		<category><![CDATA[Webinar]]></category>

		<guid isPermaLink="false">http://allthingsoracle.com/?p=2158</guid>
		<description><![CDATA[This webinar is being broadcast by Red Gate on 7 June 2012. Oracle and SQL Server may both share a common language, but certain things are handled quite differently. Jonathan Lewis (OakTable Network, Oracle Ace Director) is used to seeing heap tables (almost) everywhere, but Grant Fritchey (Microsoft SQL Server MVP) is used to seeing clustered indexes (almost) everywhere. But... <a class="read-more" href="http://allthingsoracle.com/oracle-heap-tables-or-sql-server-clustered-indexes-jonathan-lewis-and-grant-fritchey-live-debate/">Continue Reading &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p>This <a href="http://www.red-gate.com/products/oracle-development/deployment-suite-for-oracle/webinars/webinar-oracle-heaped-tables-sql-clustered-indexes" target="blank">webinar</a> is being broadcast by <a href="http://www.red-gate.com/products/oracle-development/" target="blank">Red Gate</a> on 7 June 2012.</p>
<p>Oracle and SQL Server may both share a common language, but certain things are handled quite differently. Jonathan Lewis (OakTable Network, Oracle Ace Director) is used to seeing heap tables (almost) everywhere, but Grant Fritchey (Microsoft SQL Server MVP) is used to seeing clustered indexes (almost) everywhere. But which arrangement performs better? And is comparative performance even the right thing to measure?</p>
<p>In this live discussion, these two heavyweights in their respective technology areas will debate the pros and cons of Oracle Heap Tables and SQL Clustered Indexes. Jonathan and Grant may even play a few unexpected cards during the discussion. Be prepared for a lively exchange which will not only entertain, but will teach you key concepts on Oracle and SQL Server.</p>
<p>Please note: this webinar is offered free of charge, and places are strictly limited and offered on a first come, first serve basis.</p>
<p><a href="http://www.red-gate.com/products/oracle-development/deployment-suite-for-oracle/webinars/webinar-oracle-heaped-tables-sql-clustered-indexes?utm_source=allthingsoracle&#038;utm_medium=button&#038;utm_content=webinar&#038;utm_campaign=deploymentsuitefororacle" target="blank"><button class="btn"><span>Register your place now</span></button class="btn"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://allthingsoracle.com/oracle-heap-tables-or-sql-server-clustered-indexes-jonathan-lewis-and-grant-fritchey-live-debate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oracle Server Room Door Puzzle</title>
		<link>http://allthingsoracle.com/oracle-server-room-door-puzzle/</link>
		<comments>http://allthingsoracle.com/oracle-server-room-door-puzzle/#comments</comments>
		<pubDate>Fri, 27 Apr 2012 11:47:51 +0000</pubDate>
		<dc:creator>All Things Oracle</dc:creator>
				<category><![CDATA[Puzzles]]></category>

		<guid isPermaLink="false">http://allthingsoracle.com/?p=2145</guid>
		<description><![CDATA[Here at Red Gate we have installed an extra security measure to help prevent unauthorised access to our Oracle server room. Our server room has no windows, the air vents on the wall are for the air conditioning units and the room (or any light in the room) cannot be seen through them, and the door is solid steel. A... <a class="read-more" href="http://allthingsoracle.com/oracle-server-room-door-puzzle/">Continue Reading &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p>Here at Red Gate we have installed an extra security measure to help prevent unauthorised access to our Oracle server room. Our server room has no windows, the air vents on the wall are for the air conditioning units and the room (or any light in the room) cannot be seen through them, and the door is solid steel. A 21 digit code unlocks the door, but the lights (bulbs hanging on cords from the ceiling), and monitors can only be turned on by a voice command once you are inside the room. The command is either &#8220;A&#8221;, &#8220;B&#8221;, or &#8220;C&#8221;, and our DBA changes it daily without letting anyone know.</p>
<p>There are three switches marked A, B and C on the wall outside the door, and one of these also works the lights but only when the door is locked shut. You are allowed to touch any or all switches as often as you like before you open the door and enter the room, but once inside, you must say &#8220;A&#8221;, &#8220;B&#8221;, or &#8220;C&#8221;. </p>
<p>You get one chance before the server room door locks and the alarm goes off. How do you know whether A, B or C is the right command? Please post your answers below.</p>
<p>Note: You obviously know the code to get into the room!</p>
<p><img src="http://allthingsoracle.com/wp-content/uploads/2012/04/Server-Room-Door-Puzzle.png" alt="" title="Oracle server room door puzzle" width="500" height="466" class="alignnone size-full wp-image-2146" /></p>
]]></content:encoded>
			<wfw:commentRss>http://allthingsoracle.com/oracle-server-room-door-puzzle/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>How to Gather SQL Resource Consumption Metrics in Oracle</title>
		<link>http://allthingsoracle.com/how-to-gather-sql-resource-consumption-metrics-in-oracle/</link>
		<comments>http://allthingsoracle.com/how-to-gather-sql-resource-consumption-metrics-in-oracle/#comments</comments>
		<pubDate>Thu, 26 Apr 2012 10:20:18 +0000</pubDate>
		<dc:creator>Karen Morton</dc:creator>
				<category><![CDATA[Database Development]]></category>
		<category><![CDATA[Oracle Database]]></category>
		<category><![CDATA[Performance Tuning]]></category>
		<category><![CDATA[PL/SQL]]></category>
		<category><![CDATA[Video]]></category>
		<category><![CDATA[Webinar]]></category>

		<guid isPermaLink="false">http://allthingsoracle.com/?p=2139</guid>
		<description><![CDATA[The following video and set of resources are from the webinar broadcast by Red Gate on 8 May 2012. The video above is accompanied by the following downloadable resources: Presentation slides (.pdf) Resource Consumption Metrics Examples (.txt) Workload Repository SQL Report (awrsqlrpt_1_16411_16412.html) SQL Monitoring Report (0-6x2sh0kvzac0t-2.html) ASH Report for BIUAT/biuat1 (ashrpt_1_0505_1117.html) Download all resources (.zip) SQL is utilized to return... <a class="read-more" href="http://allthingsoracle.com/how-to-gather-sql-resource-consumption-metrics-in-oracle/">Continue Reading &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p>The following video and set of resources are from the <a href="http://www.red-gate.com/products/oracle-development/deployment-suite-for-oracle/webinars/webinar-karen-morton-oracle-sql-resource-consumption-metrics" target="blank">webinar</a> broadcast by <a href="http://www.red-gate.com/products/oracle-development/" target="blank">Red Gate</a> on 8 May 2012.</p>
<p><a href="http://play.buto.tv/87D4R?hd=1&amp;fs=1&amp;autoplay=1" target="blank"><img src="http://allthingsoracle.com/wp-content/uploads/2012/04/oracle-sql-resource-consumption-metrics-karen-morton-video.png" alt="" title="How to Gather SQL Resource Consumption Metrics in Oracle by Karen Morton webinar recording" width="500" height="400" /></a></p>
<p>The video above is accompanied by the following downloadable resources:</p>
<ul>
<li><a href="http://www.allthingsoracle.com/wp-content/uploads/2012/05/Oracle-SQL-Consumption-Metrcis-Webinar-Slides.pdf" target="blank">Presentation slides (.pdf)</a></li>
<li><a href="http://www.allthingsoracle.com/wp-content/uploads/2012/05/resource-consumption-metrics-examples.txt" target="blank">Resource Consumption Metrics Examples (.txt)</a></li>
<li><a href="http://www.allthingsoracle.com/wp-content/uploads/2012/05/awrsqlrpt_1_16411_16412.html" target="blank">Workload Repository SQL Report (awrsqlrpt_1_16411_16412.html)</a></li>
<li><a href="http://www.allthingsoracle.com/wp-content/uploads/2012/05/0-6x2sh0kvzac0t-2.html" target="blank">SQL Monitoring Report (0-6x2sh0kvzac0t-2.html)</a></li>
<li><a href="http://www.allthingsoracle.com/wp-content/uploads/2012/05/ashrpt_1_0505_1117.html" target="blank">ASH Report for BIUAT/biuat1 (ashrpt_1_0505_1117.html)</a></li>
<p></p>
<li><a href="http://www.allthingsoracle.com/wp-content/uploads/2012/05/Oracle-SQL-Consumption-Metrics-Webinar-Resources.zip" target="blank">Download all resources (.zip)</a></li>
</ul>
<p>SQL is utilized to return data via our applications to service user requests. Whether it&#8217;s a single customer lookup or a huge month end summary report, the SQL we write must gather the correct data and return it to the user.</p>
<p>Ensuring that the SQL you write can do this in a timely and efficient manner, both now and in the future, requires that you measure and evaluate what resources your query must use.</p>
<p>In this webinar, we&#8217;ll cover several methods for how to collect data that show you precisely how your SQL consumes resources:</p>
<ul>
<li>Using AUTOTRACE</li>
<li>Using DBMS_XPLAN.DISPLAY_CURSOR</li>
<li>Using Report SQL Monitor</li>
<li>Using ASH (Active Session History) and AWR (Automatic Workload Repository) data</li>
</ul>
<p>You&#8217;ll learn how to utilize the data to understand the work your SQL is doing and the resources it consumes; identify currently evident performance issues as well as areas that could be problematic in the future; and modify your SQL to use less resources more efficiently while still returning the desired results.</p>
<p>A live Q+A session with Karen Morton will follow the presentation.</p>
]]></content:encoded>
			<wfw:commentRss>http://allthingsoracle.com/how-to-gather-sql-resource-consumption-metrics-in-oracle/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Free eBook: Expert Oracle Database Architecture</title>
		<link>http://allthingsoracle.com/free-ebook-expert-oracle-database-architecture/</link>
		<comments>http://allthingsoracle.com/free-ebook-expert-oracle-database-architecture/#comments</comments>
		<pubDate>Mon, 23 Apr 2012 10:09:10 +0000</pubDate>
		<dc:creator>All Things Oracle</dc:creator>
				<category><![CDATA[All Things Oracle Full Articles]]></category>
		<category><![CDATA[Application Development]]></category>
		<category><![CDATA[Database Administration]]></category>
		<category><![CDATA[Database Development]]></category>
		<category><![CDATA[eBook]]></category>
		<category><![CDATA[Oracle Database]]></category>
		<category><![CDATA[Performance Tuning]]></category>
		<category><![CDATA[PL/SQL]]></category>
		<category><![CDATA[Troubleshooting]]></category>

		<guid isPermaLink="false">http://allthingsoracle.com/?p=2128</guid>
		<description><![CDATA[Download your FREE eBook Expert Oracle Database Architecture (Apress Media) provides a one-stop resource containing deep wisdom on the design, development and administration of Oracle applications, written by one of the world&#8217;s foremost Oracle experts, Thomas Kyte. This fully revised second edition covers the developments up to Oracle Database 11g. Each feature is taught in a proof-by-example manner, not only... <a class="read-more" href="http://allthingsoracle.com/free-ebook-expert-oracle-database-architecture/">Continue Reading &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.red-gate.com/products/oracle-development/entrypage/expert-oracle-database-architecture?utm_source=allthingsoracle&#038;utm_medium=article&#038;utm_content=tom-kyte-ebook&#038;utm_campaign=deploymentsuitefororacle" target="blank"> <img src="http://www.allthingsoracle.com/wp-content/uploads/2012/04/expert-oracle-database-architecture-cover.png"></a></p>
<p>
<p><a href="http://www.red-gate.com/products/oracle-development/entrypage/expert-oracle-database-architecture?utm_source=allthingsoracle&#038;utm_medium=article&#038;utm_content=tom-kyte-ebook&#038;utm_campaign=deploymentsuitefororacle" target="blank"><button class="btn"><span>Download your FREE eBook</span></button class="btn"></a></p>
<p>Expert Oracle Database Architecture (<a href="http://www.apress.com/9781430229469" target="blank">Apress Media</a>) provides a one-stop resource containing deep wisdom on the design, development and administration of Oracle applications, written by one of the world&#8217;s foremost Oracle experts, Thomas Kyte. This fully revised second edition covers the developments up to Oracle Database 11g. Each feature is taught in a proof-by-example manner, not only discussing what it is, but also how it works, how to implement software using it, and the common pitfalls associated with it.</p>
<p><a href="http://www.red-gate.com/products/oracle-development/entrypage/expert-oracle-database-architecture" target="blank">Red Gate Software</a> is pleased to offer you the chance to download the e-version of this book free of charge for a <strong>limited period</strong>.</p>
<ul>
<li>Fully revised to cover Oracle Database 11g</li>
<li>Proof-by-example approach: Let the evidence be your guide</li>
<li>Dives deeply into Oracle Databases’s most powerful features</li>
<li>FREE eBook version (usual selling price = $41.99)</li>
<li>Zip file includes .pdf, .mobi and .epub versions</li>
</ul>
<h6>What you’ll learn</h6>
<ul>
<li>Develop an evidence-based approach to problem solving</li>
<li>Manage transactions in highly concurrent environments</li>
<li>Speed access to data through table and index design</li>
<li>Manage files and memory structures for performance and reliability</li>
<li>Scale up through partitioning and parallel processing</li>
<li>Load and unload data to interface with external systems</li>
<li>Think for yourself; don’t take Tom’s word for it!</li>
</ul>
<h6>Who this book is for</h6>
<p>This book is aimed at Oracle Database administrators, at PL/SQL and Java developers writing code to be deployed inside the database, and at developers of external applications who use Oracle Database as a data store. It is the go-to book for those wishing to create efficient and scalable applications.</p>
<p>
<p><a href="http://www.red-gate.com/products/oracle-development/entrypage/expert-oracle-database-architecture?utm_source=allthingsoracle&#038;utm_medium=article&#038;utm_content=tom-kyte-ebook&#038;utm_campaign=deploymentsuitefororacle" target="blank"><button class="btn"><span>Download your FREE eBook</span></button class="btn"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://allthingsoracle.com/free-ebook-expert-oracle-database-architecture/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Real Developers DO use Tools</title>
		<link>http://allthingsoracle.com/real-developers-do-use-tools/</link>
		<comments>http://allthingsoracle.com/real-developers-do-use-tools/#comments</comments>
		<pubDate>Thu, 19 Apr 2012 15:03:41 +0000</pubDate>
		<dc:creator>Cary Millsap</dc:creator>
				<category><![CDATA[Database Development]]></category>
		<category><![CDATA[Performance Tuning]]></category>
		<category><![CDATA[Video]]></category>
		<category><![CDATA[Webinar]]></category>

		<guid isPermaLink="false">http://allthingsoracle.com/?p=2118</guid>
		<description><![CDATA[This video is a recording from the webinar broadcast by Red Gate on 24th January 2012. You may&#8217;ve heard the idea that real developers don&#8217;t need tools, and the mark of a good developer is someone who can hand-code everything. But there are certain tasks where it doesn&#8217;t make sense to disregard using tools. In particular, critical tasks that need... <a class="read-more" href="http://allthingsoracle.com/real-developers-do-use-tools/">Continue Reading &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p>
<p>This video is a recording from the <a href="http://www.red-gate.com/products/oracle-development/deployment-suite-for-oracle/webinars/webinar-cary-millsap-oracle-developer-tools" target="blank">webinar</a> broadcast by <a href="http://www.red-gate.com/products/oracle-development" target="blank">Red Gate</a> on 24th January 2012.</p>
<p><a href="http://youtu.be/JJnllLzqEKA?hd=1&amp;fs=1&amp;autoplay=1" target="blank"><img title="Oracle Webinar Real Developers DO use Tools" src="http://allthingsoracle.com/wp-content/uploads/2012/04/oracle-webinar-cary-millsap-developer-tools-video-image.png" alt="" width="500" height="400" /></a></p>
<p>You may&#8217;ve heard the idea that real developers don&#8217;t need tools, and the mark of a good developer is someone who can hand-code everything. But there are certain tasks where it doesn&#8217;t make sense to disregard using tools. In particular, critical tasks that need to be completed before an application or database update goes live.</p>
<p>Development models are also changing. Agile methodology is gaining traction as companies look to shorten the development cycle. Therefore, reducing the time spent on critical tasks such as smoothing out application inefficiencies or identifying differences between instances of your database is becoming even more crucial.</p>
<p>The <a href="http://method-r.com/software/workbench" target="blank">Method R Workbench</a> and the <a href="http://www.red-gate.com/products/oracle-development/deployment-suite-for-oracle" target="blank">Deployment Suite for Oracle</a> are featured during the presentation to demonstrate that using tools is a necessity, rather than an option, for efficient database and application development. </p>
<p>A Q+A session with Cary Millsap follows the presentation.</p>
]]></content:encoded>
			<wfw:commentRss>http://allthingsoracle.com/real-developers-do-use-tools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>An Introduction to 11.2 RAC Server Pools</title>
		<link>http://allthingsoracle.com/an-introduction-to-11-2-rac-server-pools/</link>
		<comments>http://allthingsoracle.com/an-introduction-to-11-2-rac-server-pools/#comments</comments>
		<pubDate>Wed, 18 Apr 2012 10:47:28 +0000</pubDate>
		<dc:creator>Aman Sharma</dc:creator>
				<category><![CDATA[11g]]></category>
		<category><![CDATA[All Things Oracle Full Articles]]></category>
		<category><![CDATA[Database Administration]]></category>
		<category><![CDATA[Oracle Database]]></category>

		<guid isPermaLink="false">http://allthingsoracle.com/?p=2033</guid>
		<description><![CDATA[Oracle RAC is designed to cater for Oracle specific applications and also non-oracle applications. These applications, both Oracle and non-Oracle, when deployed on RAC, are termed as resources and Oracle RAC can manage both kinds of resources on the clusterware stack. Examples of both oracle and non-oracle resources are: database instance, database services, xclock, Apache etc. The traditional way to... <a class="read-more" href="http://allthingsoracle.com/an-introduction-to-11-2-rac-server-pools/">Continue Reading &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p>Oracle RAC is designed to cater for Oracle specific applications and also non-oracle applications. These applications, both Oracle and non-Oracle, when deployed on RAC, are termed as <em>resources</em> and Oracle RAC can manage both kinds of resources on the clusterware stack. Examples of both oracle and non-oracle resources are: database instance, database services, xclock, Apache etc.</p>
<p>The traditional way to manage these resources was manually. The DBA was supposed to decide on which instance (or instances) these resources would run and would set them up accordingly. An example of this can be taken when you are configuring a service which has to be present on some nodes as Preferred and on another node(s) as Available. Although this kind of management works well, it’s not something that can scale for a cluster which has got a large number of nodes in it. Think about sitting and managing the instances over a 200 nodes cluster, it wouldn’t be very exciting would it?</p>
<h6>Enter<em> Server Pools</em></h6>
<p>Grid computing is a concept within Oracle database which has been there since 10g. The basic meaning of grid computing is to divide the hard coupling of the availability of a resource over the machines thus letting the resources be available on a &#8216;wherever and whenever&#8217; kind of basis. This means that there shouldn’t be a restriction on a said resource which must be present on a specific machine itself or can only be accessed from a specific machine. The very same concept is enhanced in 11.2 RAC with the introduction of Server Pools.</p>
<p>Server Pools allow the same functionality of logically dividing the cluster into small segments that can be used for varying workloads. But unlike the traditional mechanism available up to 11.1, which only allows this task by choosing the instances  to run on nodes as Preferred &amp; Available and running services using the same architecture, server pools offer a much larger list of attributes which help in the management of resources in a rather simple and transparent way. In server pools, the underlying hosts of the cluster are added (and removed) from the pools much more on-the-fly, and take the burden off the DBA’s shoulders for this task. With just a few parameters to take care of, the whole stack becomes much easier to govern and administer, while still being completely transparent yet powerful to manage all the types of different resources in the RAC clusterware environment, especially  when the number of the nodes go beyond two digits.</p>
<h6>The built-in pools, Free and Generic</h6>
<p>In 11.2, with the installation of the cluster, two pools get created by default-Free &amp; Generic.</p>
<p><strong>Generic Pool</strong></p>
<p>When you upgrade your existing version of the clusterware to 11.2, all the nodes get mapped to the in-built Generic pool. This is an internally managed server pool and the modification of the attributes of this pool is not allowed. Besides the addition of the nodes of the previous cluster, in 11.2, when you create a database which is <em>Admin-managed</em>, that also becomes a part of the Generic Pool as a child pool of it.</p>
<p><strong>Free Pool</strong></p>
<p>This is another pool which gets created by default with the installation of the 11.2 clusterware. If it’s going to be a fresh installation of the clusterware environment, all the nodes would be attached to this pool first of all. From this pool only, the nodes would move to the manually created server pools. As like the Generic pool, this is also an internally managed pool but still some attributes are available to be modified by the dba like IMPORTANCE.</p>
<p>The following output is from a 3-node 11.2.0.1 cluster after a fresh installation with no database created over it:</p>
<pre>[grid@host01 bin]$ srvctl config serverpool
 Server pool name: Free
 Importance: 0, Min: 0, Max: -1
 Candidate server names:
 Server pool name: Generic
 Importance: 0, Min: 0, Max: -1
 Candidate server names: host01,host02,host03
 [grid@host01 bin]$</pre>
<h6>Attributes of Server Pools</h6>
<p>There are several attributes which can be set for the server pools. The following table (picked from Oracle documentation’s Clusterware Administration guide)  lists all the attributes, their meaning and possible values for them.</p>
<table width="100%" border="1" cellspacing="0" cellpadding="0">
<tr>
<td><strong>Attribute</strong></td>
<td><strong>Values and Format</strong></td>
<td><strong>Description</strong></td>
</tr>
<tr>
<td>ACL</td>
<td>String in the following format:<br />
<strong>owner:<em>user</em>:rwx,pgrp:<em>group</em>:rwx,other::r—</strong>
</td>
<td>Defines the owner of the server pool and which privileges are granted to various operating system users and groups. The server pool owner defines the operating system user of the owner, and which privileges that user is granted.The value of this optional attribute is populated at the time a server pool is created based on the identity of the process creating the server pool, unless explicitly overridden. The value can subsequently be changed, if such a change is allowed based on the existing privileges of the server pool.In the string:</p>
<ul>
<li><strong>owner</strong>: The operating system user of the server pool owner, followed by the privileges of the owner</li>
<li><strong>pgrp</strong>: The operating system group that is the primary group of the owner of the server pool, followed by the privileges of members of the primary group</li>
<li><strong>other</strong>: Followed by privileges of others</li>
<li><strong>r</strong>: Read only</li>
<li><strong>w</strong>: Modify attributes of the pool or delete it</li>
<li><strong>x</strong>: Assign resources to this pool</li>
</ul>
<p>By default, the identity of the client that creates the server pool is the <code>owner</code>. Also by default, <code>root</code>, and the <em>user</em>specified in <code>owner</code> have full privileges. You can grant required operating system users and operating system groups their privileges by adding the following lines to the <code>ACL</code> attribute:<br />
<strong>user:<em>username</em>:rwx</strong><br />
<strong>group:<em>group_name</em>:rwx</strong>
</td>
</tr>
<tr>
<td valign="top">
<strong>ACTIVE_SERVERS</strong>
</td>
<td valign="top">A string of server names in the following format:<br />
<strong>server_name1 server_name2 &#8230;</strong>
</td>
<td valign="top">Oracle Clusterware automatically manages this attribute, which contains the space-delimited list of servers that are currently assigned to a server pool.</td>
</tr>
<tr>
<td valign="top">
<strong>EXCLUSIVE_POOLS</strong>
</td>
<td valign="top">String</td>
<td valign="top">This optional attribute indicates if servers assigned to this server pool are shared with other server pools. A server pool can explicitly state that it is exclusive of any other server pool that has the same value for this attribute. Two or more server pools are mutually exclusive when the sets of servers assigned to them do not have a single server in common. For example, server pools A and B must be exclusive if they both set the value of this attribute to <code>foo_A_B</code>.Top-level server pools are mutually exclusive, by default.</td>
</tr>
<tr>
<td valign="top">
<strong>IMPORTANCE</strong>
</td>
<td valign="top">Any integer from 0 to 1000</td>
<td valign="top">Relative importance of the server pool, with <code>0</code> denoting the lowest level of importance and <code>1000</code>, the highest. This optional attribute is used to determine how to reconfigure the server pools when a node joins or leaves the cluster. The default value is <code>0</code>.</td>
</tr>
<tr>
<td valign="top">
<strong>MAX_SIZE</strong>
</td>
<td valign="top">Any nonnegative integer or <code>-1</code> (no limit)</td>
<td valign="top">The maximum number of servers a server pool can contain. This attribute is optional and is set to <code>-1</code> (no limit), by default.<strong>Note:</strong> A value of <code>-1</code> for this attribute spans the entire cluster.</td>
</tr>
<tr>
<td valign="top">
<strong>MIN_SIZE</strong>
</td>
<td valign="top">Any nonnegative integer</td>
<td valign="top">The minimum size of a server pool. If the number of servers contained in a server pool is below the number you specify in this attribute, then Oracle Clusterware automatically moves servers from other pools into this one until that number is met.<strong>Note:</strong> The value of this optional attribute does not set a hard limit. It governs the priority for server assignment whenever the cluster is reconfigured. The default value is <code>0</code>.</td>
</tr>
<tr>
<td valign="top">
<strong>NAME</strong>
</td>
<td valign="top">String</td>
<td valign="top">The name of the server pool, which you must specify when you create the server pool. Server pool names must be unique within the domain of names of user-created entities, such as resources, types, and servers. A server pool name can contain any platform-supported characters except the exclamation point (!) and the tilde (~). A server pool name cannot begin with a period nor with <em>ora</em>.</td>
</tr>
<tr>
<td valign="top">
<strong>PARENT_POOLS</strong>
</td>
<td valign="top">A string of space-delimited server pool names in the following format:<br />
<strong>sp1 sp2 &#8230;</strong>
</td>
<td valign="top">Use of this attribute makes it possible to create nested server pools. Server pools listed in this attribute are referred to as<em>parent</em> server pools. A server pool included in a parent server pool is referred to as a <em>child</em> server pool.</td>
</tr>
<tr>
<td valign="top">
<strong>SERVER_NAMES</strong>
</td>
<td valign="top">A string of space-delimited server names in the following format:<br />
<strong>server1 server2 &#8230;</strong>
</td>
<td valign="top">A list of candidate node names that may be associated with a server pool. If this optional attribute is empty, Oracle Clusterware assumes that any server may be assigned to any server pool, to the extent allowed by values of other attributes, such as <code>PARENT_POOLS</code>.The server names identified as candidate node names are not validated to confirm that they are currently active cluster members. Cluster administrators can use this attribute to define servers as candidates that have not yet been added to the cluster.</td>
</tr>
</tbody>
</table>
<p></p>
<p>You can see these attributes and the available nodes and their properties by using the command CRSCTL like below:</p>
<pre>[grid@host01 ~]$ crsctl status server
NAME=host01
STATE=ONLINE

NAME=host02
STATE=ONLINE

NAME=host03
STATE=ONLINE</pre>
<p>And the below output is showing the complete set of attributes shown for these server pools:</p>
<pre>[grid@host01 ~]$ crsctl status serverpool -p
NAME=Free
IMPORTANCE=0
MIN_SIZE=0
MAX_SIZE=-1
SERVER_NAMES=
PARENT_POOLS=
EXCLUSIVE_POOLS=
ACL=owner:grid:rwx,pgrp:oinstall:rwx,other::r-x

NAME=Generic
IMPORTANCE=0
MIN_SIZE=0
MAX_SIZE=-1
SERVER_NAMES=host01 host02 host03
PARENT_POOLS=
EXCLUSIVE_POOLS=
ACL=owner:grid:r-x,pgrp:oinstall:r-x,other::r-x

NAME=ora.orcladm
IMPORTANCE=1
MIN_SIZE=0
MAX_SIZE=-1
SERVER_NAMES=host01 host02 host03
PARENT_POOLS=Generic
EXCLUSIVE_POOLS=
ACL=owner:oracle:rwx,pgrp:oinstall:rwx,other::r--

NAME=sp1
IMPORTANCE=2
MIN_SIZE=1
MAX_SIZE=2
SERVER_NAMES=
PARENT_POOLS=
EXCLUSIVE_POOLS=
ACL=owner:grid:rwx,pgrp:oinstall:rwx,other::r—</pre>
<p>You can check the status of the server pools collectively but the default server pools, Generic and Free won’t be able to get completely described and only a limited view of both would be there. The Free can be still queried but the Generic server pool would remain completely inaccessible as is confirmed from the output below:</p>
<pre>[grid@host01 bin]$ srvctl config serverpool -g Free
Server pool name: Free
Importance: 0, Min: 0, Max: -1
Candidate server names:

[grid@host01 bin]$ srvctl config serverpool -g Generic
PRKO-3160 : Server pool Generic is internally managed as part of administrator-
managed database configuration and therefore cannot be queried directly via srvpool object.</pre>
<p>You can add your own server pools with the same command CRSCTL. The below command adds two server pools SP1, SP2 and then they are shown:</p>
<pre>[grid@host01 ~]$ crsctl add serverpool sp1 -attr "MIN_SIZE=1, MAX_SIZE=1, IMPORTANCE=1"
[grid@host01 ~]$ crsctl add serverpool sp2 -attr "MIN_SIZE=1, MAX_SIZE=1, IMPORTANCE=2"
[grid@host01 ~]$ crsctl status server -f
NAME=host01
STATE=ONLINE
ACTIVE_POOLS=Free
STATE_DETAILS=

NAME=host02
STATE=ONLINE
ACTIVE_POOLS=sp2
STATE_DETAILS=

NAME=host03
STATE=ONLINE
ACTIVE_POOLS=sp1
STATE_DETAILS=</pre>
<p>As expected, there is one host added to each of the pools and one node, which is unallocated, is still with the server pool FREE as an available host which can be allocated to either the existing pools or to a new one when it would be added.</p>
<h6>Child Pools</h6>
<p>Server pools can have the child pools under them as well. The child pools are going to have their own properties. The order in which the host allocated to them is going to be based on the IMPORTANCE parameter assigned to them. To understand the child pools, we can imagine a parent pool named as OLTP which represents the working of OLTP database. This parent pool now can have two further child pools, HR (human resource) and AP (account payable) . Now, we can have different attributes set up for the child pools depending on the importance that we want to give to each domain of the work. The hosts assigned are mutually exclusive within the parent pools. For the child pools, whether the same is possible for the child pools or not, would be based on the fact that what’s the value of the attribute EXCLUSIVE_POOL for them. If there is a string value assigned to this parameter and this is shared by two child pools, host assigned to one child pool can’t be shared by its other sibling.</p>
<p>The following is an excerpt of the output for two parent pools where child pools are added to them:</p>
<pre>[grid@host01 ~]$ crsctl delete serverpool sp1[grid@host01 ~]$ crsctl delete serverpool sp2
[grid@host01 ~]$ crsctl add serverpool sp1 -attr "MIN_SIZE=1, MAX_SIZE=1, IMPORTANCE=1"
[grid@host01 ~]$ crsctl add serverpool sp2 -attr "MIN_SIZE=1, MAX_SIZE=1, IMPORTANCE=2"
[grid@host01 ~]$ crsctl status server -f
NAME=host01
STATE=ONLINE
ACTIVE_POOLS=Free
STATE_DETAILS=

NAME=host02
STATE=ONLINE
ACTIVE_POOLS=sp2
STATE_DETAILS=

NAME=host03
STATE=ONLINE
ACTIVE_POOLS=sp1
STATE_DETAILS=

[grid@host01 ~]$ asmca
[grid@host01 ~]$

[grid@host01 ~]$ crsctl add serverpool sp1 -attr "MIN_SIZE=1, MAX_SIZE=1, IMPORTANCE=2"

[grid@host01 ~]$ crsctl add serverpool sp_child1 -attr "PARENT_POOLS=sp1, MIN_SIZE=1, MAX_SIZE=1, IMPORTANCE=2"
[grid@host01 ~]$ crsctl status server -f
NAME=host01
STATE=ONLINE
ACTIVE_POOLS=Free
STATE_DETAILS=

NAME=host02
STATE=ONLINE
ACTIVE_POOLS=Free
STATE_DETAILS=

NAME=host03
STATE=ONLINE
ACTIVE_POOLS=sp1 sp_child1
STATE_DETAILS=

[grid@host01 ~]$ crsctl add serverpool sp_child2 -attr "PARENT_POOLS=sp1, MIN_SIZE=1, MAX_SIZE=1, IMPORTANCE=3"
[grid@host01 ~]$ crsctl status server -f
NAME=host01
STATE=ONLINE
ACTIVE_POOLS=Free
STATE_DETAILS=

NAME=host02
STATE=ONLINE
ACTIVE_POOLS=Free
STATE_DETAILS=

NAME=host03
STATE=ONLINE
ACTIVE_POOLS=sp1 sp_child1 sp_child2
STATE_DETAILS=

[grid@host01 ~]$
[grid@host01 ~]$ crsctl add serverpool sp2 -attr "MIN_SIZE=1, MAX_SIZE=1, IMPORTANCE=1"
[grid@host01 ~]$ crsctl status server -f
NAME=host01
STATE=ONLINE
ACTIVE_POOLS=Free
STATE_DETAILS=

NAME=host02
STATE=ONLINE
ACTIVE_POOLS=sp2
STATE_DETAILS=

NAME=host03
STATE=ONLINE
ACTIVE_POOLS=sp1 sp_child1 sp_child2
STATE_DETAILS=

[grid@host01 ~]$

[grid@host01 ~]$ crsctl add serverpool sp2_child1 -attr "PARENT_POOLS=sp2,MIN_SIZE=1, MAX_SIZE=1, IMPORTANCE=1"
[grid@host01 ~]$ crsctl status server -f
NAME=host01
STATE=ONLINE
ACTIVE_POOLS=Free
STATE_DETAILS=

NAME=host02
STATE=ONLINE
ACTIVE_POOLS=sp2 sp2_child1
STATE_DETAILS=

NAME=host03
STATE=ONLINE
ACTIVE_POOLS=sp1 sp_child1 sp_child2
STATE_DETAILS=</pre>
<h6>How the hosts are added to the server pools</h6>
<p>The allocation of the hosts is going to be happening in the following order:</p>
<ol>
<li>Generic Pool</li>
<li>Explicitly created pool</li>
<li>Free Pool</li>
</ol>
<p>Oracle would keep on adding the hosts to the server pools as long as they have not been equal to the values of the MIN_SIZE and MAX_SIZE on the basis of the IMPORTANCE that’s assigned to the server pools. The hosts are going to be added exclusively to the pools i.e. the hosts added to one server pool won’t be shared with the other pools. The hosts can be shared by the child pools provided that there is no value set for the parameter EXCLUSIVE_POOLS which would restrict the host sharing within the child pools as well.</p>
<p>In the following example a few parent and child pools are created and the hosts are attached to them. We start by creating a parent pool SP1 and then for it, a child pool SP_CHILD1:</p>
<pre>
[grid@host01 Disk1]$ crsctl add serverpool sp1 -attr "MIN_SIZE=1, MAX_SIZE=1, IMPORTANCE=2"
[grid@host01 Disk1]$ crsctl status server
NAME=host01
STATE=ONLINE

NAME=host02
STATE=ONLINE

NAME=host03
STATE=ONLINE

[grid@host01 Disk1]$ crsctl status serverpool
NAME=Free
ACTIVE_SERVERS=host01 host03

NAME=Generic
ACTIVE_SERVERS=

NAME=sp1
ACTIVE_SERVERS=host02

[grid@host01 Disk1]$ crsctl add serverpool sp_child1 -attr "PARENT_POOLS=sp1, MIN_SIZE=1, MAX_SIZE=1, IMPORTANCE=2"
[grid@host01 Disk1]$ crsctl status serverpool
NAME=Free
ACTIVE_SERVERS=host01 host03

NAME=Generic
ACTIVE_SERVERS=

NAME=sp1
ACTIVE_SERVERS=host02

NAME=sp_child1
ACTIVE_SERVERS=host02
</pre>
<p>So we can see that one host-Host02 is attached to the child pool SP_CHILD1. Now we create another child pool SP_CHILD2:</p>
<pre>[grid@host01 Disk1]$ crsctl add serverpool sp_child2 -attr "PARENT_POOLS=sp1, MIN_SIZE=1, MAX_SIZE=1, IMPORTANCE=3"
[grid@host01 Disk1]$ crsctl status serverpool
NAME=Free
ACTIVE_SERVERS=host01 host03

NAME=Generic
ACTIVE_SERVERS=

NAME=sp1
ACTIVE_SERVERS=host02

NAME=sp_child1
ACTIVE_SERVERS=host02

NAME=sp_child2
ACTIVE_SERVERS=host02</pre>
<p>Since we haven’t set the parameter EXCLUSIVE_POOLS, the same host host02 is shared by both the children.</p>
<p>Now, let’s add another parent pool SP2:</p>
<pre>[grid@host01 Disk1]$ crsctl add serverpool sp2 -attr "MIN_SIZE=1, MAX_SIZE=1, IMPORTANCE=3"
[grid@host01 Disk1]$ crsctl status serverpool
NAME=Free
ACTIVE_SERVERS=host01

NAME=Generic
ACTIVE_SERVERS=

NAME=sp1
ACTIVE_SERVERS=host02

NAME=sp2
ACTIVE_SERVERS=host03

NAME=sp_child1
ACTIVE_SERVERS=host02

NAME=sp_child2
ACTIVE_SERVERS=host02</pre>
<p>So there is one server that is in the Free pool now-Host01 and there are two hosts , Host02 and Host03 which are shared by two pools SP2 and SP1 and two children SP_CHILD1 and SP_CHILD2.</p>
<p>In the below lines, we are again creating a few parent, and child pools underlying them.</p>
<pre>[grid@host01 ~]$ crsctl status serverpool
NAME=Free
ACTIVE_SERVERS=host01 host03

NAME=Generic
ACTIVE_SERVERS=

NAME=sp1
ACTIVE_SERVERS=host02

[grid@host01 ~]$ crsctl add serverpool sp_child1 -attr "PARENT_POOLS=sp1, MIN_SIZE=1, MAX_SIZE=1, IMPORTANCE=2"
[grid@host01 ~]$ crsctl status serverpool
NAME=Free
ACTIVE_SERVERS=host01 host03

NAME=Generic
ACTIVE_SERVERS=

NAME=sp1
ACTIVE_SERVERS=host02

NAME=sp_child1
ACTIVE_SERVERS=host02

[grid@host01 ~]$ crsctl add serverpool sp_child2 -attr "PARENT_POOLS=sp1, MIN_SIZE=1, MAX_SIZE=1, IMPORTANCE=1"
[grid@host01 ~]$ crsctl status serverpool
NAME=Free
ACTIVE_SERVERS=host01 host03

NAME=Generic
ACTIVE_SERVERS=

NAME=sp1
ACTIVE_SERVERS=host02

NAME=sp_child1
ACTIVE_SERVERS=host02

NAME=sp_child2
ACTIVE_SERVERS=host02</pre>
<p>So we have one parent pool with two children and they are sharing the node Host02. Now we add into this another parent pool SP2 and also try to add a child pool under it, but with the same name that is assigned to another child pool of SP1 parent pool:</p>
<pre>[grid@host01 ~]$

[grid@host01 ~]$ crsctl add serverpool sp2 -attr "MIN_SIZE=1, MAX_SIZE=1, IMPORTANCE=4"
[grid@host01 ~]$ crsctl status serverpool
NAME=Free
ACTIVE_SERVERS=host03

NAME=Generic
ACTIVE_SERVERS=

NAME=sp1
ACTIVE_SERVERS=host02

NAME=sp2
ACTIVE_SERVERS=host01

NAME=sp_child1
ACTIVE_SERVERS=host02

NAME=sp_child2
ACTIVE_SERVERS=host02

[grid@host01 ~]$ crsctl add serverpool sp_child1 -attr "PARENT_POOLS=sp2, MIN_SIZE=1, MAX_SIZE=1, IMPORTANCE=1"
CRS-2595: Server pool 'sp_child1' has already been registered
CRS-4000: Command Add failed, or completed with errors.</pre>
<p>So clearly we can see that’s not possible to be done. But after using a distinct name, it is done:</p>
<pre>[grid@host01 ~]$ crsctl add serverpool sp2_child1 -attr "PARENT_POOLS=sp2, MIN_SIZE=1, MAX_SIZE=1, IMPORTANCE=1"
[grid@host01 ~]$ crsctl status serverpool
NAME=Free
ACTIVE_SERVERS=host03

NAME=Generic
ACTIVE_SERVERS=

NAME=sp1
ACTIVE_SERVERS=host02

NAME=sp2
ACTIVE_SERVERS=host01

NAME=sp2_child1
ACTIVE_SERVERS=host01

NAME=sp_child1
ACTIVE_SERVERS=host02

NAME=sp_child2
ACTIVE_SERVERS=host02</pre>
<h6>Database management changes in 11.2 -to use server pools</h6>
<p>To incorporate the usage of server pools, there is a change introduced in the database itself. From 11.2 onwards, there would be two types of databases available, Admin Managed and Policy Managed. Choosing either one would make you use the server pools though it would vary whether those server pools would be explicitly created by you or would be the default one available already.</p>
<h6>Admin managed database</h6>
<p>This is sort of the same as the traditional database type i.e. where a DBA is responsible to manage the allocation of the resources and instances explicitly on the available instances, and also the instances on the respective nodes. This database type would assign the instances to a child pool of the default pool available Generic pool. Having the Generic pool as the parent, no modification of the child pools of the Admin managed database’s instances would be allowed for the DBA to be done by their self. Depending on the number of nodes being chosen initially for the database, the instances would be started on each one of them. By default, with a fresh installation of 11.2 RAC, all the nodes would get added to the Generic pool and in the upgrade, all the nodes of the previous version would also be added to the Generic pool. Although this type seems to be much simpler and like the older versions and techniques of managing the instances, this can’t be used when the number of nodes pass a number which is difficult to manage by a DBA, for example 100. In that case, the next type of the 11.2 database would be helpful-Policy Managed database.</p>
<h6>Policy Managed Database</h6>
<p>This type of database administration is meant to make DBAs&#8217; life simpler by not letting them worry about managing each of their instances on each node individually, but to use a server pool to manage the instances. By using server pools, the administrative tasks to manage the database becomes much simpler.</p>
<p>From 11.2 , DBCA (Database Configuration Assistant) offers both the options for creating a database.  To check that a database is admin-managed or policy-managed, we can use the command SRVCTL like below:</p>
<pre>[grid@host01 Disk1]$ srvctl config database -d orcladm
Database unique name: orcladm
Database name: orcladm
Oracle home: /u01/app/oracle/product/11.2.0/dbhome_1
Oracle user: oracle
Spfile: +FRA/orcladm/spfileorcladm.ora
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: orcladm
Database instances: orcladm1,orcladm2
Disk Groups: FRA
Services:
Database is administrator managed</pre>
<p>So we can see that the database ORCLADM is Admin Managed. To convert this database to Policy managed, you can proceed as follows:</p>
<pre>[grid@host01 Disk1]$ srvctl stop database -d orcladm
[grid@host01 Disk1]$ srvctl modify database -d orcladm -g orclsp</pre>
<p>Here ORCLSP is a server pool over which the database ORCLADM would be running and we can confirm it using the same command SRVCTL:</p>
<pre>[grid@host01 Disk1]$ srvctl config database -d orcladm
Database unique name: orcladm
Database name: orcladm
Oracle home: /u01/app/oracle/product/11.2.0/dbhome_1
Oracle user: oracle
Spfile: +FRA/orcladm/spfileorcladm.ora
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: orclsp
Database instances:
Disk Groups: FRA
Services:
Database is policy managed</pre>
<p>Now, the database management is Policy Managed.</p>
<h6>Conclusion</h6>
<p>It’s not (yet) very common to have cluster nodes with a very large number but that’s not something which is going to take a very long time to change either. And when this would happen, the management of the clusterware resources would essentially get a huge benefit from server pools. Hopefully, this short article should give you an idea about server pools and how to get started with them.</p>
<p><strong>Reference: Clusterware Administration guide (11.2)</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://allthingsoracle.com/an-introduction-to-11-2-rac-server-pools/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Migrating Oracle Single Instance to RAC</title>
		<link>http://allthingsoracle.com/migrating-oracle-single-instance-to-rac/</link>
		<comments>http://allthingsoracle.com/migrating-oracle-single-instance-to-rac/#comments</comments>
		<pubDate>Tue, 17 Apr 2012 12:16:40 +0000</pubDate>
		<dc:creator>Syed Jaffer Hussain</dc:creator>
				<category><![CDATA[Database Administration]]></category>
		<category><![CDATA[Database Development]]></category>
		<category><![CDATA[Oracle Database]]></category>
		<category><![CDATA[Troubleshooting]]></category>
		<category><![CDATA[Video]]></category>
		<category><![CDATA[Webinar]]></category>

		<guid isPermaLink="false">http://allthingsoracle.com/?p=2098</guid>
		<description><![CDATA[This video is a recording from the webinar broadcast by Red Gate on 29th March 2012. Oracle Database administrators have to cope with numerous challenges when migrating an existing non-cluster environment to a cluster environment. One of the most significant challenges a DBA faces is to migrate/convert an existing single instance to RAC. Oracle provides several easy methods to carry... <a class="read-more" href="http://allthingsoracle.com/migrating-oracle-single-instance-to-rac/">Continue Reading &#8594;</a>]]></description>
			<content:encoded><![CDATA[<p>
<p>This video is a recording from the <a href="http://www.red-gate.com/products/oracle-development/deployment-suite-for-oracle/webinars/webinar-syed-jaffar-hussain-migrate-oracle-single-instance-rac" target="blank">webinar</a> broadcast by <a href="http://www.red-gate.com/products/oracle-development" target="blank">Red Gate</a> on 29th March 2012.</p>
<p><a href="http://youtu.be/TI2nADjokfc?hd=1&amp;fs=1&amp;autoplay=1" target="blank"><img title="Oracle Webinar Migrating Oracle Single Instance to RAC" src="http://allthingsoracle.com/wp-content/uploads/2012/04/oracle-webinar-migrating-oracle-single-instance-rac-video-image.png" alt="" width="500" height="400" /></a></p>
<p>Oracle Database administrators have to cope with numerous challenges when migrating an existing non-cluster environment to a cluster environment. One of the most significant challenges a DBA faces is to migrate/convert an existing single instance to RAC.</p>
<p>Oracle provides several easy methods to carry out the procedure, so it is important to know which method best fits your needs and requirements.</p>
<p>The core objective of this presentation is to give you an overview about different methods for migrating an existing single instance to RAC, and help you find the most suitable one for your situation. The session will also explain how to perform the migration in order to minimize the downtime and to improve (speed up) the migration duration whilst dealing with VLDB.</p>
<p>A live Q+A with Syed Jaffar Hussain follows the presentation.</p>
]]></content:encoded>
			<wfw:commentRss>http://allthingsoracle.com/migrating-oracle-single-instance-to-rac/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

