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

<channel>
	<title>Pythian Group Blog &#187; Alex Gorbachev</title>
	<atom:link href="http://www.pythian.com/news/author/alex/feed" rel="self" type="application/rss+xml" />
	<link>http://www.pythian.com/news</link>
	<description>News and views from Pythian DBAs</description>
	<pubDate>Fri, 03 Jul 2009 19:20:05 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Sydney MySQL User Group: SMUG#7 &#8212; The Reboot</title>
		<link>http://www.pythian.com/news/3192/sydney-mysql-user-group-smug7-the-reboot</link>
		<comments>http://www.pythian.com/news/3192/sydney-mysql-user-group-smug7-the-reboot#comments</comments>
		<pubDate>Fri, 26 Jun 2009 09:17:02 +0000</pubDate>
		<dc:creator>Alex Gorbachev</dc:creator>
		
		<category><![CDATA[MySQL]]></category>

		<category><![CDATA[Australia]]></category>

		<category><![CDATA[Heartbeat]]></category>

		<category><![CDATA[meetup]]></category>

		<category><![CDATA[migrations]]></category>

		<category><![CDATA[SMUG]]></category>

		<category><![CDATA[Sydney]]></category>

		<guid isPermaLink="false">http://www.pythian.com/news/?p=3192</guid>
		<description><![CDATA[Reanimating the Sydney MySQL User Group!
What: Sydney MySQL User Group meetup #7 - The Reboot
When: July 16, 2009 5:30 PM (please don&#8217;t forget to RSVP yes/no/maybe)
Where: Sydney, CBD - join the meetup for exact location.
We are back! After 3 years of being silent, SMUG (can I call it so? I know there are conflicts with [...]]]></description>
			<content:encoded><![CDATA[<p>Reanimating the <a href="http://www.sydneymysql.com.au/">Sydney MySQL User Group</a>!</p>
<p><strong>What:</strong> <a href="http://www.sydneymysql.com.au/calendar/10739905/">Sydney MySQL User Group meetup #7 - The Reboot</a></p>
<p><strong>When:</strong> July 16, 2009 5:30 PM (please don&#8217;t forget to <a href="http://www.sydneymysql.com.au/calendar/10739905/">RSVP yes/no/maybe</a>)</p>
<p><strong>Where:</strong> <a href="http://www.sydneymysql.com.au/venue/996766/">Sydney, CBD</a> - join the meetup for exact location.</p>
<p><b>We are back!</b> After 3 years of being silent, <a href="http://www.sydneymysql.com.au/">SMUG</a> <i>(can I call it so? I know there are conflicts with other acronyms)</i> resurrects the meetings.</p>
<p>The logistic of the meetup is the following:</p>
<ul>
<li>5:30pm &#8212; the gathering starts and we have pizza and beers and talking your peers</li>
<li>6:00pm &#8212; we start the presentation</li>
<li>7:00pm &#8212; break and peer networking consuming the leftovers</li>
<li>7:30pm &#8212; we have an open (but slightly moderated) discussion. Topic is TBC. Perhaps, we can talk about future of MySQL now that Oracle&#8217;s bought Sun?</li>
</ul>
<p><span id="more-3192"></span><br />
The schedule is very approximate and we will be quite flexible. We should finish about 8:30pm.</p>
<p><u>Presentation: <b>Migrating 1 Terabyte Database to MySQL &#8212; Case Study</b> by Alex Gorbachev</u> <em>(well, that&#8217;s me)</em>.</p>
<p>This presentation is based on the real project migrating from RDB on OpenVMS to MySQL on Linux. We will review the migration of the data itself and what infrastructure has been setup &#8212; high availability cluster with Heartbeat, DR site replication, organizing backup for 1 TB database. The system has been successfully put in production few months ago.</p>
<p>The attendance is completely free but of course someone need to cover the venue and that great stuff we are going to eat and drink so&#8230;</p>
<p>My company, <a href="http://www.pythian.com/">The Pythian Group</a>, is sponsoring the SMUG for now. You probably heard of Pythian, the leading provider of <a href="http://www.pythian.com/services/">database services</a> for MySQL as well as Oracle and SQL Server.</p>
<p>Nice people from <a href="http://www.navicat.com/>PremiumSoft</a>, the creator of <a href="http://www.navicat.com/en/products.html>Navicat</a>, kindly offered to join us sponsoring the pizza and drinks. If you happen to manage MySQL databases you probably heard for Navicat, an award-winning database administration tool. More details - <a href="http://www.navicat.com/en/products/navicat_mysql/mysql_overview.html">http://www.navicat.com/en/products/navicat_mysql/mysql_overview.html</a></p>
<p>Those of you in Sydney &#8212; looking forward to see you all there.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pythian.com/news/3192/sydney-mysql-user-group-smug7-the-reboot/feed</wfw:commentRss>
		</item>
		<item>
		<title>Announcement: Sydney Oracle Meetup #7 - Advanced Queuing in E-Business Suite</title>
		<link>http://www.pythian.com/news/3014/announcement-sydney-oracle-meetup-7-advanced-queuing-in-e-business-suite</link>
		<comments>http://www.pythian.com/news/3014/announcement-sydney-oracle-meetup-7-advanced-queuing-in-e-business-suite#comments</comments>
		<pubDate>Mon, 22 Jun 2009 07:21:39 +0000</pubDate>
		<dc:creator>Alex Gorbachev</dc:creator>
		
		<category><![CDATA[Oracle]]></category>

		<category><![CDATA[Oracle E-Business Suite]]></category>

		<category><![CDATA[Sydney Oracle Meetup]]></category>

		<category><![CDATA[AQ]]></category>

		<category><![CDATA[Australia]]></category>

		<category><![CDATA[e-business suite]]></category>

		<category><![CDATA[meetup]]></category>

		<category><![CDATA[OEBS]]></category>

		<category><![CDATA[Sydney]]></category>

		<guid isPermaLink="false">http://www.pythian.com/news/?p=3014</guid>
		<description><![CDATA[
What: Sydney Oracle Meetup #7 - Advanced Queuing in E-Business Suite
When:Tuesday,  June 30, 2009 5:30 PM (please, make sure to RSVP yes/no/maybe)
Where: Our standard location in Sydney CBD
Welcome to our meetup #7! This meetup will be focused on Oracle Advanced Queuing (AQ) feature and its usage in Oracle E-Business Suite. 
For inexperienced SOM members, [...]]]></description>
			<content:encoded><![CDATA[<p>
<strong>What:</strong> <a href="http://www.sydneyoracle.com.au/calendar/10705542/">Sydney Oracle Meetup #7 - Advanced Queuing in E-Business Suite</a><br />
<strong>When:</strong>Tuesday,  June 30, 2009 5:30 PM (<em>please, make sure to <a href="http://www.sydneyoracle.com.au/calendar/10705542/">RSVP yes/no/maybe</a></em>)<br />
<strong>Where:</strong> Our <a href="http://www.sydneyoracle.com.au/venue/907606/?eventId=10705542&#038;popup=true">standard location</a> in Sydney CBD</p>
<p>Welcome to our meetup #7! This meetup will be focused on Oracle Advanced Queuing (AQ) feature and its usage in Oracle E-Business Suite. </p>
<p>For inexperienced SOM members, we are starting with the meet &#038; greet and pizza+drinks at 5:30 pm and move to smart things at 6:00 pm. We will be there until about 8:30pm (some are sticking around a bit longer while some might take off a bit earlier) and will have a break in the middle. The second half is generally more open-ended as most of you already know.</p>
<p>So what are the goodies at this meetup?<br />
<span id="more-3014"></span><br />
We will start with an overview of the AQ technology in Oracle database - what it is and what it let you do. Then we will see how it&#8217;s used in Oracle E-Business Suite and how to manage it.</p>
<p>Our speakers for the evening are your fellow SOM members - Jurijs Velikanovs and Warwick Sands. TBC.</p>
<p>Warwick has been working with AQ quite extensively and doing quite a bit of development with AQ recently and will be glad to share his experience. Jurijs has been working with AQ a lot as part of Apps DBA administering OEBS and he will have a lot to say for both AQ in general and in relation to E-Business Suite. If we come to that, I would be glad to add few points from my own experience and what happened as we tried to scale on using AQ technology with transaction rate of thousands per second.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pythian.com/news/3014/announcement-sydney-oracle-meetup-7-advanced-queuing-in-e-business-suite/feed</wfw:commentRss>
		</item>
		<item>
		<title>Oracle Open World &#8212; Public Voting is Open</title>
		<link>http://www.pythian.com/news/2958/oracle-open-world-public-voting-is-open</link>
		<comments>http://www.pythian.com/news/2958/oracle-open-world-public-voting-is-open#comments</comments>
		<pubDate>Wed, 17 Jun 2009 05:51:56 +0000</pubDate>
		<dc:creator>Alex Gorbachev</dc:creator>
		
		<category><![CDATA[Oracle]]></category>

		<category><![CDATA[10g]]></category>

		<category><![CDATA[conferences]]></category>

		<category><![CDATA[Grid Control]]></category>

		<category><![CDATA[OOW]]></category>

		<category><![CDATA[Oracle Enterprise Manager]]></category>

		<category><![CDATA[presentations]]></category>

		<guid isPermaLink="false">http://www.pythian.com/news/?p=2958</guid>
		<description><![CDATA[No doubt you want to cast you first vote for my abstract &#8212; Developing Plug-ins for Oracle Enterprise Manager by example :)
 Every Oracle professional knows about Oracle Enterprise Manager&#8217;s extensive monitoring capability for Oracle products. However, only few realize that Oracle Enterprise Manager can be easily extended thanks to its Extensibility framework.
This presentation starts [...]]]></description>
			<content:encoded><![CDATA[<p>No doubt you want to <a href="https://mix.oracle.com/oow/proposals/10371-developing-plug-ins-for-oracle-enterprise-manager-by-example">cast you first vote</a> for my abstract &#8212; <a href="https://mix.oracle.com/oow/proposals/10371-developing-plug-ins-for-oracle-enterprise-manager-by-example">Developing Plug-ins for Oracle Enterprise Manager by example</a> :)</p>
<p><i> Every Oracle professional knows about Oracle Enterprise Manager&#8217;s extensive monitoring capability for Oracle products. However, only few realize that Oracle Enterprise Manager can be easily extended thanks to its Extensibility framework.</p>
<p>This presentation starts with an introduction of Enterprise Manager&#8217;s Extensibility features and walks the audience through the basics of creating a new plug-in. This session will also demonstrate some proven plug-in development steps based on the experience gained from developing MySQL management plug-in.</p>
<p>Session includes a demo of the plug-in development scenarios. After this presentation, attendees will be able to design and develop management plug-ins for their own applications.</i></p>
<p><a href="https://mix.oracle.com/login">Login</a> to <a href="https://mix.oracle.com/">Oracle Mix</a> and <a href="https://mix.oracle.com/oow/proposals/10371-developing-plug-ins-for-oracle-enterprise-manager-by-example">vote now</a>. At the time of writing, my session is on the very top &#8212; help to keep it there! ;-)<br />
<span id="more-2958"></span><br />
I already have couple sessions to present selected by the user groups. One of them, via <a href="http://www.oracleracsig.org/">IOUG RAC SIG</a>, will be on Sunday at the User Groups Forum. I really liked Sunday&#8217;s slot at the last OOW and the whole day itself was very nice &#8212; quiet before the storm. Another session was selected via <a href="http://www.iouc.org/">APOUC</a>. I will make sure the blog is updated with details as soon as I get the final confirmations.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pythian.com/news/2958/oracle-open-world-public-voting-is-open/feed</wfw:commentRss>
		</item>
		<item>
		<title>Pythian Video: Oracle RAC &#8212; VIP Configuration Mistakes</title>
		<link>http://www.pythian.com/news/2934/pythian-video-oracle-rac-vip-configuration-mistakes</link>
		<comments>http://www.pythian.com/news/2934/pythian-video-oracle-rac-vip-configuration-mistakes#comments</comments>
		<pubDate>Tue, 16 Jun 2009 05:08:28 +0000</pubDate>
		<dc:creator>Alex Gorbachev</dc:creator>
		
		<category><![CDATA[Oracle]]></category>

		<category><![CDATA[10g]]></category>

		<category><![CDATA[11g]]></category>

		<category><![CDATA[high availability]]></category>

		<category><![CDATA[RAC]]></category>

		<category><![CDATA[video]]></category>

		<category><![CDATA[vip]]></category>

		<category><![CDATA[Virtual IP]]></category>

		<guid isPermaLink="false">http://www.pythian.com/news/?p=2934</guid>
		<description><![CDATA[The first videocast was quite popular &#8212; it has more than 300 views in couple weeks and considering no Hollywood stars were starring in that video and there were no nude scenes, I think it&#8217;s fair to say that this format was very much welcomed by the audience.
Today, I&#8217;m posting the follow up session on [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.pythian.com/news/2624/pythian-video-oracle-rac-why-vips">The first videocast</a> was quite popular &#8212; it has more than 300 views in couple weeks and considering no Hollywood stars were starring in that video and there were no nude scenes, I think it&#8217;s fair to say that this format was very much welcomed by the audience.</p>
<p>Today, I&#8217;m posting the follow up session on VIP&#8217;s (Virtual IP&#8217;s) with Oracle RAC. What I demonstrate today is a typical configuration mistake for a RAC databases created with Database Configuration Assistant (DBCA) and what&#8217;s the result of such omission.</p>
<p>It&#8217;s actually logged as a <a href="https://metalink2.oracle.com/metalink/plsql/ml2_documents.showDocument?p_database_id=NOT&#038;p_id=342419.1">bug 4338578</a> on Metalink (thanks to <a href="http://oracleprof.blogspot.com/">Marcin Przepiorowski</a> for reference). However, I believe it&#8217;s not a database issue but (1) misunderstanding how remote listener registration works, (2) documentation bug and (3) DBCA bug.</p>
<p>The init.ora parameter remote_listener defines the list of remote listeners that an instance should register with. The parameter local_listener sets the address for the local listener registration and if not specified, by default it&#8217;s hostname and the default port 1521. However, it turns out that the local_listener parameter is used not only for local registration but for something else as well&#8230;<br />
<span id="more-2934"></span><br />
Whenever an instance registers with a remote listener, it provides a connection descriptor that is used by the listener to redirect the incoming connection requests from client programs (this process is known as server-side connection load balancing). This connection descriptor for the redirection is created based on the local listener configuration for that instance &#8212; using the address or alias provided in the local_listener parameter. So what&#8217;s many DBA&#8217;s (and obviously developers of DBCA) are missing is that local_listener controls how (to what address and port) connections from the remote listeners are redirected.</p>
<p>As the video demonstrates, an out-of-the box DBCA-created database causes some connections to use host&#8217;s main IP&#8217;s (use <code>netstat</code> to confirm that on the client or on the servers). As a result, some of the connections (<em>and it might be the majority of connections if you use services distributed across many nodes of a cluster</em>) don&#8217;t use virtual IP&#8217;s.</p>
<p>The video explains it all &#8212; demonstrates how to detect this issue and shows how to fix this misconfiguration. I had to use a smaller embedded size to fit it on our blog and it&#8217;s still a bit wider than our blog format here. However, the video is in HD format now (noticed the improvement from my first attempt?) uploaded as 720p. To see it in full size &#8212; <a href="http://www.youtube.com/watch?v=VRwLsZ-AE-w">go directly to YouTube</a> but you won&#8217;t see anybody sexy there :) and because my glasses broke yesterday, I don&#8217;t even look intelligent anymore.</p>
<p><object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/VRwLsZ-AE-w&#038;hl=en&#038;fs=1&#038;rel=0&#038;hd=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/VRwLsZ-AE-w&#038;hl=en&#038;fs=1&#038;rel=0&#038;hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object></p>
<p>I have added some annotation to it and if you notice something &#8212; you can <a href="http://www.youtube.com/watch?v=VRwLsZ-AE-w&#038;layer_token=f80cb569dfffc5bc">annotate it yourself</a> as well. I don&#8217;t know how it works when guests annotating the videos on YouTube so try it and let me know &#8212; let&#8217;s see how cool is that.</p>
<p>The next videocast will be on troubleshooting ORA-12545 in RAC environment and this is the natural continuation of today&#8217;s topic. This will probably be the last videocast about virtual IP&#8217;s for Oracle RAC.</p>
<p>As usual, all feedback is welcome here &#8212; this is what will keep these videocasts going.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pythian.com/news/2934/pythian-video-oracle-rac-vip-configuration-mistakes/feed</wfw:commentRss>
		</item>
		<item>
		<title>Hey, I&#8217;m an Oracle ACE Director Now!</title>
		<link>http://www.pythian.com/news/2915/hey-im-an-oracle-ace-director-now</link>
		<comments>http://www.pythian.com/news/2915/hey-im-an-oracle-ace-director-now#comments</comments>
		<pubDate>Mon, 15 Jun 2009 05:29:04 +0000</pubDate>
		<dc:creator>Alex Gorbachev</dc:creator>
		
		<category><![CDATA[Non-Tech Articles]]></category>

		<category><![CDATA[Oracle]]></category>

		<category><![CDATA[Pythian]]></category>

		<category><![CDATA[Oracle ACE]]></category>

		<guid isPermaLink="false">http://www.pythian.com/news/?p=2915</guid>
		<description><![CDATA[I&#8217;ve been just sending the abstracts for UKOUG 2009 Conference before the extended deadline is over and realized that I hadn&#8217;t spread those exciting news. Actually, the news spread via Twitter before I saw the official confirmation in my inbox. Well, I guess the blog post title says it all. It&#8217;s a pleasure to join [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been just sending the abstracts for UKOUG 2009 Conference before the extended deadline is over and realized that I hadn&#8217;t spread those exciting news. Actually, the news <a href="http://twitter.com/fcomunoz/status/2035126308">spread</a><a href="http://twitter.com/amansharma81/statuses/2039000037"> via</a> <a href="http://twitter.com/mixxalot/statuses/2036073174">Twitter</a> before I saw the official confirmation in my inbox. Well, I guess the blog post title says it all. It&#8217;s a pleasure to join this program and get engaged in its activities.</p>
<p>I should mention that the process actually involves the acceptance on my side and there are expectation from me such as participation in local, global and online events with Oracle and their product teams as well as participate in some OTN activities. Well, there is rather nothing I haven&#8217;t done before except maybe access to some special events where Oracle product teams share some pre-release information. Well, I surely won&#8217;t mind any additional info to satisfy my curiosity.</p>
<p>Finally, thanks to <a href="http://www.oraclenz.com/">Francisco Munoz Alvarez</a> for nominating me to become an Oracle ACE Director.</p>
<p>Now, I guess I will have to scout the internet and update all my online profiles. When is this magical Web 2.0 going to actually work?!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pythian.com/news/2915/hey-im-an-oracle-ace-director-now/feed</wfw:commentRss>
		</item>
		<item>
		<title>Announcing Sydney Oracle Meetup #6 &#8212; Storage for Oracle Databases</title>
		<link>http://www.pythian.com/news/2869/announcing-sydney-oracle-meetup-6-storage-for-oracle-databases</link>
		<comments>http://www.pythian.com/news/2869/announcing-sydney-oracle-meetup-6-storage-for-oracle-databases#comments</comments>
		<pubDate>Wed, 10 Jun 2009 06:32:28 +0000</pubDate>
		<dc:creator>Alex Gorbachev</dc:creator>
		
		<category><![CDATA[Oracle]]></category>

		<category><![CDATA[Sydney Oracle Meetup]]></category>

		<category><![CDATA[ASM]]></category>

		<category><![CDATA[Australia]]></category>

		<category><![CDATA[events]]></category>

		<category><![CDATA[IO]]></category>

		<category><![CDATA[storage]]></category>

		<category><![CDATA[Sydney]]></category>

		<guid isPermaLink="false">http://www.pythian.com/news/?p=2869</guid>
		<description><![CDATA[What: Sydney Oracle Meetup #6 &#8212; storage for Oracle databases
When: June 17, 2009 5:30 PM. Please RSVP Yes/No/Maybe.
Where: Our usual location at Sydney CBD. Level 3 this time!
Details:
We will start at 5:30PM with pizza and drinks and roll on from there as usual.
Note that we are meeting at the level 3 this time!
This meetup will [...]]]></description>
			<content:encoded><![CDATA[<p><b>What:</b> <a href="http://www.sydneyoracle.com.au/calendar/10580646/">Sydney Oracle Meetup #6</a> &#8212; storage for Oracle databases</p>
<p><b>When:</b> June 17, 2009 5:30 PM. Please <a href="http://www.sydneyoracle.com.au/calendar/10580646/">RSVP Yes/No/Maybe</a>.</p>
<p><b>Where:</b> Our <a href="http://www.sydneyoracle.com.au/venue/982705/?eventId=10580646">usual location</a> at Sydney CBD. <u>Level 3 this time!</u></p>
<p><b>Details:</b></p>
<p>We will start at 5:30PM with pizza and drinks and roll on from there as usual.<br />
Note that we are meeting at the level 3 this time!</p>
<p>This meetup will be focused on storage technologies for Oracle database. It looks like a short presentation on Oracle Automatic Storage Management is in order - quite a few people are missing the concepts of the Oracle flagman storage storage solution and it&#8217;s useful to understand the approach whether you use it now or not.</p>
<p>So the presentation is - <b>Oracle ASM 11g - the Evolution</b> by Alex Gorbachev:<br />
<span id="more-2869"></span><br />
<i>This is a short (30-40 minutes) presentation that starts by overview of non-ASM storage technologies for Oracle and what are their shortcomings that Oracle tried to address with ASM. Then we will introduce the principles of ASM and shortcomings of ASM 10g when it first was released. At the end we will touch 11g improvements (we already reviewed them during the past meetup) and see what&#8217;s still not addressed by enhancement of ASM 11g Release 1.</i></p>
<p>After the break, we will start an open ended discussion and I will keep us focused to avoid the havoc. :) I will also try to encourage few attendees to provide a short 10-15 introduction on some of the technologies you are using and their benefits or problems.</p>
<p>If we find it useful, I will introduce Oracle IO benchmarking tool - ORION and give you few real-world examples how we used in the past. However, it will need a separate presentation if we want more details so if there is interest - we will definitely schedule one of those.</p>
<p>Some of the typical areas we could touch (though, we won&#8217;t have time for all of them at this session):<br />
- shared storage options if you decide to use cluster / RAC<br />
- NFS (NetApp and etc) storage<br />
- OCFS<br />
- Advantages and disadvantages of different file systems<br />
- raw devices - do we still use and want to use them?<br />
- 3rd party filesystems (like Veritas)<br />
- ZFS and why it&#8217;s so super cool</p>
<p>As usual, make sure you leave the comments on the meetup registration questionnaire &#8212; we will try to make sure it&#8217;s on the agenda.</p>
<p>Please don&#8217;t forget to <a href="http://www.sydneyoracle.com.au/calendar/10580646/">RSVP</a> &#8212; the earlier the better!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pythian.com/news/2869/announcing-sydney-oracle-meetup-6-storage-for-oracle-databases/feed</wfw:commentRss>
		</item>
		<item>
		<title>How to Dynamically Call PL/SQL Procedure in Oracle</title>
		<link>http://www.pythian.com/news/2733/how-to-dynamically-call-plsql-procedure-in-oracle</link>
		<comments>http://www.pythian.com/news/2733/how-to-dynamically-call-plsql-procedure-in-oracle#comments</comments>
		<pubDate>Thu, 04 Jun 2009 06:29:56 +0000</pubDate>
		<dc:creator>Alex Gorbachev</dc:creator>
		
		<category><![CDATA[Oracle]]></category>

		<category><![CDATA[dynamic]]></category>

		<category><![CDATA[pl/sql]]></category>

		<category><![CDATA[security]]></category>

		<category><![CDATA[sql injection]]></category>

		<category><![CDATA[stored procedure]]></category>

		<category><![CDATA[vulnerability]]></category>

		<guid isPermaLink="false">http://www.pythian.com/news/?p=2733</guid>
		<description><![CDATA[Just got an interesting note on Twitter that you can&#8217;t call a stored procedure dynamically in Oracle from a PL/SQL block like passing the procedure name in a variable.
Well, yes we can!
And the answer is EXECUTE IMMEDIATE &#8212; it can be used to run anonymous PL/SQL blog and not just a SQL statement. However, you [...]]]></description>
			<content:encoded><![CDATA[<p>Just got an <a href="http://twitter.com/ofork/status/2025942466">interesting note</a> on <a href="http://twitter.com/alexgorbachev">Twitter</a> that you can&#8217;t call a stored procedure dynamically in Oracle from a PL/SQL block like passing the procedure name in a variable.</p>
<p>Well, yes we can!</p>
<p>And the answer is <code>EXECUTE IMMEDIATE</code> &#8212; it can be used to run anonymous PL/SQL blog and not just a SQL statement. However, you will want to think many many times before doing so&#8230; if you love your data.</p>
<p>Let&#8217;s create the test procedures:</p>
<pre>SQL> create or replace procedure bingo as
  2  begin
  3  dbms_output.put_line('Bingo!');
  4  end;
  5  /

Procedure created.

SQL> create or replace procedure bambam as
  2  begin
  3  dbms_output.put_line('BAM BAM!');
  4  end;
  5  /

Procedure created.</pre>
<p>Now let&#8217;s create a wrapper that we will call passing a procedure name:<span id="more-2733"></span></p>
<pre>SQL> create or replace procedure call_dynamic(proc_name IN varchar2) as
  2  begin
  3  execute immediate 'begin ' || proc_name || '; end;';
  4  end;
  5  /

Procedure created.</pre>
<p>Now let&#8217;s enable server output and try to call our procedures dynamically</p>
<pre>SQL> set serverout on
SQL> exec call_dynamic('bingo');
Bingo!

PL/SQL procedure successfully completed.

SQL> exec call_dynamic('bambam');
BAM BAM!

PL/SQL procedure successfully completed.</pre>
<p>Now, what was that we wanted to think about? Ah here&#8230; Let&#8217;s create a table:</p>
<pre>SQL> create table important_data (data varchar2(1000));

Table created.

SQL> insert into important_data values ('Oracle rocks!');

1 row created.

SQL> commit;

Commit complete.

SQL> select * from important_data;

DATA
-----------------------
Oracle rocks!</pre>
<p>So what can someone do with such procedure&#8230; perhaps, something like this?</p>
<pre>SQL> exec call_dynamic('delete from important_data; commit');

PL/SQL procedure successfully completed.

SQL> select * from important_data;

no rows selected</pre>
<p>Oups&#8230; or maybe something like this?</p>
<pre>SQL> exec call_dynamic('execute immediate ''drop table important_data''');

PL/SQL procedure successfully completed.

SQL> select * from important_data;
select * from important_data
              *
ERROR at line 1:
ORA-00942: table or view does not exist</pre>
<p>You&#8217;ve got an idea. :)</p>
<p>OK. Let&#8217;s finally clean up:</p>
<pre>SQL> exec call_dynamic('execute immediate ''drop procedure bingo''')

PL/SQL procedure successfully completed.

SQL> exec call_dynamic('execute immediate ''drop procedure bambam''')

PL/SQL procedure successfully completed.</pre>
<p>And final clean up needs to be smarter as this will hang blocking itself:</p>
<pre>SQL> exec call_dynamic('execute immediate ''drop procedure call_dynamic''')

^CBEGIN call_dynamic('execute immediate ''drop procedure call_dynamic'''); END;

*
ERROR at line 1:
ORA-01013: user requested cancel of current operation
ORA-06512: at line 1
ORA-06512: at "SYS.CALL_DYNAMIC", line 3
ORA-06512: at line 1</pre>
<p>But doable:</p>
<pre>SQL> exec call_dynamic('declare a number; begin dbms_job.submit(a,''begin execute immediate ''''drop procedure call_dynamic''''; end;''); commit; end')

PL/SQL procedure successfully completed.

SQL> exec call_dynamic('null');
BEGIN call_dynamic('null'); END;

      *
ERROR at line 1:
ORA-06550: line 1, column 7:
PLS-00201: identifier 'CALL_DYNAMIC' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored</pre>
<p>Anyway, the real requirements were more complicated. Granted I don&#8217;t know all the details but I strongly suspect that there would be a better solution than calling a PL/SQL procedure dynamically.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pythian.com/news/2733/how-to-dynamically-call-plsql-procedure-in-oracle/feed</wfw:commentRss>
		</item>
		<item>
		<title>Sydney Oracle Meetup #5 Report: Oracle 11g New Features Out-of-the-Box</title>
		<link>http://www.pythian.com/news/2687/sydney-oracle-meetup-5-report-oracle-11g-new-features-out-of-the-box</link>
		<comments>http://www.pythian.com/news/2687/sydney-oracle-meetup-5-report-oracle-11g-new-features-out-of-the-box#comments</comments>
		<pubDate>Tue, 02 Jun 2009 03:03:06 +0000</pubDate>
		<dc:creator>Alex Gorbachev</dc:creator>
		
		<category><![CDATA[Oracle]]></category>

		<category><![CDATA[Pythian Appearances]]></category>

		<category><![CDATA[Sydney Oracle Meetup]]></category>

		<category><![CDATA[11g]]></category>

		<category><![CDATA[Australia]]></category>

		<category><![CDATA[case study]]></category>

		<category><![CDATA[new features]]></category>

		<category><![CDATA[presentations]]></category>

		<category><![CDATA[Sydney]]></category>

		<guid isPermaLink="false">http://www.pythian.com/news/?p=2687</guid>
		<description><![CDATA[I think it was the smallest group so far which is not surprising considering that Monday has been the least popular day in our internal poll. We had a tad less than 20 people but very good size for the informal discussion of Oracle 11g adoption that took place at the second half of the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.sydneyoracle.com.au/"><img alt="Sydney Oracle Meetup Logo" src="http://photos2.meetupstatic.com/photos/event/6/d/4/e/global_8007982.jpeg" title="Sydney Oracle Meetup" width="156" height="180" align="left" style="margin: 0px 10px" /></a>I think it was the smallest group so far which is not surprising considering that Monday has been the least popular day in our internal poll. We had a tad less than 20 people but very good size for the informal discussion of Oracle 11g adoption that took place at the second half of the meetup.</p>
<p>Turned out that there are very few people running 11g in production. Besides us at Pythian with number of clients on 11g, we&#8217;ve had only couple people I think including Carl Young from Metcash. Carl shared their experience of running a  multi-terabyte data-warehouse on Oracle 11g and how the migration happened. Thanks a lot Carl for your insights!</p>
<p>If you haven&#8217;t seen the case study from Oracle about this migration &#8212; see what benefits <a href="http://www.oracle.com/customers/snapshots/metcash-db-case-study.pdf">Metcash had with 11g migration</a>. I myself took note of few areas &#8212; Query Cache helped a lot on dimension tables lookups and some popular reports, Materialized Views invalidation problems reduced, CBO becomes smarter.</p>
<p>Some of the things to pay attention to in 11g &#8212; Oracle Warehouse Builder 11g (11.1.0.6) has actually less features than the latest OWB 10g release. If you look at 11.1.0.7&#8217;s list of bugs fixed (Metalink Note 601739.1), you would see a few dozen bugs on &#8220;Wrong Results&#8221;<span id="more-2687"></span> &#8212; those bugs are most worrying, of course. Many of them occur at the very specific circumstances. Particular attention for DW environment are bugs related to predicate push &#8212; can make your materialized views end up with wrong aggregates! Well, very few excuses to stick to 11.1.0.6 now.</p>
<p>Regarding the even in general, if I may borrow a response from one of the members to quote here:</p>
<blockquote><p><i>Illuminating presentation by Alex, good questions and answers from participants. I was uncertain whether to go from 9i to 10g or 11g. This information and experience from other users has now helped me come to a decision to go straight to 11g.</i></p></blockquote>
<p>Well, I should say mission accomplished!</p>
<p>For those of you who are not in Sydney or haven&#8217;t had a chance to attend, here are the slides from the meetup. I should note that the content is based on <a href="http://www.pythian.com/news/673/oracle-11g-the-perfection-of-a-masterpiece-open-world-2007">Christo Kutrovsky&#8217;s presentation</a> that he delivered at the Oracle Open World 2007. Christo was scheduled to give a modified version at the IOUG Collaborate 2008 but couldn&#8217;t attend it being in Dubai at that time so I was doing it instead and took his slides as the basis. But I digress&#8230;</p>
<div style="width:425px;text-align:left" id="__ss_1519717"><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=som5-11g-nf-ootb-090601205617-phpapp02&#038;rel=0&#038;stripped_title=oracle-11g-new-features-outofthebox-by-alex-gorbachev-from-sydney-oracle-meetup-5" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=som5-11g-nf-ootb-090601205617-phpapp02&#038;rel=0&#038;stripped_title=oracle-11g-new-features-outofthebox-by-alex-gorbachev-from-sydney-oracle-meetup-5" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object></div>
<p>Enjoy! All feedback is appreciated as usual and see you at one of the next meetups here in Sydney!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pythian.com/news/2687/sydney-oracle-meetup-5-report-oracle-11g-new-features-out-of-the-box/feed</wfw:commentRss>
		</item>
		<item>
		<title>Pythian Video: Oracle RAC &#8212; Why VIPs?</title>
		<link>http://www.pythian.com/news/2624/pythian-video-oracle-rac-why-vips</link>
		<comments>http://www.pythian.com/news/2624/pythian-video-oracle-rac-why-vips#comments</comments>
		<pubDate>Thu, 28 May 2009 05:55:21 +0000</pubDate>
		<dc:creator>Alex Gorbachev</dc:creator>
		
		<category><![CDATA[Oracle]]></category>

		<category><![CDATA[10g]]></category>

		<category><![CDATA[11g]]></category>

		<category><![CDATA[clusterware]]></category>

		<category><![CDATA[CRS]]></category>

		<category><![CDATA[high availability]]></category>

		<category><![CDATA[RAC]]></category>

		<category><![CDATA[video]]></category>

		<category><![CDATA[vip]]></category>

		<category><![CDATA[Virtual IP]]></category>

		<guid isPermaLink="false">http://www.pythian.com/news/?p=2624</guid>
		<description><![CDATA[&#8220;Seeing it once is better than hearing about it a thousand times&#8221; &#8212; I think this is the closest translation from one Russian proverb. I may add that hearing and seeing might be often better then reading so let me try to start a series of small videocasts about Oracle database technology.
One of the topics [...]]]></description>
			<content:encoded><![CDATA[<p>&#8220;Seeing it once is better than hearing about it a thousand times&#8221; &#8212; I think this is the closest translation from one Russian proverb. I may add that hearing and seeing might be often better then reading so let me try to start a series of small videocasts about Oracle database technology.</p>
<p>One of the topics that beginners RAC DBA&#8217;s (along with network engineers supporting Oracle database infrastructure) are confused about is the Virtual IP usage in Oracle RAC starting from Oracle Clusterware 10g.</p>
<p>With this videocast, I will try to clarify those concerns once and for all. I have embedded the video here in a smaller window so you might want to go directly to YouTube for the full-size version of &#8220;<a href="http://www.youtube.com/watch?v=c_41It0AZ80">Pythian Video: Oracle RAC - Why VIPs</a>&#8220;.</p>
<p><object width="366" height="300"><param name="movie" value="http://www.youtube.com/v/c_41It0AZ80&#038;hl=en&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/c_41It0AZ80&#038;hl=en&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="366" height="300"></embed></object></p>
<p>This is an experiment for now so let&#8217;s see how it goes. Let me know if you find this format useful and don&#8217;t forger to rate it on YouTube. Note that if you don&#8217;t leave any comments here, I&#8217;d never know whether you liked it or not so don&#8217;t be shy and comment away&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pythian.com/news/2624/pythian-video-oracle-rac-why-vips/feed</wfw:commentRss>
		</item>
		<item>
		<title>Sydney Oracle Meetup #2 Report &#8212; Visualizing Oracle Performance</title>
		<link>http://www.pythian.com/news/2590/sydney-oracle-meetup-2-visualizing-oracle-performance</link>
		<comments>http://www.pythian.com/news/2590/sydney-oracle-meetup-2-visualizing-oracle-performance#comments</comments>
		<pubDate>Wed, 27 May 2009 03:48:52 +0000</pubDate>
		<dc:creator>Alex Gorbachev</dc:creator>
		
		<category><![CDATA[Oracle]]></category>

		<category><![CDATA[Sydney Oracle Meetup]]></category>

		<category><![CDATA[charts]]></category>

		<category><![CDATA[events]]></category>

		<category><![CDATA[GUI tools]]></category>

		<category><![CDATA[Hotsos]]></category>

		<category><![CDATA[performance]]></category>

		<category><![CDATA[perfsheet]]></category>

		<category><![CDATA[Sydney]]></category>

		<category><![CDATA[Tanel Poder]]></category>

		<category><![CDATA[troubleshooting]]></category>

		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.pythian.com/news/?p=2590</guid>
		<description><![CDATA[More than a month has passed since Sydney Oracle Meetup #2. We shot some video, but it took me a while to process it and publish a few interesting pieces, but I finally got it all.
Ric Van Dyke&#8217;s presentation on tuning SQL queries using 10046 trace is available on the SOM website in the Files [...]]]></description>
			<content:encoded><![CDATA[<p>More than a month has passed since <a href="http://www.pythian.com/news/1817/sydney-oracle-meetup-2-performance-evening-with-tanel-poder-and-ric-van-dyke">Sydney Oracle Meetup #2</a>. We shot some video, but it took me a while to process it and publish a few interesting pieces, but I finally got it all.</p>
<p><a href="http://ricramblings.blogspot.com/">Ric Van Dyke</a>&#8217;s presentation on tuning SQL queries using 10046 trace is available on the<a href="http://www.sydneyoracle.com.au/"> SOM website</a> in the <a href="http://files.meetup.com/1411520/SOM%232-SQL_Tuning_10046-RicVanDyke.pdf">Files</a> section (<em>you must be a member</em>). However, there were no material from <a href="http://blog.tanelpoder.com/">Tanel Poder</a>&#8217;s session &#8212; it&#8217;s title started with &#8220;Zero Slides&#8230;&#8221; and Tanel demonstrated live some of his secrets of productivity in Oracle troubleshooting. Luckily, my colleague, Andrey Goryunov, managed to shoot some of it on the video and I&#8217;m publishing here a couple fragments on the visualization of Oracle performance troubleshooting.</p>
<p>Make sure you are watching them in HQ on YouTube to see more details and if you like these videos, make sure you rate them.</p>
<p><a href="http://blog.tanelpoder.com/2008/12/28/performance-visualization-made-easy-perfsheet-20-beta/">PerfSheet</a> is a very handy solution based on Microsoft Excel scripting and let you automate extraction and charting of any data you can extract from an Oracle database (and generally speaking, any other database). The best thing is that Tanel has put great efforts in it and made it available to everyone for free. One demo is worth many words so here we go:<br />
<span id="more-2590"></span><br />
<object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/7un5k1o2hKo&#038;hl=en&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/7un5k1o2hKo&#038;hl=en&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object></p>
<p>The second demo on Visual Performance Troubleshooting is about the application of 3D graphics in real-time Oracle troubleshooting. This is a truly revolutionary approach if you think about what you can do with it &#8212; nothing like this has been available until now.</p>
<p><object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/jTrmToD0cUU&#038;hl=en&#038;fs=1&#038;color1=0x3a3a3a&#038;color2=0x999999"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/jTrmToD0cUU&#038;hl=en&#038;fs=1&#038;color1=0x3a3a3a&#038;color2=0x999999" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object></p>
<p>I must mention that <a href="http://www.hotsos.com/">Hotsos</a> helped to sponsor this meetup, so big thanks to them for pizza and beers that evening!</p>
<p>Now, if you are in Sydney and haven&#8217;t joined the <a href="http://www.sydneyoracle.com.au/">Sydney Oracle Meetup</a>, you know what you are missing. Our <a href="http://www.pythian.com/news/2567/sydney-oracle-meetup-5-oracle-11g-adoption">meetup #5 is next Monday, 1-Jun-09</a> see some of you there!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pythian.com/news/2590/sydney-oracle-meetup-2-visualizing-oracle-performance/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
