What Makes a Good DBA?

Posted in: Technical Track

A few days ago I had a new idea for a blog post. A post about what it really takes to be a good database administrator. I began by researching what others had done on the topic. At the end of this post you will find links to six of the posts I found that provided some insight into this question. Even after uncovering this information, I thought I could add something to the mix from my own experiences. So here we go!

  1. There are some things a good DBA just has to know.I love Google. But I know, however, that it cannot be a replacement for foundational knowledge of your chosen database server. As a MySQL DBA, I must know the differences between MyISAM and InnoDB, between the NDB storage engine and Merge tables. How transactions work is another item. Sure, I can (and sometimes do) google the syntax for a command to make certain I have it right, but foundational knowledge is too important to be left to searches.

    If you are new to the world of MySQL databases, and want to become a database administrator, I recommend that you begin by getting a CMA (Certified MySQL Associate) certification. Getting the knowledge needed to pass this test will go a long way towards giving you the base you need to work effectively in a MySQL-based environment.

  2. There is nothing more important than backups.End of story. Performance tuning and building an awesome server are cool, but this is the bottom line: our data is sacred. Before anything else, you have to make regular backups and you have to make certain that those backups work properly. If you want to know why, read this sad story: CouchSurfing Deletes Itself, Shuts Down.

    Need I say any more? If you want some information about performing backups with MySQL, I humbly recommend you take a look at the June 2008 presentation I did on MySQL backups. There are many other great resources available online about backups on MySQL. Take the time to learn about them, and then implement them!

  3. Monitoring is critical.I don’t care which monitoring system you use, just make sure you have one in place. And make sure it’s working! You should know when a server has too many connections, not enough memory, or if it’s running out of disk space (or a hundred other things).
  4. Continuing education is crucial.This is a consequence of point #1. Things change. Even in the MySQL world. Server 5.1 is going to be GA any day now (how long have we been saying that . . .  oh wait . . .  that’s for another post). You need to know about the important new features of 5.1 now. These include the InnoDB plug-in (very cool!), the event scheduler, and built-in partitioning.

    I hope you already know about them. If you don’t, it’s time to get prepared. This is what test systems are for! One day soon, your manager is going to want 5.1 and you have to be ready to work with it.

  5. At least in the MySQL world, being a good DBA means you contribute back to the community.You don’t have to lead a session at the MySQL Users Conference, you don’t have to contribute patches to the server code, but there are numerous ways that you can contribute. Can’t find something you want to do? Create something. I did just that with MySQL Magazine, and it has been one of the most rewarding things I have ever done.

    You might disagree with me on this, and that’s okay. But I promise you this: whatever you contribute will be returned many times over.

  6. Have fun at your job!If you’re a grouch, you can always work on Oracle . . .  Just kidding. I hope you do what you do because it’s your passion. It is for me. When I manage databases I am protecting clients’ most valuable resource and always learning something new. I get satisfaction from what I do. The money is nice too, but believe it or not, there are more important things.

I hope you enjoyed this. Feel free to tell me how wrong I am in the comments. Add something to list if you want.


How to be a Good DBA – Strategy and Tactics

How to be a good DBA

What makes a GREAT DBA?

The True Test of a Good DBA

How do you tell a good DBA?

Becoming a DBA

Interested in working with Keith? Schedule a tech call.

About the Author

I am a MySQL DBA at The Pythian Group (http://www.pythian.com).

6 Comments. Leave new

Nicklas Westerlund
August 20, 2008 3:09 pm

Nice post Keith, I totally agree with these points, and for number 5, it also feels good to contribute to the community, which in turn leads to number 6 — we do this because we love what we do.

Pythian Group Blog
August 22, 2008 5:29 pm

Log Buffer #111: A Carnival of the Vanities for DBAs…

Crisis has struck! This week’s Log Buffer editor had to beg off at the eleventh hour when his time vanished. It happens. But, in every crisis, an opportunity (well . . .  maybe, maybe not). The opportunity — an open …

How To Be A Good DBA, Take/Test Backups…. « Oracle Admins weblog
August 23, 2008 8:31 am

In terms of the Oracle world, #5 is very true. Actually, regardless of your profession, it is true. You should always give back to your professional community.

While backups are important, nothing is more important than recovery. You do mention the importance of recovery, “you have to make certain that those backups work properly”. All too often, there are organizations that find they cannot recover a down database because their backup is not valid. Tape head issues, software bugs, files not backed up, etc. These types of issues are only revealed when performing a recovery.

A good DBA looks for opportunities to recover their backups when refreshing a non-production database or preparing a new system for an upgrade. Not only do you test the backup, but you also test the recovery procedure so you don’t have to remember some obscure task at 4 AM.

Log Buffer #112: A Carnival of the Vanities for DBAs
August 29, 2008 12:00 pm

[…] Pythian’s Keith Murphy also understands the value of contributing. He ranks that in his discussion of six factors in What Makes a Good DBA? […]

Want To Be A Good DBA? « AristaDBA’s Oracle Blog….
February 4, 2009 5:08 am

Leave a Reply

Your email address will not be published. Required fields are marked *