Some of you might know that for more than two years we have had an office in Sydney, Australia. Last year, I had the pleasure to travel there to present at the AUSOUG conference and work from our office in Sydney. It’s been a huge pleasure, especially if you consider what was going on back in Ottawa at that time.

Long story short — I’m moving to Australia. My flight from Ottawa leaves in three hours and I’m all packed and ready to go. Today we had a kiss-goodbye lunch at here at the Pythian office in Ottawa, and I was presented my new role Down Under. Hmm . . .  to be honest, I expected it to be somewhat different:

Inmate #8777984426 front

(more…)


I’d like to share some great news — The Pythian Group and Open Query have become partners!

Open Query is a leading provider of high-quality MySQL and PostgreSQL training in Australia and New Zealand. They offer consulting services too, and are also know for their MySQL Graph Storage Engine. Feel free to browse through Open Query web-site for more info.

Open Query was founded by Arjen Lentz, who was employee number 25 at MySQL AB. If you follow the MySQL community then I’m sure you already read Arjen’s blog.

Since you’re reading this blog, I guess you probably already know what Pythian does, but if you want to learn more, please click through to our home page.

Together with Open Query, we are going to extend our service offerings and strengthen our positions in outsourced database management services, consulting, and training.

If MySQL DBA from Pythian goes to Oracle Open World, it would be a shame not to send an Oracle bloke, so there I am — presenting a 90-minutes session on the first day of the OOW 08 entitled Under the Hood of Oracle Clusterware.

I gave it during RAC Attack in Chicago and I’m pretty satisfied with how it went, so there should be no significant changes to the presentation. The session is in “User Group Forum,” thanks to RAC SIG and Dan Norris.

Continue reading 'Alex Gorbachev at Oracle Open World 2008: Under the Hood of Oracle Clusterware'

Interesting results you can see from some low quality news aggregators Looking at this page you might think that I’m awarded with the Liberty Medal:

Libery Medal to Gorbachev

I’ve got this link while browsing the search results for RAC Attack. I guess should ask my granddad to pass my best wishes to Mr. George H.W. Bush.

Continue reading 'Liberty Medal Awarded to Gorbachev'

It’s all over now and I can’t describe how tired I am. As I type it, my flight from Chicago is delayed by 1.5 hour so far (the third delay already, 30 minutes each). I should say that I hate Chicago airport but I digress.

Last night, I left my presentation in a good state and verified the first batch of demos — all worked fine. This morning turned into a disaster as I found out that the rest of my demos stopped working — my 11g RAC cluster on Ubuntu (I have the reason for such unusual setup) got issues with network connectivity. I should probably blame VMware Fusion 2.0 beta combined with Ubuntu but the net result was failing network connections with weird TNS errors and hanging connection requests. Obviously, I couldn’t demonstrate advanced connection management without *simple* connections working.

Continue reading 'RAC Attack — Day 2 by Alex Gorbachev'

I should say that I had interesting experience this evening — a tornado warning in downtown Chicago.

The alarms went off as soon as we tried to get out of the restaurant. Below is a year old example but it sounded exactly like that + it was much darker — like if the skies fell on us:

We had to turn back and were stuck in the pub for another hour or so sipping Guinness while the mother-nature had some fun around us. Funny, looks like it decided to come back now — skies are falling again with heavy rain, clouds and lightnings everywhere. The thunder is very loud and sirens went off again — can’t even sleep. But I digress so let’s get back to the overview of the day…

I love small classes! I mean small rooms with all chairs taken when people are close to me as I present and close to each other. The audience today was exact fit for the room — 20 people could fit on the chairs around the desks and few more (organizers and presenters) next to the back wall. What I like about small classes is the intimate atmosphere in the room. I also like live speech where my voice delivered natively without electronic distortion keeping all the beauty of the Russian accent (some people *still* noticed bits of German influence there).

The only small problem was the location of the stand where a speaker hosts the laptop — it was in the middle of the room. That felt somewhat odd and I kept running between the middle of the room and the stage (well, or the place where it’s supposed to be). I used to the fact that I have another view on my laptop screen — speaker’s view with next slide/motion and my reminders. I also had to do several demo’s on my RAC cluster and I obviously needed the keyboard badly for that. I should apologize that 8 people had to observe my back instead of my face for some time and I also couldn’t see how they were taking the material but I tried to look back from time to time and as soon I did that — I could see confirming nods so thanks for that!
(more…)

Just a quick note that I’m going to present two sessions on the RAC Attack! event in Chicago next week — 4-5 August 2008. The event is organized as two threads — one for advanced RAC DBA’s and another one for beginners. Each thread will have one day of hands-on labs and one day of lectures. Another option would be to choose two days of lectures. More details on the RAC Attack event home page.

I’ll be presenting on both days. The beginner’s presentation will be “Under the Hood of Oracle Clusterware” and the more advanced session is called “Connections! Connections! Connections!”. Now, I’m terribly busy preparing for it — working on the slides (yes, I started earlier than some might expect…) and setting up the live demo.

RAC Attack is organized by IOUG and RAC SIG and, as far as I know, the attendance will pretty good but there are still few places left so you have a chance to register.

What’s for me? Great opportunity to catch up with few old friends and, hopefully, meet some new ones. In addition, I have never been to Chicago so it’s something I really keen to experience while I have a chance.

