Thursday, April 21, 2005

A Day in the Life of a DBA

Database Administrator is one of those job titles that can mean a lot of different things. Some DBAs are primarily developers with a bit of database background, some have never programmed anything in their lives, some are reduced to being change control implementers promoting code and objects from one database to another, others spend all their time worrying about tapes, backups, and cloning databases, your Oracle E-Business Suite DBAs spend all their time patching, and I'm sure there are lots of other DBAs out there who do all kinds of other stuff.

Whenever someone asks what I do, I never find it particularly easy to explain. Oh, my core job responsibility is supporting the Oracle databases we have at work, but 'supporting' can mean an awful lot of things. What I do can vary widely depending on the day, what fires flare up, and what I feel like doing (to some extent). Over the years at my current job I've ended up focused on a pretty wide variety of stuff.

That's all fine and good, but still pretty vague. So, let's try this. What did Steve do at work today?

  • Researched a PLS-00553 error another DBA was getting while trying to create a new 10g database with the standard database create scripts I wrote. Eventually concluded it was Yet Another Bug with creating a database and running catalog/catproc in the same sqlplus session without reconnecting.

  • Helped another DBA determine why databases hadn't picked up init.ora changes after a cold backup.

  • Worked on a presentation that I have to give on Monday to another group, on how Oracle backups and archive logs work, and how specifically we handle them in our environments.

  • Went to a couple meetings.

  • Wrote a PL/SQL package for another DBA to use for making SOAP calls to a Web Service from within a web application (PHP and mod_plsql). The package does all the generic work of creating a SOAP envelope, header, adding elements, encoding things, checking for fault responses, etc.

  • Spent a while explaining Oracle password files and how the internal and sysdba passwords work with databases on Windows to another DBA.

  • Read the entire Oracle XMLType documentation, a good portion of the XML developers guide, and a whitepaper on XPath queries. Mostly because they were interesting, but also partly to answer questions I had while writing the PL/SQL package mentioned above.

  • Followed up on various outstanding issues, which is pretty much code for sent a lot of e-mails asking for updates

  • Helped two other DBAs plan the upgrade of a 32-bit 9.2 database to 10g on a 64-bit system, where 9.2 is not installed. Also spent a while explaining the differences between locally managed tablespaces that are converted from dictionary managed versus ones that are created as locally managed.

  • Did some bug-fixing in my infrastructure code.

  • Had a rather surreal conversation with another DBA who came to ask about some documentation I had written long ago. There was a question about what something meant, and why it was in a particular order. Eventually it became apparent that the document had been changed a number of times since I wrote it. Then the DBA made a comment that they had actually added the section that was confusing and out-of-order. I assume they didn't know that before they came over to complain.

  • Planned how I was going to write a utility we need to parse and e-mail OS audit trail records.

  • Worked on updating the archive log handling process I wrote so that it can support SQL Server. This doesn't have much to do with the process actually, it is more about adding support for SQL Server to the same code that supports Oracle.

Exciting, no? Try not to trample each other on your way to join the DBA ranks.

I wouldn't necessarily call this a typical day, it was probably a little light on 'traditional' DBA tasks. But it is pretty close, a strange mix of answering questions, development of database-related tools, planning, and troubleshooting.


Scooter said...

Yech. This is why I chose middle tier and UI Microsoft-centric programming when faced with the career decision to follow that path or Data Mining/Warehousing seven years ago (I'd been doing a lot of the later - I stepped back from the abyss at that time). I don't mind databases, but once you start talking cubes, active-passive failover, and scale-out induced data hotspots, I get a little nauseous and start looking for my copy o VS.NET and Textpad.

McBrideFarm said...

Egads, what lingo ye computerish folk speak... The only item on your list I understood was number 4 :)

In my office we've now been mandated to keep tabs on how long we spend working on each of our book projects throughout the day. It's somewhat of a nightmare, for exactly the reasons you demonstrate in your job description- 5 minutes here, 2 minutes there, 25 e-mails relating to 4 different books, throw in 27 minutes of unrecordable "chitchat" time, and you've got yourself a mess of .25 hour segments to add up at the end of the week.

My favorite time segment, frequently recorded by my office mate and I is "SL" time--self-loathing.

Steve Eck said...

Why self-loathing? Shouldn't it be Job-Loathing, or Working-With- This-Particular-Author-Loathing?

McBrideFarm said...

Well, technically yes, but it becomes self-loathing when you look around and realize that you yourself are working at this job, doing this timetracking, and getting abused by authors :) I don't know, we're all about self-deprecation in my office.