What should a DBA do?
I was thinking recently about what a DBA does, and decided to blog about what I think a DBA could/should do. Most DBAs I know are mired in day-to-day firefighting and time-consuming tedium. This forces them to operate in reactive mode (because they don’t have enough time to “get caught up”), and keeps them from more valuable things they could be doing. Here’s my short and incomplete list:
- Working with the developers (programmers) to help architect upcoming projects. If the DBA leaves design to the developers, then suboptimal designs might be found after the fact. This often happens after deploying to production, where the design impacts the business. Without early input, the DBA also has no chance to assess and prepare for future needs.
- Teaching developers how to work with the database. Many developers struggle to understand databases and SQL, and are unable to fully optimize the queries they write. They also unwittingly write programs with security flaws that could give attackers access to the entire database. Education is a big part of prevention.
- Capacity planning and management. If the DBA doesn’t have enough time to do routine work, he can’t prepare for the future. He needs to ensure that the servers are going to be fast enough and have enough storage space for what’s next.
- Planning and executing upgrades. It’s very important to stay up-to-date, but if you upgrade carelessly, you may hit serious problems. Upgrades take a lot of time and attention, and if you don’t have that, the business is at risk whether you upgrade or not.
- Business continuity planning and fire drills. Backups are only a small part of the overall BCP process. It takes a lot of time and thought, and it’s never finished.
A DBA who’s overworked on tedious tasks gets tunnel vision. He can’t think strategically, he can’t protect the business from risk. Critically, he can’t help the business make the most of other investments, such as the developers. A DBA who’s freed from those things is a resource and an enabler, a critical asset for strategic and tactical planning on upcoming changes to systems, and a risk reducer — able to stop a lot of problems before they get worse, or even before they start.
Some of this is about tools. DBAs with good tools can manage at least an order of magnitude more servers than one with poor/no tools. I know some DBAs who manage hundreds of servers and treat it as unremarkable. They usually have excellent tools to help them, whether self-developed or gotten elsewhere.



I agree with you.
Unfortunately, several mid corporation have raised from the ground with a tiny team where the DBA was also the electrician and the hardware maintainer. He’s just making things work, no more (no optimisation).
In that case, you wont easily move that guy from his place, with the reason to clean his job :-)
rakotomandimby
4 Sep 12 at 12:34 am
Hi Baron,
I like what you have written, but it feels like the first option should be:
“Besides constantly improving the performance, response time and stability of the DB servers, your DBA should…”
Jonathan Levin
4 Sep 12 at 3:03 pm
I would add the following:
6. Writing tools and automation — this is a large part of my job right now; It’s not just taking day-to-day tasks off your plate by automating them, it’s also writing libraries and interfaces that other teams can use to get information and use the databases as well.
7. Security security security — a DBA must care about security of their data, because it’s often neglected. Make sure all sensitive fields are encrypted, and that the keys are handled in a sensible manner. Setting access level to databases, managing users, etc.
8. Enabling developers — it’s not just production, but development environments that often need a lot of attention.
9. On-Call — and the one we all dread the most.
Gavin Towey
4 Sep 12 at 7:04 pm
There is a proactive tuning tool for SQL Server – Qure Optimizer (http://www.dbsophic.com/qure-optimizer.html). Qure Optimizer implements workload tuning which is a proactive approach to tuning the entire database workload. By tuning the entire workload, and not just fire-fighting a single query at a time, DBAs can free themselves to work on more strategic, educational projects etc. (people have said it well above). For a two minute video explaining workload tuning: http://www.youtube.com/watch?v=mz-hAiR5IMs
Disclaimer: I am a DBSophic employee
Inbal
9 Sep 12 at 10:12 am
Why am I being forced to leave a comment before reading the post?
Snoopy
10 Sep 12 at 10:10 am
Snoopy — I have no idea. You shouldn’t be. Write me at baron at this domain if you continue to have trouble and want to help me dig into it.
Xaprb
10 Sep 12 at 12:33 pm