Back in May 2006, I have started my blog using the Blogger platform and one month later moved it to my own website using Wordpress. Couple month later, I joined Pythian and, since then, the vast majority of my blogging activities has been on the Pythian Group Blog. The Pythian blog has grown significantly since then and many more excellent authors started blogging there. While the Pythian blog was mostly focused on Oracle database just a couple years ago, it's has got very broad coverage now and is including MySQL, SQL Server and Oracle databases as well as Oracle Application Server, Oracle eBusiness Suite and other enterprise software. While I think this is a great opportunity to entend your area of interests, it might be just too much for some as few people already complained and unsubscribed to avoid being overwhelmed with information. That was painful to hear! First of all, I should say that there is a way to subscribe only to a selected category or a single author -- just add /feed/ at the end of pretty much any page. For example, all my blog posts can be seen using URL http://www.pythian.com/blogs/author/alex and RSS feed URL would be http://www.pythian.com/blogs/author/alex/feed/. Likewise, the Oracle category RSS feed is http://www.pythian.com/blogs/category/oracle/feed/. For my personal RSS feed I have come up with another alternative that let me also keep my personal web site more up to date -- I've setup an aggregation of my blog posts from the Pythian Group Blog to my personal web site at www.oracloid.com. If I happen to blog at any other places like the BAAG Party web site, my posts can be aggregated and subscribed using a single feed on my personal web site. The feed has the direct links to the source blog posts so you are sent directly to the source blog from your RSS reader so no additional hops involved. The comments on the aggregated posts are disabled and only the fragments are posted in the syndicated post linking to the source for the full version and commenting. This way all readers end up on the source blog anyway. I should mention that I had to "break" my personal blog feed during that process so that the subscribers of my blog are not spammed with 2 years of my old Pythian posts. Some of you might have noticed that. I had to write couple two-liner Wordpress plug-ins to assist in this process -- I should post them one day in case someone else finds them useful as well. What does it mean to you? If you have this message in your RSS feed then, probably, nothing.
  • You are subscribed to the Pythian Group Blog -- stay this way and chances are you won't miss any of my blog posts and will keep getting other good stuff from our blog.
  • You are subscribed to my personal Pythian blog feed -- stay this way or re-subscribe to my aggregated feed.
  • You are subscribed to my personal website feed -- stay this way or consider subscribing to the Pythian blog feed instead for more great stuff.
  • You are subscribed to the Pythian Group feed and my personal feed so you've got this message twice -- unsubscribe from my personal feed and keep Pythian blog in your RSS reader; this will avoid duplicate messages.
  • You are subscribed to my personal feed on the Pythian blog and my personal web site so you've got this message twice -- unsubscribe from my personal Pythian feed to avoid duplicates.
That's it folks. Thanks for reading! Continue reading 'Alex Gorbachev’s RSS Feeds Aggregated'

We hit an ORA-01450 error today trying to do online rebuild for an index in an unusable state. This was a non-unique index on a fairly large column — VARCHAR2(800 CHAR).

SQL> alter index i1 rebuild online;
alter index i1 rebuild online
*
ERROR at line 1:
ORA-00604: error occurred at recursive SQL level 1
ORA-01450: maximum key length (3215) exceeded

It rang a bell. I remembered that I encountered this issue a while ago, but I couldn’t recall the details. I know that it has nothing to do with the actual data size — it’s an error that can occur during index creation. A single index block must be able to fit at least two index entries, so the maximum index key size defined by the block size and overhead.

The key length is calculated as:

key length = sum of all column lengths
           + number of columns
           + 2 (key length)
           + 6 (restricted ROWID)
           + 1 (ROWID field length)

If I didn’t miss anything, the key length for my index should be 800 + 1 + 2 + 6 + 1 = 810. Hold on . . . we have character length semantic here — let’s check the database character set:

(more…)

If you have created a new Oracle 11g database using DBCA and opted to use by default 11g’s enhanced security settings or, at least, the audit setting, then you risk the unlimited growth of the SYSAUS tablespace that hosts the audit trail table SYS.AUD$. I realized that while reviewing the slides of my presentation on 11g’s new features, a few of which covered security enhancements.

During my presentation at the TOUG meeting later that day, I mentioned that concern, and Mohamed El-Shafie from Oracle quickly noticed that there is no auto-purge. I promised to have another look at the maintenance tasks in 11g to confirm that, and indeed, the audit trail is not purged automatically when auditing is enabled by default.

Here is a quick remedy — scheduling an audit trail maintenance job.

First create a PL/SQL procedure that will accept a number of days to keep. It rounds down to the beginning of the day. I like to dump a few diagnostic messages to alert.log when my maintenance procedures are running, so I included that here as well. (There was a typo in purge data calculation — thanks to Nial for catching it.

create or replace procedure purge_audit_trail (days in number) as
  purge_date date;
begin
  purge_date := trunc(sysdate-days);
  dbms_system.ksdwrt(2,'AUDIT: Purging Audit Trail until ' ||
                        purge_date || ' started');
  delete from aud$ where ntimestamp# < purge_date;
  commit;
  dbms_system.ksdwrt(2,'AUDIT: Purging Audit Trail until ' ||
                        purge_date || ' has completed');
end;
/

Then let’s schedule a new maintenance job using Job Scheduler, which appeared first in 10g. Oracle 11g includes the default maintenance windows group, MAINTENANCE_WINDOW_GROUP, and we will use that to run the purge.

(more…)