What do I do to become a DBA?
I recently met Gianluca Sartori and had a chance to interview him about his experience being a DBA (Database Administrator). You’ll find his answers very insightful. Gianluca has great advice for new comers and shares some great tools and resources. I think you find this article a worthwhile read!
Do you have any advice for people that want to start a career as a DBA? For instance, are certifications a must?
Certifications can be a positive or negative thing, depending on how seriously you take it. Some people cheat the test and simply memorize brain dumps that can be easily found around the web. It goes without saying that cheating won’t earn you any additional knowledge.
However, I question the usefulness of certifications for several reasons. The way the test is structured is questionable: a multiple choice test where all options look the same and differ by a simple comma is a mere reading exercise sometimes. When I took my tests I found some questions where none of the possible answers looked correct to me.
A real-world lab exam would be much more effective, but I understand that it would be too expensive for Microsoft (which is part of the reason why MCM is not available any more).
Nonetheless, if you’re not a cheater, you have to study to pass the exam and that’s a positive thing. Unfortunately, some people study to pass the exam and not to earn real knowledge that would allow you to pass the exam anyway.
However, a certification alone with no experience is not enough. Real world experience beats certification hands down. If you want to start a career as a DBA, try to gain experience with the product, play with it, break things and fix them.
You can download SQL Server Express for free and try large parts of the product without spending a single buck. If you need to try enterprise features you can buy Developer Edition for around $60, install it on your workstation (even better, a virtual machine) and play with it as much as you like.
If you’re a developer, try to get involved in SQL Server stuff as much as you can: talk to your DBA, ask questions, volunteer to help.
Don’t have a DBA? Great: you can be the DBA from now on! That’s how I started my career.
What are some tools or resources that every DBA “worth their salt” should know and have in their tool kit?
I could make a huge list here, but I’ll limit it to the 5 essential tools that will save your life as a DBA:
- sp_WhoIsActive – I can’t find the words to say how useful it is. I’m not the first to say it: Microsoft should make it part of the product and if you don’t install it to every new instance you build, you’re crazy.
- Ola Hallengren Maintenance Solution – It’s an industry standard: it adds intelligence to index maintenance using thresholds to decide whether index rebuild or reorganize is needed based on fragmentation levels. It also can handle backups and consistency checks.
- SSMS Tools Pack – SSMS will never be the same. It adds so many essential features that you’ll wonder how you could live without it.
- SQLPrompt or Apex SQL Complete – You don’t want to type all your SQL, right?
- SQL Sentry Plan Explorer – This little gem will help you analyze your execution plans in many ways. A must have.
Would you recommend that beginners learn traditional SQL and reporting before delving into becoming a DBA? If so, can you explain what are some areas to pay attention to? If not, why do you feel the jump straight to a DBA is feasible?
There are many tasks that a DBA must take care of and in some shops there are multiple DBAs that take care of different things. Some DBAs are more involved in development stuff, like writing and maintaining server-side code or writing reports. Some others are more focused on sysadmin (system administrator) stuff, like security, monitoring, performance tuning and so on.
To answer your question, I think that it will be easier and more natural to jump from development to DBA rather than from server administration, but ultimately it really comes down to what you will be asked to do.
In my experience, developers tend to be less conservative than sysadmins and are less afraid to try new things “just because they can”. With this kind of mindset, you can really hurt your server’s availability.
On the other hand, sysadmins tend to be very conservative and always keep in mind their server’s availability. If you’re coming from development, this is a new focus you will have to get accustomed to.
On the other hand, sysadmins that want to become DBAs have to learn how to query the database and write efficient code, which is not always simple if you didn’t have the chance to practice it a lot in development projects.
What are some good books or website resources you would recommend for beginners to review to learn more about becoming a DBA?
SQL Server DBAs and developers are very lucky: there are literally thousands of free high quality resources available and a vibrant community behind them. When I was working as an Oracle DBA, I desperately felt the absence of such a community and I came to appreciate the SQL Server world even more.
That said, I think that the primary resource for learning SQL Server stuff is SQL Server Central. The site is a bit old-style looking, but it’s simply great. You can find there the stairway series, daily articles on several topics, a test center with the question of the day, a scripts repository, blogs and most of all the forums.
The regulars at the forums are great knowledgeable people that will really try to help. You could get an answer to your questions in a matter of minutes.
Another great resource is Paul Randal and Kimberly Tripp’s SQL Skills website. Their blogs are a fantastic resource to learn SQL Server internals.
For more SQL Server blogs, the place to go is SQLBlog, even if I have to admit that people is blogging less these days, compared to some years ago.
As far as books is concerned, I think that a must have is a free ebook by Jonathan Kehayias and Ted Krueger: Troubleshooting SQL Server: A Guide for the Accidental DBA. It’s free and there’s “accidental” in the title, but nonetheless many experienced DBAs will find useful tips and tricks in there.
Another fantastic book is Kalen Delaney’s SQL Server Internals. If you want to work with SQL Server, you really must know how it works behind the covers.
What is the biggest mistake or pitfall to avoid when getting started as a DBA?
There are so many things that could go wrong when you’re working as a DBA that I don’t even know where to start from! Some years ago I presented a talk entitled “SQL Server Worst Practices” that you can find on SlideShare.
In 60 minutes you can barely scratch the surface, but I think that the points made in that presentation are a good place to start.
To create that presentation I put together over 100 “worst practices” and I chose the most common ones, but I’m planning to start a blog series to describe all the hundred points I had in that list.
I think that worst practices are very important to keep in mind, even more than the best practices.
There are so many best practices on all areas of SQL Servers that it’s very difficult to keep track of them all and sometimes it’s enough to know what to avoid. Moreover, best practices are sometimes obscure and it’s not always clear what happens if we don’t follow them. Showing exactly what horrific mistakes looks like makes things much more explicit and maybe when you’re venturing down a wrong road you might recall that you’ve already seen it pointed out as a worst practice and reverse your decision.
If I was to answer your question with a single item, I would stress the importance of a properly designed database. When the database design is wrong, nothing built on top of it can be good. Even worse, everything you do to fix a wrong database design will be incredibly expensive, because it will affect everything built on top of it.
Gianluca Sartori is a SQL Server MVP, independent consultant and performance tuning specialist. He has been working in the software industry since 1999 and has been working with SQL Server ever since. He also works as a SQL Server trainer and in his spare time he writes technical articles and participates the SQL Server forums. Gianluca enjoys presenting SQL Server topics at conferences in Europe and in Italy in particular. He is currently working as lead DBA at a famous Formula 1 team.
See his blog at http://spaghettidba.com/.