As both DBA and DBA Manager (yes the two can co-exist), I manage a fairly large SQL Server infrastructure of roughly 110 servers. I say "roughly" because over time, SQL Server instances tend to come and go. However, on average, my team takes care of the daily management of 110 active servers, throughout a regionally dispersed organization.
How many DBAs would you expect me to have in my team? 2, 4, 6? How many would it take to manage 400, 600, 1000 or 5000 servers? I am happy to say I have a team of 6 DBAs that help me manage 110 servers, so roughly 18 servers per DBA. On paper, this seems to me like a very manageable number of servers per DBA. So why does it seem like everyone on my team has so little time to actually administer their individual servers? Why do they all seem so overworked?
Before I answer that question, I will say that I have formally interviewed, or informally spoke to, many DBAs over the past several years. I always find it interesting to hear their responses to the question: How many SQL Servers do you manage and how many DBAs are on your team?
- 25% of the DBAs I've spoken to are the sole caretaker of 10 or fewer servers, broken down into dev, test and production servers. They are not only the DBA, but also serve as part-time developer, tester, and support engineer. Generally, they moved to the role of DBA by "accident".
- 50% of the DBAs work in a small team of DBAs, usually 4 or under, and divide the load amongst 30 to 70 SQL servers; this is in line with my expectations i.e. roughly 18 servers per DBA.
- 25% manage servers in the thousands, and do so in comparatively small teams.
As you can see, it is very difficult to come up with a definitive ratio of DBAs to servers, as it is so dependent on the infrastructure that is in place, and on the exact role of the DBA in the organization. In a centrally managed environment, like mine, a DBA is not responsible only for 18 specific servers, but for the entire infrastructure. A good proportion of those 110 servers will be critical Tier 1 applications, and as such require round the clock support. That means an on-call rotation for the DBAs, and so each person has to have knowledge of all servers, not just their 18. Cross training is paramount, second only to solid documentation and a fail-proof alerting system. On top of this, there will always be rote and time consuming tasks, such as production deployment of code, building SSIS packages, and handling data migration, which each DBA will have to handle, alongside the inevitable cubicle drive- by requests.
Yes, in a perfect world where all tasks can be automated, failed jobs have the resiliency to restart and report status, developers schedule and script their production deployments, and the phones never ring, 1 DBA can manage 1000 servers. In my world, I am happy to have my 6.
Rodney Landrum (Guest Editor).