What non-database skills should a DBA have?

  • Hi all

    Bit of a leading question, maybe some background first: We're a small company (~40 employees, about half developers). We host some apps for clients and we have one in-house DBA (this is someone with >10 years DBA experience and multiple MS SQL Server DBA related certifications). I'm the ops manager (fairly new, about 6 months on the job) and I'm having an issue with the DBA. Everybody else is operating at more or less 100% of capacity, but the DBA is doing very little. Part of the problem is that he's just not very pro-active. Part of the problem is also that we probably don't have enough "pure" DBA work to keep him busy. However, there is lots of work in more general system administration / IT support.

    What I'm trying to answer for myself is what is reasonable to expect. For instance, if I'm having an issue with an application that can't seem to connect to an SMTP server. I'm half expecting that a DBA should easily be able to troubleshoot something like this, but that's not what I'm getting. I know it has nothing to do with the database, but rather than getting an outside expert (or doing it myself), I would like the one person in the company who has lots of spare time to work on it and resolve it, but this simply isn't happening. Another example: Our policy is to make full daily backups (overnights) of all client DBs that we're hosting (these backups are made on a separate server in the same datacenter where we host the apps and DBs) and then to download the latest DB backup once a week to a local server on our network. The DBA has been struggling to get the download part automated for more than 6 months now (i.e. since before I started) and it's now a manual task that he spends about a day on every week. There's obviously some network or firewall related issue that's getting in the way of automating it and I'm sure I can resolve it, but I want him to get it done independently and I already have a million other things to do. These are just 2 examples, if they were the only issues I would have just jumped in and helped, but I'm afraid I can't do everything and if I have to then I don't really need the DBA anyway!

    So my questions:
    - Are these examples things that are reasonable to expect from a DBA?
    - More generally, what technical non-database skills do you think are reasonable to expect from a DBA?

    Thanks in advance for the input.

  • nscd - Wednesday, March 7, 2018 6:16 AM

    So my questions:
    - Are these examples things that are reasonable to expect from a DBA?
    - More generally, what technical non-database skills do you think are reasonable to expect from a DBA?

    Thanks in advance for the input.

    I would say that those things are not expected for a pure DBA. But it's reasonable to ask for them and make it clear that it would be expected in the future for him/her to take a wider responsibility.
    The DBA skills don't stop on keeping the backups. There's so much that a DBA can do, that if that person is the only DBA for 20 developers, he's probably not doing everything a DBA can do. Code reviewing, server and query tuning, HA implementation, DR testing, server health, etc.
    The best option is to get a full understanding from both parts on what is expected and what is not.

    Luis C.
    General Disclaimer:
    Are you seriously taking the advice and code from someone from the internet without testing it? Do you at least understand it? Or can it easily kill your server?

    How to post data/code on a forum to get the best help: Option 1 / Option 2
  • It sounds like you need to do some serious level setting about what the job you're expecting him to do really is.  Troubleshooting and solving issues like SMTP or firewall and networking issues is generally not in the DBA description beyond identifying that those are in fact issues.  Now if you really are expecting him to do those kind of things and you want him in more of a jack of all trades sys admin role you should make that clear and let him decide if that's what he's really interested in doing.

  • Thanks for the input so far.

    Maybe just a bit of clarification: I have already spoken to him about this around expectations, being more proactive (esp. identifying additional true DBA tasks that will help the organization), being more involved in general sys admin, and we agreed on this and he was quite keen, so we're a bit past that point. I'm concerned that he's not making progress though and seems to be technically out of his depth when faced with any challenge like this. I'm not expecting a DBA to be an SMTP expert, but if there's an SMTP server that's failing to send mails because the firewall is blocking it then I'm expecting that to be a solvable issue even if it takes a day or two of research and troubleshooting. In my previous experience with DBAs (limited to 4 or 5 people that I've encountered at previous positions), they would all have easily been able to cover these areas, but I'm not sure if that was just luck.

    What I'm trying to get at is what is the norm? Can most DBAs do these things or not?

  • I have been working with SQL Server for over 20 years. More than 15 years ago I would have been more than willing to jump in on network and SMTP issues.  Of course, back then, networks were simpler to work with and understand.  Today, I would be way out of my depth as things have changed a lot since the NT 4.0 days.  I can still trouble shoot issues and tell you when there is a possible network or firewall issue, but fixing it is another story.  I would be more than happy to assist someone more knowledgeable in fixing those problems, but that wouldn't mean I could don't myself in the future without some supervision or guidance,
    Personally, if I was your sole DBA, I would be working hard to make sure I was hardly working.  I love to automate manual processes, for instance.  I would also want to work with the developers who are writing SQL queries, stored procedures, functions, views, etc. so that they could learn and write scalable and performant code.  I am also very interested in learning and trying to implement a DevOps environment that includes the databases and manages Database lifecycle Management.  This is something I would like to do where I currently work, but unfortunately I don't see it happening in the foreseeable future.

    I love working with databases and that is where I like to try and focus my attention.

    Just my 2 cents.

  • The job title of DBA means different things to different people. Luis touched on some of the core responsibilities. My first question would be: what is their job description - what are their documented responsibilities? 

    A DBA is a technical leadership role in my book.They are (or should be) in charge of some or all of databases (depending on the size of company / number of DBAs). That means creating databases, establishing best practices, ensuring that the data is backed up, recoverable, that servers are built correctly; maintained, updated and decommissioned as needed. Establishing security policies, making sure that people have access to what they should have and not having access to stuff that they should not. Few DBAs are going to be experts at everything a DBA does but they should be good at some of those things. IMO, as a DBA your SQL writing skills better be on point - ask him to write a few queries that tell you what time it is, that will say a lot. 

    With respect to the non-database skills: communication skills are key. A good DBA needs to be able to communicate with developers, end-users, engineers, managers and executives. I have known some brilliant DBAs on the tech side with bad communication skills which made them ineffective. The other non-database skill is to be proactive vs reactive. A good example would be: at my first job as a DBA I walked into the wild west where there was no order: everyone had access to everything, people would call me at 2AM saying, "remember that thing you told me not to do? Well I did it - which is why I'm calling you." I did not realize it then but that was mostly my fault.; the person calling should never have been able to have done what they did in the first place

    My $0.02

    "I cant stress enough the importance of switching from a sequential files mindset to set-based thinking. After you make the switch, you can spend your time tuning and optimizing your queries instead of maintaining lengthy, poor-performing code."

    -- Itzik Ben-Gan 2001

  •  Awesome Tee For Database Administrator

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.

    Change is inevitable... Change for the better is not.


    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)

  • Thanks for all the input everyone. What I've realized reading all this is that the bigger problem is really that our DBA isn't proactive. There probably is more than enough pure DBA work, but that is also not getting done, so that needs to be addressed and then we probably need to get a more general sys admin as well to help with the other stuff.

  • nscd - Thursday, March 8, 2018 12:19 AM

    Thanks for all the input everyone. What I've realized reading all this is that the bigger problem is really that our DBA isn't proactive. There probably is more than enough pure DBA work, but that is also not getting done, so that needs to be addressed and then we probably need to get a more general sys admin as well to help with the other stuff.

    If you've actually measured/witnessed that shortcoming, then I totally agree.  With reference back to the T-Shirt I posted though, a lot of people really don't know what a DBA is doing during the day.  One famous (author unknown) kind-of-quote is "What does a DBA do?  You'll find out when they stop doing it".  Of course, that only applies to good DBAs and not skaters (not ice skaters... I mean slackers here), fakers, and posers.

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.

    Change is inevitable... Change for the better is not.


    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)

Viewing 9 posts - 1 through 8 (of 8 total)

You must be logged in to reply to this topic. Login to reply