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

<channel>
	<title>die Seilerwerks</title>
	<atom:link href="http://seilerwerks.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://seilerwerks.wordpress.com</link>
	<description>Chronicling Life, Love, Linux and Oracle database administration.</description>
	<lastBuildDate>Fri, 14 Nov 2008 20:09:28 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<image>
		<url>http://www.gravatar.com/blavatar/0415339fd68a5fa9c79221fdb653162a?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>die Seilerwerks</title>
		<link>http://seilerwerks.wordpress.com</link>
	</image>
			<item>
		<title>GNU basename in PL/SQL</title>
		<link>http://seilerwerks.wordpress.com/2008/10/01/gnu-basename-in-plsql/</link>
		<comments>http://seilerwerks.wordpress.com/2008/10/01/gnu-basename-in-plsql/#comments</comments>
		<pubDate>Thu, 02 Oct 2008 04:20:24 +0000</pubDate>
		<dc:creator>Don Seiler</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[oracle]]></category>
		<category><![CDATA[basename]]></category>
		<category><![CDATA[gnu]]></category>
		<category><![CDATA[pl/sql]]></category>

		<guid isPermaLink="false">http://seilerwerks.wordpress.com/?p=393</guid>
		<description><![CDATA[Reposted from The Pythian Group blog.
In the process of scripting a database migration, I was in need of something akin to the GNU basename utility that I know and love on Linux.  basename is most famous for taking a full file path string and stripping away the leading path component, returning just the name [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=seilerwerks.wordpress.com&blog=2020677&post=393&subd=seilerwerks&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><em>Reposted from <a href="http://www.pythian.com/blogs/1229/gnu-basename-in-plsql">The Pythian Group blog</a>.</em></p>
<p>In the process of scripting a database migration, I was in need of something akin to the <a href="http://www.opengroup.org/onlinepubs/007908799/xcu/basename.html">GNU basename</a> utility that I know and love on Linux.  <code>basename</code> is most famous for taking a full file path string and stripping away the leading path component, returning just the name of the file. This can be emulated in PL/SQL with calls to <code>SUBSTR</code> and <code>INSTR</code>, like this:</p>
<pre name="code" class="sql">

substr(dirname,instr(dirname,&#039;/&#039;,-1)+1)
</pre>
<p>(Thanks to Ian Cary, who shared this logic on <a href="http://www.freelists.org/archives/oracle-l/08-2005/msg01654.html">oracle-l</a>)</p>
<p>As you can see, this simply finds the last occurence of <code>/</code>, which is our directory separator on *nix and Solaris operating systems.  On Windows, it would be <code>\</code>. It then returns a substring beginning one character after that last separator until the end of the string. Voila, a basic basename routine!</p>
<p>Upon reading the <a href="http://www.opengroup.org/onlinepubs/007908799/xcu/basename.html">basename man page</a> again, I found that basename also takes an optional parameter, a suffix string. If this suffix string is provided, basename will also truncate that string from the end. For example:</p>
<pre name="code" class="xml">

$ basename /home/seiler/bookmarks.html
bookmarks.html
$ basename /home/seiler/bookmarks.html .html
bookmarks
</pre>
<p>I decided that this would be handy to have, and set out to create a compatible basename function in PL/SQL. Here is what I came up with:</p>
<pre name="code" class="sql">

CREATE OR REPLACE FUNCTION basename (v_full_path IN VARCHAR2,
                                        v_suffix IN VARCHAR2 DEFAULT NULL,
                                        v_separator IN CHAR DEFAULT &#039;/&#039;)
        RETURN VARCHAR2
        IS
                v_basename VARCHAR2(256);
        BEGIN
                v_basename := SUBSTR(v_full_path, INSTR(v_full_path,v_separator,-1)+1);
                IF v_suffix IS NOT NULL THEN
                        v_basename := SUBSTR(v_basename, 1, INSTR(v_basename, v_suffix, -1)-1);
                END IF;

                RETURN v_basename;
        END;
/
</pre>
<p>I’ve also added an optional third parameter to specify a directory separator other than the default. It would probably be rarely useful, but not hard to remove if you don’t like it. As you can see, I’ve used similar SUBSTR/INSTR logic to identify the suffix index and prune it out.</p>
<p>Here it is in action:</p>
<pre name="code" class="sql">

SQL&gt; COLUMN file_name FORMAT a45;
SQL&gt; COLUMN basename FORMAT a15;
SQL&gt; COLUMN no_suffix FORMAT a12;
SQL&gt; SELECT file_name
  2          , basename(file_name) as basename
  3          , basename(file_name, &#039;.dbf&#039;) as no_suffix
  4  FROM dba_data_files;

FILE_NAME                                     BASENAME        NO_SUFFIX
--------------------------------------------- --------------- ------------
/u01/app/oracle/oradata/orcl/users01.dbf      users01.dbf     users01
/u01/app/oracle/oradata/orcl/sysaux01.dbf     sysaux01.dbf    sysaux01
/u01/app/oracle/oradata/orcl/undotbs01.dbf    undotbs01.dbf   undotbs01
/u01/app/oracle/oradata/orcl/system01.dbf     system01.dbf    system01
/u01/app/oracle/oradata/orcl/example01.dbf    example01.dbf   example01
</pre>
<p>I hope this makes your work just a little bit easier, as it has mine.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/seilerwerks.wordpress.com/393/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/seilerwerks.wordpress.com/393/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/seilerwerks.wordpress.com/393/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/seilerwerks.wordpress.com/393/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/seilerwerks.wordpress.com/393/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/seilerwerks.wordpress.com/393/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/seilerwerks.wordpress.com/393/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/seilerwerks.wordpress.com/393/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/seilerwerks.wordpress.com/393/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/seilerwerks.wordpress.com/393/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=seilerwerks.wordpress.com&blog=2020677&post=393&subd=seilerwerks&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://seilerwerks.wordpress.com/2008/10/01/gnu-basename-in-plsql/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0a26f7f3e30943f45acff81cd87feba6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Don</media:title>
		</media:content>
	</item>
		<item>
		<title>Does Oracle’s Block Change Tracking File Shrink?</title>
		<link>http://seilerwerks.wordpress.com/2008/10/01/does-oracle%e2%80%99s-block-change-tracking-file-shrink/</link>
		<comments>http://seilerwerks.wordpress.com/2008/10/01/does-oracle%e2%80%99s-block-change-tracking-file-shrink/#comments</comments>
		<pubDate>Thu, 02 Oct 2008 04:10:34 +0000</pubDate>
		<dc:creator>Don Seiler</dc:creator>
				<category><![CDATA[oracle]]></category>
		<category><![CDATA[block change tracking]]></category>

		<guid isPermaLink="false">http://seilerwerks.wordpress.com/?p=391</guid>
		<description><![CDATA[Reposted from The Pythian Group blog.
Just a quick post to get myself back into blogging mode.  Recently in IRC (#oracle on freenode, to be precise), a fresh face asked if the Block Change Tracking file ever shrinks.  She had been worrying about the file in her instance continuing to grow.  A number [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=seilerwerks.wordpress.com&blog=2020677&post=391&subd=seilerwerks&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><em>Reposted from <a href="http://www.pythian.com/blogs/1163/does-oracle-block-change-tracking-file-shrink">The Pythian Group blog</a>.</em></p>
<p>Just a quick post to get myself back into blogging mode.  Recently in IRC (<a href="irc://irc.freenode.net/#oracle">#oracle on freenode</a>, to be precise), a fresh face asked if the <a href="http://www.oracle.com/technology/oramag/oracle/04-nov/o64rman.html">Block Change Tracking file</a> ever shrinks.  She had been worrying about the file in her instance continuing to grow.  A number of us speculated (non-<a href="http://www.battleagainstanyguess.com/">BAAG</a>!) that perhaps taking an RMAN backup would somehow purge the file of what it was keeping track of, and then the magical Oracle fairies would promptly resize it for us. Needless to say, I was hesitant to take this theory forward with <a href="http://www.pythian.com/blogs/483/block-change-tracking-internals-x-tables-research-xkrc-snappack">Alex Gorbachev</a> aware of my home address.</p>
<p>After setting up Oracle 10.2.0.1 on a nice <a href="http://www.virtualbox.org/">VirtualBox</a> image<br />
(more on that in another post) running <a href="http://centos.org/">CentOS</a> 5, I began to do some reading.  For some reason, actually reading <a href="http://tahiti.oracle.com/">the official tahiti docs</a> was last on my list.  A search of the 10gR2 docs quickly yielded <a href="http://download.oracle.com/docs/cd/B19306_01/backup.102/b14192/bkup004.htm#sthref424">this (from <em>RMAN Incremental Backups</em>)</a>:</p>
<blockquote><p><strong>4.4.4.4 Estimating Size of the Change Tracking File on Disk<br />
</strong></p>
<p>The size of the change tracking file is proportional to the size of the database and the number of enabled threads of redo. The size is not related to the frequency of updates to the database. Typically, the space required for block change tracking is approximately 1/30,000 the size of the data blocks to be tracked. Note, however, the following two factors that may cause the file to be larger than this estimate suggests:</p>
<ul>
<li>To avoid overhead of allocating space as your database grows, the change tracking file size starts at 10MB, and new space is allocated in 10MB incremenents [<em>sic</em>]. Thus, for any database up to approximately 300GB the file size is no smaller than 10MB, for up to approximately 600GB the file size is no smaller than 20MB, and so on.</li>
<li>For each datafile, a minimum of 320K of space is allocated in the change tracking file, regardless of the size of the file. Thus, if you have a large number of relatively small datafiles, the change tracking file is larger than for databases with a smaller number of larger datafiles containing the same data.</li>
</ul>
</blockquote>
<p>So (if the docs are to be trusted), it would seem that whether or not a backup is taken has no effect on the size of the file, or at least wouldn’t cause it to be shrunk. The size is tied to the amount of data in the database itself, not necessarily the changes in the database waiting to be included in the next incremental RMAN backup.</p>
<p>The documentation does suggest, however, that file size might be affected if (for example) a tablespace and its datafiles were dropped from the database. I’ll save this test for another day!</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/seilerwerks.wordpress.com/391/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/seilerwerks.wordpress.com/391/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/seilerwerks.wordpress.com/391/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/seilerwerks.wordpress.com/391/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/seilerwerks.wordpress.com/391/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/seilerwerks.wordpress.com/391/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/seilerwerks.wordpress.com/391/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/seilerwerks.wordpress.com/391/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/seilerwerks.wordpress.com/391/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/seilerwerks.wordpress.com/391/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=seilerwerks.wordpress.com&blog=2020677&post=391&subd=seilerwerks&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://seilerwerks.wordpress.com/2008/10/01/does-oracle%e2%80%99s-block-change-tracking-file-shrink/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0a26f7f3e30943f45acff81cd87feba6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Don</media:title>
		</media:content>
	</item>
		<item>
		<title>FLASHBACK TABLE vs. DBA_OBJECTS . LAST_DDL_TIME</title>
		<link>http://seilerwerks.wordpress.com/2008/06/30/flashback-table-vs-dba_objects-last_ddl_time/</link>
		<comments>http://seilerwerks.wordpress.com/2008/06/30/flashback-table-vs-dba_objects-last_ddl_time/#comments</comments>
		<pubDate>Mon, 30 Jun 2008 19:07:05 +0000</pubDate>
		<dc:creator>Don Seiler</dc:creator>
				<category><![CDATA[oracle]]></category>
		<category><![CDATA[ddl]]></category>
		<category><![CDATA[flashback]]></category>

		<guid isPermaLink="false">http://seilerwerks.wordpress.com/?p=377</guid>
		<description><![CDATA[NOTE: This post originally appeared on The Pythian Group blog on 6 June 2008, and is reposted here with permission.
A little over a week ago, a teammate and I were trying to use Oracle’s FLASHBACK TABLE to undo an “oops” UPDATE statement that a client’s developers had run on one of their test databases, clearing [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=seilerwerks.wordpress.com&blog=2020677&post=377&subd=seilerwerks&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><em>NOTE: This post originally appeared on The Pythian Group blog on 6 June 2008, and is reposted here with permission.</em></p>
<p>A little over a week ago, a <a href="http://www.pythian.com/blogs/author/billette">teammate</a> and I were trying to use Oracle’s <a href="http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/backrec.htm#sthref2386">FLASHBACK TABLE</a> to undo an “oops” <code>UPDATE</code> statement that a client’s developers had run on one of their test databases, clearing data from two columns in all rows of the table. The statement was actually part of a script that also contained <code>ALTER TABLE</code> statements to add columns.  This is important to note because <code>FLASHBACK TABLE</code> will only let you go back as far as the most recent DDL against that table.  To quote <a href="http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_9012.htm#SQLRF01802">the SQL reference</a>, “Oracle Database cannot restore a table to an earlier state across any DDL operations that change the structure of the table.”</p>
<p><span id="more-377"></span></p>
<p>This led me to another question: Is there a way to directly see to precisely what date and time you can flashback a table? The developer couldn’t give me a precise time, only that the <code>UPDATE</code> statement was executed immediately after the structure-changing DDL, making my target window very small. Naturally, one would think that the <code>LAST_DDL_TIME</code> in the <code>DBA_OBJECTS</code> view would hit that nail on the head. However it turns out that the key bit of that SQL reference quote is “change the structure of the table.”</p>
<p>It turns out that there are a few statements that will update the <code>LAST_DDL_TIME</code> without changing the table structure.  For example, <code>GRANT</code> and <code>REVOKE</code> statements, which provide a user with certain privileges on an object, will trigger an update to <code>LAST_DDL_TIME</code>.  You can then go ahead and flashback the table prior to the privilege change.  Another item to note is that a prerequisite to <code>FLASHBACK TABLE</code> is to enable row movement on that table, via (you guessed it) an <code>ALTER TABLE</code> statement.  The <code>ALTER TABLE foo ENABLE ROW MOVEMENT</code> statement also bumps <code>LAST_DDL_TIME</code>, but obviously doesn’t block <code>FLASHBACK TABLE</code> from going past it in time.</p>
<p>The bottom of all this is that you can’t use <code>LAST_DDL_TIME</code> to determine just how far back you can go with a <code>FLASHBACK TABLE</code> statement, as you can most likely go past it due to various non-structure-changing DDL statements that affect that timestamp.</p>
<p>Here’s a little demonstration to illustrate this point:</p>
<pre><span style="color:#008000;">-- Get our preferred date format
SQL&gt; alter session set nls_date_format='YYYY/MM/DD HH24:MI:SS';

Session altered.

SQL&gt;
SQL&gt; -- First we need something to play with
SQL&gt; create table emp
  2  as select * from hr.employees;

Table created.

SQL&gt;
SQL&gt; -- alter row movement to allow for flashback
SQL&gt; -- NOTE: this also updates last_ddl_time
SQL&gt; alter table emp enable row movement;

Table altered.

SQL&gt;
SQL&gt; -- Note the last_ddl_time given in the
SQL&gt; -- dba_objects view
SQL&gt; select last_ddl_time
  2  from dba_objects
  3  where owner=user and object_name='EMP';

LAST_DDL_TIME
-------------------
2008/05/28 22:09:11                                                             

SQL&gt;
SQL&gt; -- Let some time elapse, get a drink of water
SQL&gt; exec dbms_lock.sleep(120);

PL/SQL procedure successfully completed.

SQL&gt;
SQL&gt; -- Get a marker, note this.
SQL&gt; select sysdate from dual;

SYSDATE
-------------------
2008/05/28 22:11:11                                                             

SQL&gt;
SQL&gt; -- Note the salary before the DML
SQL&gt; select first_name, last_name, salary
  2  from emp
  3  where employee_id=101;

FIRST_NAME           LAST_NAME                     SALARY
-------------------- ------------------------- ----------
Neena                Kochhar                        17000                       

SQL&gt;
SQL&gt; -- Let's give her a 15% raise
SQL&gt; update emp
  2  set salary = salary * 1.15
  3  where employee_id=101;

1 row updated.

SQL&gt;
SQL&gt; -- Don't forget the commit!
SQL&gt; commit;

Commit complete.

SQL&gt;
SQL&gt; -- Observe the new salary
SQL&gt; select first_name, last_name, salary
  2  from emp
  3  where employee_id=101;

FIRST_NAME           LAST_NAME                     SALARY
-------------------- ------------------------- ----------
Neena                Kochhar                        19550                       

SQL&gt;
SQL&gt; -- Get another marker
SQL&gt; select sysdate from dual;

SYSDATE
-------------------
2008/05/28 22:11:11                                                             

SQL&gt;
SQL&gt; -- Now let's run bump last_ddl_time with a grant
SQL&gt; grant select on emp to hr;

Grant succeeded.

SQL&gt;
SQL&gt; -- Check it out
SQL&gt; select last_ddl_time
  2  from dba_objects
  3  where owner=user and object_name='EMP';

LAST_DDL_TIME
-------------------
2008/05/28 22:11:11                                                             

SQL&gt; -- Now flashback to the first marker or
SQL&gt; -- anytime after creation but before update
SQL&gt; flashback table emp to timestamp
  2  to_timestamp('2008/05/28 22:10:00','YYYY/MM/DD HH24:MI:SS');

Flashback complete.

SQL&gt;
SQL&gt; -- Verify the flashback worked
SQL&gt; select first_name, last_name, salary
  2  from emp
  3  where employee_id=101;

FIRST_NAME           LAST_NAME                     SALARY
-------------------- ------------------------- ----------
Neena                Kochhar                        17000                       

SQL&gt;
SQL&gt; -- Clean up
SQL&gt; drop table emp;

Table dropped.

SQL&gt;</span></pre>
<p>So, I’m still looking for a straight-forward way to identify a point-of-no-return for flashback for future reference. When I asked around the shop, the consensus seemed to be that using <a href="http://download.oracle.com/docs/cd/B19306_01/server.102/b14215/logminer.htm#SUTIL019">LogMiner</a> would be the best way to not only find the SCN of the table structure changes, but to get the SQL to “undo” the table change (if I so desired), and even to undo the effects of the <code>UPDATE</code> statement.</p>
<p>Apologies for the long block of code.  And thanks to <a href="http://www.pythian.com/blogs/author/billette">Marc</a>, <a href="http://www.pythian.com/blogs/author/shamsudeen/">Riyaj</a>, <a href="http://www.pythian.com/blogs/author/alexf/">Alex F.</a>, and <a href="http://www.pythian.com/blogs/author/alex/">Alex G.</a> for their help.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/seilerwerks.wordpress.com/377/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/seilerwerks.wordpress.com/377/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/seilerwerks.wordpress.com/377/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/seilerwerks.wordpress.com/377/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/seilerwerks.wordpress.com/377/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/seilerwerks.wordpress.com/377/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/seilerwerks.wordpress.com/377/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/seilerwerks.wordpress.com/377/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/seilerwerks.wordpress.com/377/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/seilerwerks.wordpress.com/377/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/seilerwerks.wordpress.com/377/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/seilerwerks.wordpress.com/377/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=seilerwerks.wordpress.com&blog=2020677&post=377&subd=seilerwerks&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://seilerwerks.wordpress.com/2008/06/30/flashback-table-vs-dba_objects-last_ddl_time/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0a26f7f3e30943f45acff81cd87feba6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Don</media:title>
		</media:content>
	</item>
		<item>
		<title>A Traveller&#8217;s Woe</title>
		<link>http://seilerwerks.wordpress.com/2008/06/06/a-travellers-woe/</link>
		<comments>http://seilerwerks.wordpress.com/2008/06/06/a-travellers-woe/#comments</comments>
		<pubDate>Fri, 06 Jun 2008 21:39:15 +0000</pubDate>
		<dc:creator>Don Seiler</dc:creator>
				<category><![CDATA[oracle]]></category>

		<guid isPermaLink="false">http://seilerwerks.wordpress.com/?p=375</guid>
		<description><![CDATA[Having spent 3 weeks in Ottawa, I was very much looking forward to returning home to my family last Friday evening.  The itinerary was simple: fly out of Ottawa at 7:30 PM EDT, land in Chicago at 8:30 CDT, fly out of Chicago at 9:30 and land in Green Bay at 10:30 PM CDT [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=seilerwerks.wordpress.com&blog=2020677&post=375&subd=seilerwerks&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Having spent 3 weeks in Ottawa, I was very much looking forward to returning home to my family last Friday evening.  The itinerary was simple: fly out of Ottawa at 7:30 PM EDT, land in Chicago at 8:30 CDT, fly out of Chicago at 9:30 and land in Green Bay at 10:30 PM CDT where my lovely wife would pick me up and bring me home.</p>
<p>Upon arriving at the airport in Ottawa, I discovered that my flight was delayed due to bad weather in Chicago.  I literally threw my head back in despair.  My flight from Green Bay to Chicago 3 weeks prior had also been delayed 3 hours due to bad weather in Chicago.  Fortunately the flight from Chicago to Ottawa was also delayed in departing so I just made it before they closed the doors.  This fortune would not repeat itself.</p>
<p><span id="more-375"></span></p>
<p>The gal at the United ticket counter actually moved me to the YOW-ORD flight scheduled to depart at 5:53 PM EDT, but delayed to 8:40 PM anyway.  So I had a crummy airport-bar dinner and read half of Prince Caspian by the time we boarded.</p>
<p>We landed in Chicago at 10:00 PM CDT with the storms far to the south, I could see lightning in the clouds far off.  As we&#8217;re on approach I wonder if my connecting flight to Green Bay would still be delayed.  I deboard and check the departure monitors &#8230; my flight isn&#8217;t even listed!  I hurry over to the nearest United counter and am told with a smile that it took off as scheduled 30 minutes before I landed.</p>
<p>I think see that there is a flight to Appleton scheduled to take off in like 12 minutes.  I go back to the counter and ask if there&#8217;s a chance I could get on it.  The gal says yes, but it&#8217;s in Concourse F in Terminal 2, and I was standing in Concourse C in Terminal 1.  This means nothing to me until the guard says, &#8220;Dude it&#8217;s a hike.  Like 15 minutes if you hurry.&#8221;  I tell the United lackey to call them and start moving.  That guy wasn&#8217;t kidding, plus I am really out of shape.</p>
<p>Anyway I make it to the gate only to be told that they just left the gate.  He asked if I was &#8220;the guy from C&#8221; and I said yes, and he said that they held it as long as they could but for some reason an extra 5 minutes wasn&#8217;t possible.</p>
<p>So I called my wife and said I could just rent a car and drive the 3 hours home from Chicago to Manitowoc.  However she said this was silly and to just take the next flight out &#8230; at 6:45 AM the next day.  So this I did.  Folks, I stayed 8 hours overnight in O&#8217;Hare Airport for a 55 minute flight.  Oddly enough there were two nice ladies there each flying to Green Bay for their respective granddaughters&#8217; high school graduations.  We became &#8230; close.</p>
<p>The real bonus came when we finally landed in Green Bay on Saturday morning and my new friends and I learned that our luggage wasn&#8217;t transferred to the new flight!  So I had to fill out a form and my luggage arrived sometime between 2:00 AM and 4:00 AM on Sunday morning.  I learned during this time that my selection of shirts outside of what I had packed is not too great.  I ended up wearing an old Starsky &amp; Hutch t-shirt from college that had a well-faded Huggy Bear asking, &#8220;What It Is?&#8221;, which was something I was asking myself that awful night.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/seilerwerks.wordpress.com/375/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/seilerwerks.wordpress.com/375/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/seilerwerks.wordpress.com/375/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/seilerwerks.wordpress.com/375/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/seilerwerks.wordpress.com/375/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/seilerwerks.wordpress.com/375/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/seilerwerks.wordpress.com/375/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/seilerwerks.wordpress.com/375/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/seilerwerks.wordpress.com/375/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/seilerwerks.wordpress.com/375/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/seilerwerks.wordpress.com/375/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/seilerwerks.wordpress.com/375/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=seilerwerks.wordpress.com&blog=2020677&post=375&subd=seilerwerks&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://seilerwerks.wordpress.com/2008/06/06/a-travellers-woe/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0a26f7f3e30943f45acff81cd87feba6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Don</media:title>
		</media:content>
	</item>
		<item>
		<title>die Updates</title>
		<link>http://seilerwerks.wordpress.com/2008/06/06/die-updates/</link>
		<comments>http://seilerwerks.wordpress.com/2008/06/06/die-updates/#comments</comments>
		<pubDate>Fri, 06 Jun 2008 21:08:07 +0000</pubDate>
		<dc:creator>Don Seiler</dc:creator>
				<category><![CDATA[oracle]]></category>
		<category><![CDATA[pythian]]></category>

		<guid isPermaLink="false">http://seilerwerks.wordpress.com/?p=374</guid>
		<description><![CDATA[Just dropping a line to let everyone know that the large part of my tech blogging will now be at the Pythian Group blog.  I&#8217;ll keep this blog space open and post links to my new posts over there.  I&#8217;m still searching for the balance of what will be strictly over there vs. what content [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=seilerwerks.wordpress.com&blog=2020677&post=374&subd=seilerwerks&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Just dropping a line to let everyone know that the large part of my tech blogging will now be at the <a href="http://www.pythian.com/blogs/">Pythian Group blog</a>.  I&#8217;ll keep this blog space open and post links to my new posts over there.  I&#8217;m still searching for the balance of what will be strictly over there vs. what content will be just here, so please bear with me.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/seilerwerks.wordpress.com/374/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/seilerwerks.wordpress.com/374/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/seilerwerks.wordpress.com/374/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/seilerwerks.wordpress.com/374/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/seilerwerks.wordpress.com/374/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/seilerwerks.wordpress.com/374/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/seilerwerks.wordpress.com/374/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/seilerwerks.wordpress.com/374/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/seilerwerks.wordpress.com/374/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/seilerwerks.wordpress.com/374/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/seilerwerks.wordpress.com/374/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/seilerwerks.wordpress.com/374/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=seilerwerks.wordpress.com&blog=2020677&post=374&subd=seilerwerks&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://seilerwerks.wordpress.com/2008/06/06/die-updates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0a26f7f3e30943f45acff81cd87feba6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Don</media:title>
		</media:content>
	</item>
		<item>
		<title>Moving On Up</title>
		<link>http://seilerwerks.wordpress.com/2008/05/09/moving-on-up/</link>
		<comments>http://seilerwerks.wordpress.com/2008/05/09/moving-on-up/#comments</comments>
		<pubDate>Fri, 09 May 2008 19:02:22 +0000</pubDate>
		<dc:creator>Don Seiler</dc:creator>
				<category><![CDATA[oracle]]></category>
		<category><![CDATA[pythian]]></category>

		<guid isPermaLink="false">http://seilerwerks.wordpress.com/?p=373</guid>
		<description><![CDATA[Today is my last day at my current employer.  It has been an incredible learning experience, and I&#8217;ll be forever grateful to the man who gave me the opportunity almost 7 years ago having zero knowledge of either Oracle or database administration.
I have accepted an offer from noted consulting firm The Pythian Group to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=seilerwerks.wordpress.com&blog=2020677&post=373&subd=seilerwerks&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Today is my last day at my current employer.  It has been an incredible learning experience, and I&#8217;ll be forever grateful to <a href="http://www.linkedin.com/pub/2/4b4/413">the man</a> who gave me the opportunity almost 7 years ago having zero knowledge of either Oracle or database administration.</p>
<p>I have accepted an offer from noted consulting firm <a href="http://www.pythian.com">The Pythian Group</a> to join their staff of DBAs doing remote administration.  This new position should give me exposure to a diverse set of client environments and configurations and a chance to grow in this career path and learn from some of the best in the business.  I will be flying out on Sunday for a 3-week stint at the worldwide headquarters in Ottawa, Ontario, Canada to immerse myself in the Pythian way.  If I have free time with my nights I hope to finish porting <a href="http://leaguesite.sourceforge.net">LeagueSite</a> to <a href="http://www.drupal.org">drupal</a>.</p>
<p>I&#8217;ll also try to get more regular with the blogging.  Things have been a bit hectic as of late.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/seilerwerks.wordpress.com/373/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/seilerwerks.wordpress.com/373/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/seilerwerks.wordpress.com/373/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/seilerwerks.wordpress.com/373/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/seilerwerks.wordpress.com/373/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/seilerwerks.wordpress.com/373/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/seilerwerks.wordpress.com/373/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/seilerwerks.wordpress.com/373/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/seilerwerks.wordpress.com/373/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/seilerwerks.wordpress.com/373/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/seilerwerks.wordpress.com/373/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/seilerwerks.wordpress.com/373/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=seilerwerks.wordpress.com&blog=2020677&post=373&subd=seilerwerks&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://seilerwerks.wordpress.com/2008/05/09/moving-on-up/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0a26f7f3e30943f45acff81cd87feba6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Don</media:title>
		</media:content>
	</item>
		<item>
		<title>Helpful Hints for RMAN Recovery</title>
		<link>http://seilerwerks.wordpress.com/2008/05/06/helpful-hints-for-rman-recovery/</link>
		<comments>http://seilerwerks.wordpress.com/2008/05/06/helpful-hints-for-rman-recovery/#comments</comments>
		<pubDate>Tue, 06 May 2008 19:23:48 +0000</pubDate>
		<dc:creator>Don Seiler</dc:creator>
				<category><![CDATA[oracle]]></category>

		<guid isPermaLink="false">http://seilerwerks.wordpress.com/?p=372</guid>
		<description><![CDATA[When you copy your backup files onto disk for RMAN to use for practicing cold-metal restore/recovery, make sure that they are at least visible to the oracle OS user.  It doesn&#8217;t help to have them owned by root with perm 640.
Thank me later.
       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=seilerwerks.wordpress.com&blog=2020677&post=372&subd=seilerwerks&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>When you copy your backup files onto disk for RMAN to use for practicing cold-metal restore/recovery, make sure that they are at least visible to the oracle OS user.  It doesn&#8217;t help to have them owned by root with perm 640.</p>
<p>Thank me later.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/seilerwerks.wordpress.com/372/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/seilerwerks.wordpress.com/372/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/seilerwerks.wordpress.com/372/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/seilerwerks.wordpress.com/372/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/seilerwerks.wordpress.com/372/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/seilerwerks.wordpress.com/372/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/seilerwerks.wordpress.com/372/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/seilerwerks.wordpress.com/372/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/seilerwerks.wordpress.com/372/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/seilerwerks.wordpress.com/372/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/seilerwerks.wordpress.com/372/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/seilerwerks.wordpress.com/372/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=seilerwerks.wordpress.com&blog=2020677&post=372&subd=seilerwerks&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://seilerwerks.wordpress.com/2008/05/06/helpful-hints-for-rman-recovery/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0a26f7f3e30943f45acff81cd87feba6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Don</media:title>
		</media:content>
	</item>
		<item>
		<title>Bind Variables and Parallel Queries Do Not Mix</title>
		<link>http://seilerwerks.wordpress.com/2008/04/23/bind-variables-and-parallel-queries/</link>
		<comments>http://seilerwerks.wordpress.com/2008/04/23/bind-variables-and-parallel-queries/#comments</comments>
		<pubDate>Thu, 24 Apr 2008 02:52:15 +0000</pubDate>
		<dc:creator>Don Seiler</dc:creator>
				<category><![CDATA[oracle]]></category>
		<category><![CDATA[bind variables]]></category>
		<category><![CDATA[parallel]]></category>
		<category><![CDATA[partitions]]></category>

		<guid isPermaLink="false">http://seilerwerks.wordpress.com/?p=371</guid>
		<description><![CDATA[This post was promised long ago, and I apologize for the tardiness.  Some of you may recall my whining about seemingly unexplainable instance hanging since migrating our database to 64-bit hardware in September.  Well, after some back and forth and hand-offs from one rep to another, we finally were given a possible explanation: [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=seilerwerks.wordpress.com&blog=2020677&post=371&subd=seilerwerks&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>This post was promised long ago, and I apologize for the tardiness.  Some of you may recall my whining about seemingly unexplainable instance hanging since migrating our database to 64-bit hardware in September.  Well, after some back and forth and hand-offs from one rep to another, we finally were given a possible explanation: <a href="https://metalink.oracle.com/metalink/plsql/f?p=130:14:3574037576399007154::::p14_database_id,p14_docid,p14_show_header,p14_show_help,p14_black_frame,p14_font:NOT,4367986.8,1,1,1,helvetica">Bug 4367986</a>.  The summary of the bug is &#8220;bind peeked parallel cursors do not share.&#8221;  This basically means that parallel queries that use bind variables won&#8217;t share cursors.  Not only does this defeat the purpose of using the bind variables, but it creates a new cursor for each parallel process.  After a while, your cursor count will go up, just as mine did:</p>
<pre name="code" class="sql">

select sql_id, count(*)
from v$sql_shared_cursor
where bind_peeked_pq_mismatch=&#039;Y&#039;
group by sql_id;

SQL_ID          COUNT(*)
------------- ----------
f3u64ru922snx        520
ckha07wkfaf8v          5
9g26upcqjh8kp          1
gdnga6d26vf4g         15
</pre>
<p>While I wasn&#8217;t able to choke and hang the instance in development, I was able to drive the count up as we saw in production.</p>
<p>We probably didn&#8217;t see this before our x86_64 migration because on our 32-bit instance, our parallel_max_servers was only set to 16.  After migrating to the new hardware it was raised to 80 based on &#8220;the formula&#8221;.  Dropping it to 0 obviously prevented the problem from coming up as well.</p>
<p>The bug is reportedly fixed in 10.2.0.4, which wasn&#8217;t released at the time we were finishing up the SR.  There was only a one-off patch for 10.2.0.3, meaning we had to upgrade from 10.2.0.2.  Well we did this, applied the patch, and haven&#8217;t had a reoccurrence of the problem since.  That query listed above now happily returns no rows.</p>
<p>Of course there was also the issue of using bind variables in queries against partitioned tables.  <a href="http://structureddata.org">Greg Rahn</a> had this to say:</p>
<blockquote><p>Using PQ with <span class="nfakPe">binds</span> can have other adverse effects, specifically if<br />
the partition key is not provided as a literal.  When the partition<br />
key is a bind, the resulting plan will be a KEY-KEY plan (for<br />
pstart/pstop) because w/o a literal value the optimizer can not tell<br />
if there is any partition elimination since the literal value is not<br />
provided at parse time.  This often times results in a &#8220;wost case&#8221;<br />
assumption, thus is it possible to have different plans even when the<br />
bind and literal statements use the same values.</p>
<p>I would speculate that the overhead of parsing literals when using PQ<br />
is minimal compared to the side effects it is causing (due to the bug)<br />
and the potential of suboptimal plans.  I personally would never mix<br />
the two.</p></blockquote>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/seilerwerks.wordpress.com/371/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/seilerwerks.wordpress.com/371/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/seilerwerks.wordpress.com/371/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/seilerwerks.wordpress.com/371/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/seilerwerks.wordpress.com/371/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/seilerwerks.wordpress.com/371/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/seilerwerks.wordpress.com/371/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/seilerwerks.wordpress.com/371/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/seilerwerks.wordpress.com/371/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/seilerwerks.wordpress.com/371/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/seilerwerks.wordpress.com/371/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/seilerwerks.wordpress.com/371/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=seilerwerks.wordpress.com&blog=2020677&post=371&subd=seilerwerks&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://seilerwerks.wordpress.com/2008/04/23/bind-variables-and-parallel-queries/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0a26f7f3e30943f45acff81cd87feba6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Don</media:title>
		</media:content>
	</item>
		<item>
		<title>Some Comic Humor For You</title>
		<link>http://seilerwerks.wordpress.com/2008/04/18/some-comic-humor-for-you/</link>
		<comments>http://seilerwerks.wordpress.com/2008/04/18/some-comic-humor-for-you/#comments</comments>
		<pubDate>Sat, 19 Apr 2008 03:22:44 +0000</pubDate>
		<dc:creator>Don Seiler</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[NERDS]]></category>

		<guid isPermaLink="false">http://seilerwerks.wordpress.com/?p=370</guid>
		<description><![CDATA[
From Married To The Sea, one of my favorite web comics.
       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=seilerwerks.wordpress.com&blog=2020677&post=370&subd=seilerwerks&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><img src="http://www.marriedtothesea.com/041808/this-is-what-i-get.gif" alt="married to the sea comic" width="650" height="496" /></p>
<p>From <a href="http://www.marriedtothesea.com/">Married To The Sea</a>, one of my favorite web comics.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/seilerwerks.wordpress.com/370/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/seilerwerks.wordpress.com/370/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/seilerwerks.wordpress.com/370/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/seilerwerks.wordpress.com/370/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/seilerwerks.wordpress.com/370/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/seilerwerks.wordpress.com/370/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/seilerwerks.wordpress.com/370/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/seilerwerks.wordpress.com/370/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/seilerwerks.wordpress.com/370/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/seilerwerks.wordpress.com/370/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/seilerwerks.wordpress.com/370/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/seilerwerks.wordpress.com/370/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=seilerwerks.wordpress.com&blog=2020677&post=370&subd=seilerwerks&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://seilerwerks.wordpress.com/2008/04/18/some-comic-humor-for-you/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0a26f7f3e30943f45acff81cd87feba6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Don</media:title>
		</media:content>

		<media:content url="http://www.marriedtothesea.com/041808/this-is-what-i-get.gif" medium="image">
			<media:title type="html">married to the sea comic</media:title>
		</media:content>
	</item>
		<item>
		<title>Don: 1 vs. 1Z0-043: 0</title>
		<link>http://seilerwerks.wordpress.com/2008/04/18/don-1-vs-1z0-043-0/</link>
		<comments>http://seilerwerks.wordpress.com/2008/04/18/don-1-vs-1z0-043-0/#comments</comments>
		<pubDate>Fri, 18 Apr 2008 20:29:49 +0000</pubDate>
		<dc:creator>Don Seiler</dc:creator>
				<category><![CDATA[oracle]]></category>
		<category><![CDATA[ocp]]></category>

		<guid isPermaLink="false">http://seilerwerks.wordpress.com/?p=369</guid>
		<description><![CDATA[Passed the 1Z0-043 exam today, otherwise known as the OCP exam.  Just need some other jazz like my hands-on course requirement form to be processed and then I should get my badge and gun and key to the executive washroom.
Thanks to Bradd Piontek for reminding me of how silly it all is, inspiring me [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=seilerwerks.wordpress.com&blog=2020677&post=369&subd=seilerwerks&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Passed the 1Z0-043 exam today, otherwise known as the OCP exam.  Just need <a href="http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=151">some other jazz</a> like my hands-on course requirement form to be processed and then I should get my badge and gun and key to the executive washroom.</p>
<p>Thanks to Bradd Piontek for reminding me of how silly it all is, inspiring me to pass it even more so that I wouldn&#8217;t look even more foolish failing a silly exam.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/seilerwerks.wordpress.com/369/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/seilerwerks.wordpress.com/369/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/seilerwerks.wordpress.com/369/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/seilerwerks.wordpress.com/369/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/seilerwerks.wordpress.com/369/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/seilerwerks.wordpress.com/369/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/seilerwerks.wordpress.com/369/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/seilerwerks.wordpress.com/369/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/seilerwerks.wordpress.com/369/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/seilerwerks.wordpress.com/369/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/seilerwerks.wordpress.com/369/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/seilerwerks.wordpress.com/369/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=seilerwerks.wordpress.com&blog=2020677&post=369&subd=seilerwerks&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://seilerwerks.wordpress.com/2008/04/18/don-1-vs-1z0-043-0/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0a26f7f3e30943f45acff81cd87feba6?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Don</media:title>
		</media:content>
	</item>
	</channel>
</rss>