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!
- 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.
- 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!
- 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).
- 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.
- 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.
- 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.
What makes a GREAT DBA?