<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-6356090992450002225</atom:id><lastBuildDate>Sat, 05 Nov 2011 17:53:35 +0000</lastBuildDate><category>apache</category><category>dba views</category><category>Personal Style</category><category>soccer</category><category>SQL</category><category>alerts</category><category>personal</category><category>Standards</category><category>security</category><category>rac</category><category>PL/SQL</category><category>Online shopping</category><category>migration</category><category>SQL Mirroring</category><category>upgrade</category><category>sql server</category><category>Prairie dog</category><category>Gopher</category><category>oracle</category><category>alice.com</category><category>introductions</category><category>Developers</category><category>enterprise manager</category><category>DBA</category><category>launch</category><category>career</category><category>ASP State</category><category>football</category><category>grid control</category><category>blogging</category><category>training</category><category>published reports</category><category>prestidigitation</category><title>Prestidigitation of Oracle</title><description>Revealing some of the magic of the Oracle RDBMS and related tools, as well as a look behind the curtain of my life.</description><link>http://piontekdd.blogspot.com/</link><managingEditor>noreply@blogger.com (Bradd Piontek)</managingEditor><generator>Blogger</generator><openSearch:totalResults>11</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/PrestidigitationOfOracle" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="prestidigitationoforacle" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6356090992450002225.post-1308131457313743882</guid><pubDate>Sat, 26 Jun 2010 16:23:00 +0000</pubDate><atom:updated>2010-06-26T11:41:04.685-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">football</category><category domain="http://www.blogger.com/atom/ns#">soccer</category><category domain="http://www.blogger.com/atom/ns#">blogging</category><category domain="http://www.blogger.com/atom/ns#">career</category><title>New Opportunities , Onwards and Upwards into the local market again</title><description>Looking at my last blog post (related to Oracle that is) it looked to have occurred back in Oct/Nov of 2008, right before I joined &lt;a href="http://www.pythian.com/"&gt;pythian&lt;/a&gt;. I'm sure I left a lot of blog topics for the Pythian blog in my head. It was a fun ride working for &lt;a href="http://www.pythian.com/"&gt;pythian&lt;/a&gt;. I think my 19-20 months working there gave me the skills and experience you just can't get anywhere else in the same time frame. I have the utmost respect for my co-workers there, as well as for &lt;a href="http://www.twitter.com/paulvallee"&gt;Paul Vallee&lt;/a&gt; as the Founder, President, and COO!!! &lt;br /&gt;&lt;br /&gt;I'm not one to reflect too much on the past, so it is time to move on and push forward. I will start my new job , locally, at &lt;a href="http://www.amfam.com/"&gt;American Family Insurance&lt;/a&gt;. I look forward to being reunited with some old colleagues I've worked with in previous positions, and especially look forward to the new challenges and experiences I'll gain working there. &lt;br /&gt;&lt;br /&gt;I also plan on dusting off this blog and being a bit more prolific in my writing, assuming I have the time. I've spent my spring coaching for the &lt;a href="http://www.sunprairiesoccer.com/"&gt;Sun Prairie Soccer Club&lt;/a&gt;. What a rewarding experience that was. I look forward to coaching my daughter's U-8 team this fall. This summer, I plan on playing twice a week in a local pick-up game. It has been 10+ years since I've played any sort of organized soccer and I'm loving the chance to get my skills back.&lt;br /&gt;&lt;br /&gt;Back to the blog. I have no plans on blogging about things related to my job, but do plan on working diligently in my &lt;a href="http://www.virtualbox.org"&gt;VirtualBox&lt;/a&gt; Virtual machines (OEL 5.5) with 11GR2. I have a couple ideas wandering around my head. Heck, maybe even &lt;a href="http://www.twitter.com/oraclenerd"&gt;Chet&lt;/a&gt; will talk me into guest blogging over at &lt;a href="http://www.oraclenerd.com/"&gt;oraclenerd.com&lt;/a&gt;. It all comes down to time. With three kids, a full-time job, and my extra curricular activities, time is at a premium. However, my commitment remains to database technologies. &lt;br /&gt;&lt;br /&gt;Speaking of commitments. The &lt;a href="http://www.wioug.com"&gt;Wisconsin Oracle Users Groups&lt;/a&gt; really needs to get some legs and a head of steam. I think this is a voice and outlet that many are now missing the Wisconsin Oracle community. I am hoping to do what I can to get this user group back up and running. Ambitious, I am sure.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6356090992450002225-1308131457313743882?l=piontekdd.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://piontekdd.blogspot.com/2010/06/new-opportunities-onwards-and-upwards.html</link><author>noreply@blogger.com (Bradd Piontek)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6356090992450002225.post-6192600652211639098</guid><pubDate>Mon, 16 Mar 2009 14:24:00 +0000</pubDate><atom:updated>2009-03-16T12:07:55.274-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Online shopping</category><category domain="http://www.blogger.com/atom/ns#">Prairie dog</category><category domain="http://www.blogger.com/atom/ns#">Gopher</category><category domain="http://www.blogger.com/atom/ns#">alice.com</category><title>OT: Spring Ahead with The Pretender ... Never Surrender</title><description>I have been anticipating the arrival of &lt;a href="http://www.alice.com/"&gt;alice.com&lt;/a&gt; in recent months. In the beginning, my interest was more due to the fact that I had worked with some of the alice employees. &lt;a href="http://flywheelblog.com/2008/11/a-toucan-muskrat-and-a-buffalo-walked-into-a-startup/"&gt;I think one is a Prairie Dog, one may be a Gopher, and I'm not sure what the other's are&lt;/a&gt;. Regardless, after my initial followings, I became intrigued at what this company was going to become. I love online shopping, and I love getting deals on household items. I also love free stuff. Let's face it, that is the real reason I'm writing this. The free stuff I can win in &lt;a href="http://blog.alice.com/2009/03/16/spring-cleaning-giveaway-ipod-shuffle/"&gt;the latest Spring Cleaning Giveway&lt;/a&gt; is the main reason for this blog. I'm No Pretender. With that, I segue into my favorite cleaning song. Currently, it would have to be "The Pretender" by Foo Fighters. I especially enjoy this while cleaning the dishes after a week of not cleaning pots, pans, or the elusive electric griddle. Granted, the type of cleaning I tend to do involves more than one song, but this one sticks out in my head.&lt;br /&gt; &lt;br /&gt;Well, here's hoping I am lucky this week and win the new iPod Shuffle. It talks to you!!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6356090992450002225-6192600652211639098?l=piontekdd.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://piontekdd.blogspot.com/2009/03/ot-spring-ahead-with-pretender-never.html</link><author>noreply@blogger.com (Bradd Piontek)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6356090992450002225.post-1007361566564973850</guid><pubDate>Fri, 21 Nov 2008 14:26:00 +0000</pubDate><atom:updated>2008-11-28T17:01:30.570-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">migration</category><category domain="http://www.blogger.com/atom/ns#">upgrade</category><category domain="http://www.blogger.com/atom/ns#">security</category><category domain="http://www.blogger.com/atom/ns#">oracle</category><title>10g Migration Ramification Part 2: Making the database a safer place</title><description>&lt;span style="font-family: arial;font-family:courier new;font-size:100%;"  &gt;In Part 2, I will be discussing a couple of the security changes Oracle has made in 10g Release 2 that have affected my life as a &lt;/span&gt;&lt;span style="font-family: arial;font-family:arial;font-size:100%;"  &gt;DBA&lt;/span&gt;&lt;span style="font-family: arial;font-family:courier new;font-size:100%;"  &gt;. (I can't speak to 10g Release 1 as I pretty much skipped this release altogether). As a whole, these changes point to Oracle's continuing focus on database security, although it could be argued they have a long way to go.&lt;/span&gt;&lt;span style="font-family: arial;font-family:arial;font-size:100%;"  &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold; font-family: arial;font-family:courier new;font-size:100%;"  &gt;Changes to the DEFAULT profile:&lt;/span&gt;&lt;span style="font-family: arial;font-family:arial;font-size:100%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial;font-family:courier new;font-size:100%;"  &gt;Oracle has made a change to the out-of-the-box setting of &lt;/span&gt;&lt;span style="font-weight: bold; font-family: arial;font-family:courier new;font-size:100%;"  &gt;FAILED_LOGIN_ATTEMPTS&lt;/span&gt;&lt;span style="font-family: arial;font-family:courier new;font-size:100%;"  &gt; of the DEFAULT profile. In 9i the default setting was UNLIMITED, however, in 10&lt;/span&gt;&lt;span style="font-family: arial;font-family:arial;font-size:100%;"  &gt;gR&lt;/span&gt;&lt;span style="font-family: arial;font-family:courier new;font-size:100%;"  &gt;2, the profile has been updated to have a value of 10. What the means is that if a user has 10 invalid &lt;/span&gt;&lt;span style="font-family: arial;font-family:arial;font-size:100%;"  &gt; attempts without a valid loginlogin&lt;/span&gt;&lt;span style="font-family: arial;font-family:courier new;font-size:100%;"  &gt;, the account will be set to the LOCKED(TIMED) status. Since the DEFAULT profile has  &lt;/span&gt;&lt;span style="font-weight: bold; font-family: arial;font-family:courier new;font-size:100%;"  &gt;PASSWORD_LOCK_TIME&lt;/span&gt;&lt;span style="font-family: arial;font-family:courier new;font-size:100%;"  &gt; set to UNLIMITED, the account will never unlock without manual intervention. This makes an out-of-the box 10&lt;/span&gt;&lt;span style="font-family: arial;font-family:arial;font-size:100%;"  &gt;gR&lt;/span&gt;&lt;span style="font-family: arial;font-family:courier new;font-size:100%;"  &gt;2 database more secure, in theory, but there is one side-effect. If you do not change the setting or create custom profiles with appropriate settings for application accounts, it is quite simple to engage in Denial of Service attacks against the database.&lt;br /&gt;&lt;br /&gt;I've seen this change in security cause production issues mainly with third-party applications that don't have the ability to change a user's profile or with internal processes that are used to reset passwords for users. This has caused increased help desk tickets due to locked accounts even after a password reset was completed.&lt;br /&gt;&lt;br /&gt;Thankfully, this is pretty easy to solve depending on your business rules.&lt;br /&gt;&lt;/span&gt;&lt;ol style="font-family: arial;font-family:courier new;" &gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Alter the default profile to match your company standards.  I'm not the biggest fan of this. I"m not sure if Oracle keeps any changes you make to the DEFAULT profile between upgrades. I'll have to test that sometime when moving to 11g.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Create new profiles with your own security settings. To get around certain third-party applications that create their own users, you may need a system trigger to change the profile after a user is created. You may also need to include automatic 'unlock' functionality in the case of a user that has their password changed and is in a LOCKED(TIMED) status. This could alleviate help desk calls.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;To deal with the unlock issue, you could also change business processes that reset passwords to also include an unlock of the account. There are a lot of options when it comes to Oracle Security and profiles. Explore all of them.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-family: arial;font-family:courier new;font-size:100%;"  &gt;&lt;span style="font-weight: bold;"&gt;Changes to default file permissions to the Oracle binaries:&lt;/span&gt;&lt;br /&gt;The Oracle 10g software installation on most Unix/Linux platforms has become more secure out of the box. In fact, Oracle has taken it to the opposite extreme. Prior to 9.2.0.8, the Oracle software installation was pretty wide open from a file permission standpoint. Starting somewhere around 9.2.0.8, the ORACLE_HOME has been locked down to only allow access to the owner and group. From a security standpoint this looks to be a good thing, however this can cause slight headaches for applications and developers that use the Oracle client on these platforms. Thankfully, in Oracle 10gR2 there is a script to loosen security on the ORACLE_HOME. &lt;span style="font-style: italic;"&gt;changePerm.ksh&lt;/span&gt; is located in $ORACLE_HOME/install on most Unix/Linux platforms. You can run it as-is and it will more or less put the permissions back to the way they were in previous versions. There is also the ability to customize what permissions are loosened.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Database Link passwords no longer stored plain text:&lt;/span&gt;&lt;br /&gt;This is a wonderful change from previous versions. For far too long, Oracle has been storing database link passwords in the SYS.LINK$ (and exposed via USER_DB_LINKS) plain text. While this has always been a nicety for DBAs to use, it definitely exposes a security hole in the database. In Oracle 10g, the passwords are now stored encrypted (or maybe it is hashed, I forget) so that DBAs and developers alike can not gain access to schema accounts. Even the USER_DB_LINKS view shows no password when logged in and looking at private database links.&lt;br /&gt;&lt;br /&gt;What this means to the DBA is a bit of a change in how they move database links. An old trick was to run the following:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;SELECT name,password,host FROM sys.link$;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;You will also need the user_id to join to user$. The DBA could easily get passwords and recreate database links. Luckily, in 10g, the DBA doesn't need to know passwords. The old trick of using the password hash works just fine for database links as well.&lt;br /&gt;&lt;pre&gt;&lt;pre&gt;&lt;br /&gt;'SELECT name,xpassword,host FROM sys.link$&lt;br /&gt;&lt;/pre&gt;&lt;/pre&gt;&lt;br /&gt;If you take the output and format a database link create statement like the following, you will have a working database link:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;CREATE DATABASE LINK &lt;name&gt; IDENTIFIED BY VALUES '&lt;xpassword&gt;' USING '&lt;host&gt;';&lt;br /&gt;&lt;/host&gt;&lt;/xpassword&gt;&lt;/name&gt;&lt;/pre&gt;&lt;br /&gt;This assumes you are logged on as the owner of the database link.&lt;br /&gt;&lt;br /&gt;There are other methods in recreating the database links in 10g. Refer to the &lt;a href="http://www.freelists.org/post/oracle-l/Dblink-in-Oracle10g"&gt;Oracle-L&lt;/a&gt; thread that occurred recently for more information&lt;br /&gt;&lt;br /&gt;I know there are a lot more security changes in Oracle 10g. These are the big ones that I've encountered in migrating from 9i to 10g. Hopefully this will help any small hiccups in your upgrades.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6356090992450002225-1007361566564973850?l=piontekdd.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://piontekdd.blogspot.com/2008/11/10g-migration-ramification-part-2.html</link><author>noreply@blogger.com (Bradd Piontek)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6356090992450002225.post-1727131632759956793</guid><pubDate>Sat, 01 Nov 2008 00:51:00 +0000</pubDate><atom:updated>2008-11-02T17:34:03.892-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Standards</category><category domain="http://www.blogger.com/atom/ns#">Developers</category><category domain="http://www.blogger.com/atom/ns#">Personal Style</category><category domain="http://www.blogger.com/atom/ns#">DBA</category><category domain="http://www.blogger.com/atom/ns#">SQL</category><title>Don't Cramp My (SQL) Style ... Musings from an Oracle DBA</title><description>This post was inspired  by a &lt;a href="http://twitter.com/oraclenerd/status/983834466"&gt;Twitter thread&lt;/a&gt; that took place on October 31st between &lt;a href="http://www.twitter.com/piontekdd"&gt;myself&lt;/a&gt;, &lt;a href="http://www.twitter.com/oraclenerd"&gt;@oraclenerd&lt;/a&gt;, &lt;a href="http://www.twitter.com/dtseiler"&gt;@dtseiler&lt;/a&gt; (maybe I only included Don for his tongue in cheek, playground banter), and &lt;a href="http://www.twitter.com/surfsearcher"&gt;@surfsearcher&lt;/a&gt; :&lt;br /&gt;&lt;a href="http://www.twitter.com/oraclenerd"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;/a&gt;&lt;blockquote&gt;&lt;span style="font-size:85%;"&gt;&lt;a href="http://www.twitter.com/oraclenerd"&gt;@oraclenerd&lt;/a&gt;:  &lt;/span&gt;&lt;span class="entry-content"  style="font-size:85%;"&gt;"besides commas at the start of a line (sql, plsql), I also hate mixed case sql and plsql"&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;a href="http://www.twitter.com/oraclenerd"&gt;@oraclenerd&lt;/a&gt;:  &lt;/span&gt;&lt;span class="entry-content"  style="font-size:85%;"&gt;"&lt;/span&gt;&lt;span style="font-size:85%;"&gt;@&lt;a href="http://twitter.com/piontekdd"&gt;piontekdd&lt;/a&gt; come on!  it's just plain ugly...besides, I've gotta have have at least a little something to bitch about now and again.  :)                        "&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;@&lt;a href="http://twitter.com/piontekdd"&gt;piontekdd&lt;/a&gt;: "@&lt;a href="http://twitter.com/oraclenerd"&gt;oraclenerd&lt;/a&gt; life is too short to get upset about personal style :)"&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;@&lt;a href="http://twitter.com/piontekdd"&gt;piontekdd&lt;/a&gt;: "&lt;span class="entry-content"&gt;@&lt;a href="http://twitter.com/oraclenerd"&gt;oraclenerd&lt;/a&gt; I like mixed case and see the validity in commas at the beginning ;)"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;a href="http://www.twitter.com/oraclenerd"&gt;@oraclenerd&lt;/a&gt;: "@&lt;a href="http://twitter.com/piontekdd"&gt;piontekdd&lt;/a&gt; well sir, I would argue that if you like commas at the beginning and the brewers, well... "&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a href="http://www.twitter.com/dtseiler"&gt;@dtseiler&lt;/a&gt;: "@&lt;a href="http://twitter.com/oraclenerd"&gt;oraclenerd&lt;/a&gt; I like commas at the beginning and the Brewers.  Do we need to take this outside?"&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;@&lt;a href="http://twitter.com/piontekdd"&gt;piontekdd&lt;/a&gt;: "@&lt;a href="http://twitter.com/oraclenerd"&gt;oraclenerd&lt;/a&gt;  putting commas at the beginning (while not my natural style) is easier to cut and paste lines and to not miss commas.:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.twitter.com/surfsearcher"&gt;@surfsearcher&lt;/a&gt;: "@&lt;a href="http://twitter.com/piontekdd"&gt;piontekdd&lt;/a&gt; the last dba i worked with corrected me on doing it that way, made me change all my sql b/c commas in front is "non-standard"."&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.twitter.com/surfsearcher"&gt;@surfsearcher&lt;/a&gt;: "@&lt;a href="http://twitter.com/piontekdd"&gt;piontekdd&lt;/a&gt; this dba was known for enforcing her personal standards to a point well beyond reason. i'm with you on the commas."&lt;/span&gt;&lt;br /&gt;&lt;span class="entry-content"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;I believe the gist of what &lt;a href="http://oraclenerd.com/"&gt;Chet&lt;/a&gt; was getting at was a personal style issue in formatting SQL or PL/SQL code:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;        select&lt;br /&gt;                foo,&lt;br /&gt;                bar&lt;br /&gt;        from&lt;br /&gt;               foobar&lt;br /&gt;        where&lt;br /&gt;               foo = 'BAR' and&lt;br /&gt;               bar = 'FOO'&lt;br /&gt;        order by&lt;br /&gt;               bar,&lt;br /&gt;               foo;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;    versus&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;        SELECT&lt;br /&gt;                foo&lt;br /&gt;               ,bar&lt;br /&gt;        FROM&lt;br /&gt;               foobar&lt;br /&gt;        WHERE&lt;br /&gt;                         foo = 'BAR'&lt;br /&gt;               AND bar = 'FOO&lt;br /&gt;        ORDER BY&lt;br /&gt;                 bar&lt;br /&gt;                ,foo;&lt;br /&gt;&lt;/pre&gt;        &lt;br /&gt;                 &lt;br /&gt;&lt;br /&gt;While I'm sure &lt;a href="http://oraclenerd.com/"&gt;Chet&lt;/a&gt; was just venting over some work issues, it got me to thinking  about standards in the IT workplace versus personal style. (Personal baseball tastes and my obvious over use of emoticons on twitter notwithstanding).  I'm all for having coding standards, database object standards ... etc for in-house development. However, I do find that coding, whether it be .NET, Java, SQL or PL/SQL, has a bit of personal style to it. This does not mean making code difficult to read or impossible to follow, but I can see the need for some personal latitude when coding.  I've experienced my  own coding creativity slowed down by worrying too much about the standard and not enough on what I was attempting to solve. Is is not enough to provide excellent documentation and comments in your code?&lt;br /&gt;&lt;br /&gt;I have worked as a developer on large systems (Oracle and C), as well as applications where I am the lone developer (Visual C++). On large system, it is important to adhere to some sort of standard to make the code easier to support by others. I've seen the proof that following these standards can keep maintenance costs down. I just don't see how forcing a developer to put a comma in a certain place, or using a certain case of letters, is going to hurt that.&lt;br /&gt;&lt;br /&gt;I've been an Oracle DBA for over eight years. I've written my share of SQL and PL/SQL packages. I totally understand the need for certain standards. When designing data models for new applications, it is very beneficial to have object naming standards (tables, indexes, constraints, etc). It is important for developers to have a set of SQL guidelines. (e.g. Using bind variables where appropriate).&lt;br /&gt;&lt;br /&gt;When I read&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://www.twitter.com/surfsearcher"&gt;@surfsearcher's&lt;/a&gt; tweet&lt;/span&gt; above, I started to get a bit passionate about writing this. I'm a DBA. At the end of the day, I'm ultimately responsible for what gets promoted to production and for the health of the database. However, my personal preference for where a comma goes shouldn't enter into the equation. It is my job as the DBA to work with the developers, not push my personal style down their throats. It is my belief that DBAs and developers need to work hand in hand in a collaborative way. If I ask someone to change something, I better have a better reason than "It is not standard". &lt;br /&gt;&lt;br /&gt; I often see developers and DBAs engage in this 'us vs. them' relationship. I see this in online forums and lists. DBAs referring  to developers as 'duhvelopers'. I've seen it in the workplace. DBAs are viewed as over-bearing, control freaks or where the DBA thinks their life would be easier without having developers. It does very little for making a better application.  I've seen my share of 'duh' moments in the development life-cycle. I've seen my share of 'duh' moments by DBAs (myself included). I firmly believe a cooperative, open environment must exist for a successful application to be designed, developed, and deployed.&lt;br /&gt;&lt;br /&gt;What do you think? Is there room for personal style when coding in the workplace? Can strict naming standards co-exist with personal style/preference? Is all this cramping your style?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6356090992450002225-1727131632759956793?l=piontekdd.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://piontekdd.blogspot.com/2008/10/dont-cramp-my-sql-style-musings-from.html</link><author>noreply@blogger.com (Bradd Piontek)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6356090992450002225.post-3286947763573745693</guid><pubDate>Mon, 28 Jul 2008 01:38:00 +0000</pubDate><atom:updated>2008-07-27T21:16:38.903-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">PL/SQL</category><category domain="http://www.blogger.com/atom/ns#">migration</category><category domain="http://www.blogger.com/atom/ns#">upgrade</category><category domain="http://www.blogger.com/atom/ns#">oracle</category><title>10g Migration Ramification Part 1: ORA-1426, Numeric Overflow</title><description>Oracle 11g was released over a year ago, but lets face it, not everyone is running Oracle 10g, let alone 11g. July 31st marks the end of the 'free' Premier Support Oracle offered up to all Oracle 9.2.0.8 customers last summer. With that spirit in mind, I thought I would share some of my Oracle 10g Migration Ramifications. ('Upgrade' is a boring word and doesn't have a lot of words that rhyme with it. It is also a great homage to Adam Sandler's '&lt;a href="http://en.wikipedia.org/wiki/Cajun_Man#Cajun_Man"&gt;Cajun Man&lt;/a&gt;').&lt;br /&gt;&lt;br /&gt;In part 1, I will discuss an ORA-1426 you may encounter in PL/SQL code if you are using large literal integers and expecting a NUMBER type to hold it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The code:&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;DECLARE&lt;br /&gt;   lv_results NUMBER := 0;&lt;br /&gt;BEGIN&lt;br /&gt;   lv_results := 999999999 * 3;&lt;br /&gt;END;&lt;br /&gt;/&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Oracle 9i Results:&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;PL/SQL procedure successfully completed.&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Oracle 10g Results:&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;DECLARE&lt;br /&gt;*&lt;br /&gt;ERROR at line 1:&lt;br /&gt;ORA-01426: numeric overflow&lt;br /&gt;ORA-06512: at line 4&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;I believe the 10g result is related to a change made in Oracle 10.1. There are various PL/SQL optimizations and new features added in Oracle 10g Release 1 and Release 2. Check out Metalink DocID: #311971.1 "New Features for Oracle10g PL/SQL 10.x" for a good list. I believe what we are seeing in the code above is an optimization made to the PL/SQL engine. In the example above, the PL/SQL engine is attemping to use an integer math engine to perform its calculations. This makes sense the math involves two integers. It would be faster to use integer math over floating-point.&lt;br /&gt;&lt;br /&gt;If we change the code slightly, we can force floating-point math and avoid the numeric overflow.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;New Oracle 10g Code:&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;DECLARE&lt;br /&gt;   lv_results NUMBER := 0;&lt;br /&gt;BEGIN&lt;br /&gt;   lv_results := 999999999 * 3.0;&lt;br /&gt;END;&lt;br /&gt;/&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;New Oracle 10g Results:&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;PL/SQL procedure successfully completed.&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;You could also avoid the issue altogether by using variables of type NUMBER.&lt;br /&gt;&lt;br /&gt;The moral of the story with any database migration (or application change) is testing, testing, testing. Even the smoothest, most tested migration is going to come up with a few small issues (or one really big one). Even when you are armed with a list of all the new features, possible bugs etc, there are bound to be surprises for developers and dbas alike.&lt;br /&gt;&lt;br /&gt;Good luck with getting your 9i databases migrated (or 8i , or even, 8 and 7)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6356090992450002225-3286947763573745693?l=piontekdd.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://piontekdd.blogspot.com/2008/07/10g-migration-ramification-part-1-ora.html</link><author>noreply@blogger.com (Bradd Piontek)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6356090992450002225.post-2350676979520359044</guid><pubDate>Thu, 24 Jul 2008 23:00:00 +0000</pubDate><atom:updated>2008-08-06T17:16:52.720-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">SQL Mirroring</category><category domain="http://www.blogger.com/atom/ns#">sql server</category><category domain="http://www.blogger.com/atom/ns#">ASP State</category><title>ASP State and SQL Server: The Mirror Has Three Faces</title><description>In the spirit of Jonathan Lewis' recent post, &lt;a href="http://how-to-make-a-blog.blogspot.com/2008/07/sometimes-everything-i-write-sucks.html"&gt;Sometimes, Everything I Write Sucks!&lt;/a&gt;,  comes today's installment of the Prestidigitation of Oracle. Today's &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;prestidigitation&lt;/span&gt; is that I'm not going to write about Oracle (or why I need to blog more), but I'm going to focus on a topic I've been dealing with lately which is implementing the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;ASPState&lt;/span&gt; database with &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;SQL&lt;/span&gt; Mirroring.&lt;br /&gt;&lt;br /&gt;This is part one in the series and will go over the set up of a custom &lt;a href="http://msdn.microsoft.com/en-us/library/ms972429.aspx"&gt;ASP session state&lt;/a&gt; database to be used with ASP.NET applications which is connected to a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;SQL&lt;/span&gt; Server database that is set up in a &lt;a href="http://www.microsoft.com/technet/prodtechnol/sql/2005/dbmirror.mspx"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;SQL&lt;/span&gt; Mirroring&lt;/a&gt; set up. This article isn't going to cover the actual &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;SQL&lt;/span&gt; Mirroring setup. A lot of what I did was learned from an article on &lt;a href="http://www.developer.com/db/article.php/3595766"&gt;Storing Session State in a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;SQL&lt;/span&gt; Server Database&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The ASP session state database has three options you can install with.  A non-persistent database that utilizes &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;tempdb&lt;/span&gt;, A persistent database that uses  a default database called &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;ASPState&lt;/span&gt;, and a persistent database that has a name of your choosing. (i.e. Custom database). Hence, the mirror has three faces. Given the premise that we have a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;SQL&lt;/span&gt; Server 2005 database set up for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;SQL&lt;/span&gt; Mirroring and that we want to keep the session state persistent between restarts as well capable of mirroring. The only choice I see for this is to store the ASP session state information in the applications database. In other words, using the custom option. This keeps the session information encapsulated in the same database as the application itself, and allows the information to be mirrored to another &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;SQL&lt;/span&gt; Server database.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Installation&lt;/span&gt;&lt;br /&gt;Installing the ASP session state database is fairly straight-forward. The first thing you'll need is the &lt;span style="font-family:Verdana,Arial,Helvetica;"&gt;&lt;b&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;ASPNET&lt;/span&gt;_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;REGSQL&lt;/span&gt;.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;EXE&lt;/span&gt; &lt;/b&gt;&lt;/span&gt;executable. I found this under the .NET Framework 2.0 directory. I my case, this was the &lt;span style="font-style: italic;"&gt;C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 &lt;/span&gt;directory.&lt;br /&gt;I prefer Windows authentication, so the installation is fairly straight-forward.&lt;br /&gt;&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;ASPNET&lt;/span&gt;_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;REGSQL&lt;/span&gt;.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;EXE&lt;/span&gt; -E -&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;ssadd&lt;/span&gt; -sstype c -d &lt;customdbname&gt; -s &lt;yoursqldatabase&gt;&lt;yourappdbhere&gt;&lt;br /&gt;&lt;br /&gt;This will install a couple tables and a bunch of stored procedures into your database. Voila, you now have a custom ASP session state database that should be ready for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;SQL&lt;/span&gt; Mirroring.&lt;br /&gt;&lt;br /&gt;One other step I performed is one of security. Since the ASP session state database is stored procedure based, I need to give the application user the ability to execute stored procedures (i.e. The app will not connect as &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;dbo&lt;/span&gt; or sysadmin).&lt;br /&gt;&lt;br /&gt;use &lt;yourappdbhere&gt;&lt;br /&gt;GO&lt;br /&gt;CREATE ROLE db_executor;&lt;br /&gt;GO&lt;br /&gt;GRANT execute TO db_executor;&lt;br /&gt;GO&lt;br /&gt;&lt;br /&gt;You now have a role that will assume execute privileges on any stored procedure in the database. Assign the role to your application user and everything should work excellent.&lt;br /&gt;&lt;br /&gt;In the next installment, I hope to cover the testing of persistence in a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;SQL&lt;/span&gt; Mirror fail-over scenario. Don't expect it too soon (the prestidigitation continues) and look for more Oracle posts to come soon.&lt;/yourappdbhere&gt;&lt;/yourappdbhere&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6356090992450002225-2350676979520359044?l=piontekdd.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://piontekdd.blogspot.com/2008/07/asp-state-and-sql-server-mirror-has.html</link><author>noreply@blogger.com (Bradd Piontek)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6356090992450002225.post-6649121124978384576</guid><pubDate>Thu, 24 Jul 2008 02:15:00 +0000</pubDate><atom:updated>2008-07-23T21:51:14.842-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">rac</category><category domain="http://www.blogger.com/atom/ns#">training</category><category domain="http://www.blogger.com/atom/ns#">oracle</category><title>IOUG RAC Attack! ...  I surrender!!!</title><description>The &lt;a href="http://www.oracleracsig.org/"&gt;Oracle RAC SIG&lt;/a&gt; and &lt;a href="http://www.ioug.org/"&gt;IOUG&lt;/a&gt; are putting on an event in a few weeks in Chicago, August 4th and 5th. It is called the &lt;a href="http://www.ioug.org/networking/SIGs/RACAttackInformation.cfm"&gt;IOUG RAC Attack!&lt;/a&gt; (awesome name, I wonder who came up with it). Since my current job entails supporting an Oracle RAC environment (2 5-node clusters) and we have some newer members who are a bit green in the RAC arena, I thought it would make sense to check into the event and agenda to see if it is worthwhile to send some people to this.&lt;br /&gt;&lt;br /&gt;From looking at the agenda and the quality speakers they have lined up, I'm finding it difficult to find reasons not to recommend this event to my colleagues.  For $650 (2-day event, with a hands on lab) this looks to be good bang for your buck. I'd love to go myself, but my schedule just won't allow it.  I'm especially interested in hearing what &lt;a href="http://www.oracloid.com/"&gt;Alex Gorbachev&lt;/a&gt; has to say in the Oracle Clusterware lecture as well as &lt;a href="http://www.ardentperf.com/"&gt;Jeremy Schneider's&lt;/a&gt; Oracle Services lecture. Hopefully one of my colleagues attend and  take good notes and share with the group when they return. *hint hint*.&lt;br /&gt;&lt;br /&gt;With that, let the &lt;a href="http://w3.ioug.org/register/08RACAttack"&gt;registration&lt;/a&gt; begin.&lt;br /&gt;&lt;br /&gt;On a semi-related note. It might be cool for the &lt;a href="http://www.oracleracsig.org/"&gt;Oracle RAC SIG&lt;/a&gt; or &lt;a href="http://www.ioug.org/"&gt;IOUG &lt;/a&gt;(or both) to put together online badges for its members. It would promote both organizations in the Social Networking world and blogosphere (If they already have them, my most humblest of apologies)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Disclaimer: I'm in no way affilliated with the Oracle RAC SIG or IOUG (aside from being a member of both). &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6356090992450002225-6649121124978384576?l=piontekdd.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://piontekdd.blogspot.com/2008/07/ioug-rac-attack-i-surrender.html</link><author>noreply@blogger.com (Bradd Piontek)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6356090992450002225.post-1335504546603150281</guid><pubDate>Tue, 22 Jul 2008 23:38:00 +0000</pubDate><atom:updated>2008-07-22T20:03:00.657-05:00</atom:updated><title>9 Reasons I Need to Blog More</title><description>&lt;span style="font-size:100%;"&gt;Almost on a daily basis, I sit and stair at the Prestidigitation of Oracle and wonder what I should blog about today. I know I have a lot of ideas floating around in my head and all it takes is that mental kick in the arse to get it out. And yet, here I am sitting on July 22nd, 2008 with only 3 blog posts since starting in February (That is a) not a good average and b) 2 posts, as the first one was an inaugural post). This is my attempt to kick my brain in the arse and do what I set out to do this year. &lt;a href="http://feeds.feedburner.com/%7Er/typepad/sethsmainblog/%7E3/340575741/12-ways-to-get.html"&gt;Seth Godin&lt;/a&gt; blogged the other day about 12 ways to get your blog to the top of digg. I thought I'd try some of the &lt;a href="http://sethgodin.typepad.com/seths_blog/2006/06/how_to_get_traf.html"&gt;tactics&lt;/a&gt; he mentioned in an earlier blog. I've also been semi-inspired by &lt;a href="http://avc.blogs.com/a_vc/"&gt;Fred Wilson's A VC Blog&lt;/a&gt; over the course of the year. While he tends to dwell in a world completely foreign to me, it is rarely not an interesting read and can get my creative juices going. Without further ado, and in no particular order:&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;1. Everybody is doing it&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;     - I just threw that in there for the high school affect. I'm really not a follower (well, I am on twitter). You can definitely argue that I am on the bandwagon a bit late. But, better late than never. In all seriousness, I read a lot of interesting blog articles from Oracle professionals, venture capitalists, Social networking sites etc. I think I have something to offer and give back to the community.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;2. More Blogging = Less TV time&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;     - I love TV, I really do. The DVR was the best (and worst) invention to come in the past 5-10 years. Although, now that I think about it, I can sit in front of my laptop with a favorite TV show in the background. Maybe I should find a better hobby :)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;3. What goes better with beer than blogging?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;     - I've seen lists like "Best Beer Drinking Sports" and the like. Well, blogging is a perfect fit for beer drinking. I love beer, I love making it, drinking it, and finding new beer. The thought of sittin back, relaxing with a cold one, and writing the thoughts in my head seems like a perfect blend.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;4. Time to increase my Oracle breadth&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;     - I spent my most of my days working on company-related database issues. There doesn't seem to be nearly enough time to do R&amp;amp;D. Keeping an Oracle-related blog is a great way to force me to do my own research and improve my Oracle DBA skills on my own. Now I just need to get this laptop's memory increased so I can get Oracle 11g running on VirtualBox and I'll be in business. I've started keeping a daily list of topics I want to blog about. The next step is to get that done.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-size:130%;"&gt;5. Aspirations&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;     - I have aspirations to present at Oracle technical conferences. I look at blogging as a great first step to getting to that goal. This will force me to come up with ideas and not only find my voice, but also an audience (I hope).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-size:130%;"&gt;6. Peer Pressure&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;     - I suppose that sounds an awful lot like reason #1. However, it is a bit different. I look at peers and see the amazing things they are doing on their blogs and the great content they are creating and sharing with the oracle community (Look at &lt;a href="http://www.dannorris.com/"&gt;Dan Norris&lt;/a&gt;, &lt;a href="http://awads.net/wp/"&gt;Eddie Awad&lt;/a&gt;, &lt;a href="http://structureddata.org/"&gt;Greg Rahn&lt;/a&gt;, &lt;a href="http://seilerwerks.wordpress.com/"&gt;Don Seiler&lt;/a&gt; to name a few) and I say "hey, I can do that, and can hopefully add my own perspective".&lt;br /&gt;&lt;br /&gt;    - An interesting aside related to Greg Rahn. He probably doesn't realize it, but without Greg Rahn, I probably wouldn't even be an Oracle DBA. In 2000, I had just been hired on as a full-time developer at a local utility. Greg was a DBA there. He resigned later that year , I think to find his fortunes out west during the Dot Com boom. That left an opening on the DBA team. I was approached by one of their Senior DBAs to be a DBA. I thought it was a crazy idea. Those DBAs didn't do anything ;) I was a C developer, I knew it all. Luckily, I decided to take the leap and have been loving it ever since. Thanks Greg for resigning and opening up that door to me ;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;7.&lt;a href="http://www.twitter.com/"&gt;Twitter&lt;/a&gt;: Sometimes 140 characters just isn't enough&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;     - I love twitter. It is a somewhat emerging social networking idea. Some think blogging is dead and microblogging is the wave of the future and replace blogging. I'm not sure I agree at this point but I do find it a very useful medium to share ideas and expand my horizons.  Sometimes (okay, a lot of times) my thoughts take up more than 140 characters.  That is where the Prestidigation of Oracle needs to take over.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-size:130%;"&gt;8. Unload some of those brain cells.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;    - I'm a big believer in the &lt;a href="http://www.abc.net.au/news/stories/2008/07/15/2304107.htm"&gt;Use It or Lose it Principle&lt;/a&gt;. I think this applies to daily life. Whether it be that new whiz-bang Oracle feature you just read about, the latest training class you are thinking about taking or documenting that new package you just wrote.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-size:130%;"&gt;9. Comfort Zone&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;- I think it is real easy to get into a comfort zone. Life can get hectic and it is simple to get into a routine. You need to challenge yourself and shake things up to grow. I look at blogging as a natural way to do this. While I feel I've always been a decent writer, it has generally been with little purpose (essays, papers, etc). I need to find a purpose and hopefully this can get me on the right track. &lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6356090992450002225-1335504546603150281?l=piontekdd.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://piontekdd.blogspot.com/2008/07/9-reasons-i-need-to-blog-more.html</link><author>noreply@blogger.com (Bradd Piontek)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6356090992450002225.post-2940270544071658763</guid><pubDate>Tue, 13 May 2008 01:25:00 +0000</pubDate><atom:updated>2008-05-13T08:39:16.018-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">dba views</category><category domain="http://www.blogger.com/atom/ns#">enterprise manager</category><category domain="http://www.blogger.com/atom/ns#">alerts</category><category domain="http://www.blogger.com/atom/ns#">oracle</category><title>Tablespace 195% Full ... must be the metric system</title><description>I was recently refreshing a test database with production data (using datapump if anyone cares) and had forgotten to check the tablespace sizes between prod and test. During the load, I obviously ran out of space.   A quick check in prod showed I needed 4GB of space. The test tablespace was set to grow to 2GB max. To add space, I performed a simple command to add the space.&lt;br /&gt;&lt;pre&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;ALTER DATABASE DATAFILE '/u01/oracle/data01/blah.dbf' RESIZE 8GB;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;I resumed the datapump and went on my merry way.  A few minutes later I received an email from Grid Control that the tablespace was 195% full. &lt;span style="font-weight: bold;"&gt;195%?!?! That is crazy. &lt;/span&gt;Being that it was Friday afternoon and I wanted to get out of the office for the week, I chalked it up to some flaky Enterprise Manager metric gone wrong and moved on.&lt;br /&gt;&lt;br /&gt;Upon returning on Monday, I noticed the same alert had not cleared. Time to dive in and research the issue on Metalink. I found some good docs on Metalink and found reference to some bugs fixed in 10.2.0.4 but no work-arounds to speak of. What I did find was the source of the metric. It is a view called DBA_TABLESPACE_USAGE_METRICS. I had never heard of this one before (looks to be another 10g-ism, and looks very simple and easy to use compared to past ways of calculating tablespace utilization). A quick query on the test database showed that indeed, there was twice as much used space as there was "free space".&lt;br /&gt;&lt;br /&gt;Some further digging I discovered that the TABLESPACE_SIZE field includes the max autoextensible size of the tablespace. In this case, I never altered the max size (It was still 2GB), however 4GB was used. The view was indeed showing 195% utilization. One simple alter later to turn the autoextend off and the view nows shows the correct utilization of the tablespace and the EM alert has cleared.&lt;br /&gt;&lt;br /&gt;What I'm not entirely sure of at this point is if this is working as designed or a bug. I would expect the autoextensible size to be ignored if the actual size of the tablespace were larger. I'll have to check what happens in a 10.2.0.4 database.&lt;br /&gt;&lt;br /&gt;For a good explanation of this somewhat undocumented view, check out &lt;a href="http://www.edhanced.com/ask-mred/?q="&gt;Mr Ed's blog&lt;/a&gt; and his writing on the &lt;a href="http://www.edhanced.com/ask-mred/?q=node/view/176"&gt;DBA_TABLESPACE_USAGE_METRICS&lt;/a&gt; view.&lt;br /&gt;&lt;br /&gt;I thought I would add a quick example of the issue seen to better illustrate.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;SQL&gt; create tablespace test datafile '/oracle/data01/db960/test_01.dbf' size 8M&lt;br /&gt; autoextend on next 8M maxsize 128M;&lt;br /&gt;&lt;br /&gt;Tablespace created.&lt;br /&gt;&lt;br /&gt;SQL&gt; create table test_table (test_column number(1)) tablespace test storage(initial 128M);&lt;br /&gt;&lt;br /&gt;Table created.&lt;br /&gt;&lt;br /&gt;SQL&gt; select tablespace_name,used_space*8192/1024/1024 used_kb ,&lt;br /&gt; tablespace_size*8192/1024/1024 size_kb,used_percent from dba_tablespace_usage_metrics&lt;br /&gt; where tablespace_name = 'TEST';&lt;br /&gt;&lt;br /&gt;TABLESPACE_NAME                    USED_KB     SIZE_KB USED_PERCENT&lt;br /&gt;------------------------------ ----------- ----------- ------------&lt;br /&gt;TEST                                     0         128            0&lt;br /&gt;&lt;br /&gt;SQL&gt; select tablespace_name,used_space*8192/1024/1024 used_kb&lt;br /&gt;     ,tablespace_size*8192/1024/1024 size_kb,used_percent&lt;br /&gt;    from dba_tablespace_usage_metrics where tablespace_name = 'TEST';&lt;br /&gt;&lt;br /&gt;TABLESPACE_NAME                    USED_KB     SIZE_KB USED_PERCENT&lt;br /&gt;------------------------------ ----------- ----------- ------------&lt;br /&gt;TEST                                   128         128          100&lt;br /&gt;&lt;br /&gt;SQL&gt; select sum(bytes)/1024/1024 from dba_free_space where tablespace_name = 'TEST';&lt;br /&gt;&lt;br /&gt;SUM(BYTES)/1024/1024&lt;br /&gt;--------------------&lt;br /&gt;           127.9375&lt;br /&gt;&lt;br /&gt;SQL&gt; select sum(bytes)/1024/1024 from dba_data_files where tablespace_name = 'TEST';&lt;br /&gt;&lt;br /&gt;SUM(BYTES)/1024/1024&lt;br /&gt;--------------------&lt;br /&gt;                256&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;As you can see, the autoextensibility causes the DBA_TABLESPACE_USAGE_METRICS tablespace to report bad results.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6356090992450002225-2940270544071658763?l=piontekdd.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://piontekdd.blogspot.com/2008/05/tablespace-195-full-must-be-metric.html</link><author>noreply@blogger.com (Bradd Piontek)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6356090992450002225.post-5674998569758759263</guid><pubDate>Sat, 19 Apr 2008 03:39:00 +0000</pubDate><atom:updated>2008-04-18T22:56:44.344-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">grid control</category><category domain="http://www.blogger.com/atom/ns#">published reports</category><category domain="http://www.blogger.com/atom/ns#">apache</category><category domain="http://www.blogger.com/atom/ns#">oracle</category><title>Rotate your Logs ... Two birds with one stone</title><description>I have been struggling with getting a custom Grid Control (10g Release 3) report to a) Run on a schedule successfully and b) email it to me  for several weeks.  I spent my customary time troubleshooting the problem myself,  scouring metalink etc and finally resorted to opening an SR with Oracle Support. Two weeks later, and many "run opatch lsinventory -detail" or telling me to check my proxy settings (which I did on my own several times)  tasks later, still no resolution. I decided to shelve the problem and move on to more pressing matters...&lt;br /&gt;&lt;br /&gt;Enter the hand-off of the oncall pager to myself. I was informed that we were getting some late night pages from Grid Control regarding the HTTP_Server within the Oracle Management Station (OMS) itself. I had some free time (and my typical anal-retentive problem solving) and dove into the issue. I was fairly positive our 300 or so target Grid Control environment didn't currently have 10,000 active HTTP requests (and counting). I stumbled upon Metalink Document &lt;span style="font-family:helvetica;"&gt;&lt;strong&gt;436690.1  &lt;/strong&gt;&lt;/span&gt;which seemed like a perfect fit.  Apparently  the Apache requests handled by port 1159 are not on any sort of log rotation and the metrics get screwed up when the access_log reaches 2GB.  I performed a quick look  at the access_log and low and  behold, it was sitting at 2+GB.  A  quick change to the http_em.conf and  httpd_em.conf.template and cycle of the OMS was in completed. My cursory look at the metrics that were causing the pages looked awesome. No whacked out , increasing values.  Out of  nowhere, I started receiving emails of the custom, scheduled report from above.  It was very cool to see them working. A check of the scheduled report jobs, and they were now all succeeding.&lt;br /&gt;&lt;br /&gt;I'll wait until early next week to update the SR and close the SR with Oracle Support.  While they didn't really help me solve my problem and I did 99% of the troubleshooting myself, I did learn about the emdiag toolkit and found some interesting items in that log.&lt;br /&gt;&lt;br /&gt;Next challenge, to get a SQL Server plug-in deployed to a server through 2 firewalls. (Agent is already running with some interesting /etc/hosts work-arounds due to DNS limitations).&lt;br /&gt;&lt;span style="font-family:helvetica;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-family:helvetica;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6356090992450002225-5674998569758759263?l=piontekdd.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://piontekdd.blogspot.com/2008/04/rotate-your-logs-two-birds-with-one.html</link><author>noreply@blogger.com (Bradd Piontek)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-6356090992450002225.post-2160325992061577438</guid><pubDate>Mon, 04 Feb 2008 18:54:00 +0000</pubDate><atom:updated>2008-02-05T20:33:39.927-06:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">launch</category><category domain="http://www.blogger.com/atom/ns#">personal</category><category domain="http://www.blogger.com/atom/ns#">introductions</category><category domain="http://www.blogger.com/atom/ns#">prestidigitation</category><title>Inaugural Post, Prestidigitation of Oracle beta 0.1</title><description>&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:times new roman;"&gt;I have been contemplating starting my own blog for a few weeks now. At first, wondering if it made any sense to add to the already cluttered &lt;a href="http://www.orana.info/"&gt;Oracle Blogspace&lt;/a&gt;. After some serious thinking, I decided, 'why not'. I have a lot of opinions and ideas to offer on a myriad of topics. There's always room for a few more in this space.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The first hurdle was to come up with a name. Sure, I could just use my name, or some variation of my nicknames I've accumulated over the years, but I wanted something new, something bordering on clever. This post initiates the "Prestidigitation of Oracle' blog. The Parlour of Prestidigitation was always one of my favorite rooms at the &lt;a href="http://www.magiccastle.com/"&gt;Magic Castle.&lt;/a&gt; I've always been fascinated by the word itself. It seems fitting for a blog that will more than likely focus on Oracle topics and concepts be revered for its mysticism. Seeing as it one of the most highly customizable, tunable, robust database platforms out there.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So, without further ado, I present Beta 0.1 of Prestidigitation of Oracle&lt;/span&gt;&lt;/span&gt;. I plan on focusing on Oracle topics and things I do on a daily basis for now, with some possible anecdotes on life thrown in.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6356090992450002225-2160325992061577438?l=piontekdd.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://piontekdd.blogspot.com/2008/02/inaugural-post-prestidigitation-of.html</link><author>noreply@blogger.com (Bradd)</author><thr:total>3</thr:total></item></channel></rss>

