A DBA makes sure the databases are backed up, well-configured, patched, secure, and fast.
I explain my job to acquaintances by saying, “You know how some web sites are really slow, and their checkout times out, or it loses your data? It’s my responsibility to make sure those problems don’t happen. I’m not the only person involved – there are also developers and engineers – but I’m responsible for the part that holds your data, like your profile, your orders, your browsing history, and all the data that the evil companies have been gathering about you. I’m not sure I’m supposed to say that last part out loud.”
The job duties of a database administrator include:
- Ensure all database servers are backed up in a way that meets the business’s Recovery Point Objectives (RPO)
- Test backups to ensure we can meet the business’ Recovery Time Objectives (RTO)
- Troubleshoot database service outages as they occur, including after-hours and weekends
- Configure monitoring utilities to minimize false alarms
- As new systems are brought in-house, choose whether to use clustering, log shipping, mirroring, Windows Azure, or other technologies
- Install and configure new database servers
- Patch existing database servers
- Deploy database change scripts provided by third party vendors
- When performance issues arise, determine the most effective way to increase performance including hardware purchases, server configuration changes, or index/query changes
- Document the company’s database environment
- Help the company lower their hosting costs by performance tuning, consolidating, and re-sizing
Why is a database administrator important?
When the database goes down, the business stops. If you’re selling things online, and your web site goes down, that’s an emergency. Even if it’s not down – if it just slows down – that can be an emergency too. DBAs help prevent that problem.
When someone accidentally deletes data, the business can stop. Unfortunately, in all too many companies, there are too many folks with access to that data – and those folks are often untrained. They’re just human, and they make mistakes. Database administrators help recover from that problem.
Where do database administrators work?
Since DBAs are involved with protecting important data, you’ll find them everywhere data is important – and these days, that’s everywhere! However, most companies with just 1-2 databases don’t have enough work to keep a full time employee busy. In these kinds of shops, you’ll find a person who spends some of their time doing database administration. We call those folks “accidental DBAs” – they didn’t mean to become DBAs, but they just inherited some of the duties.
The larger a company is, the more DBAs they’ll have. It’s common for big national companies to have entire teams of DBAs.
What’s a typical database administrator salary?
According to our annual Data Professional Salary Survey, DBAs in the United States make an average of $112,880. To slice and dice those numbers or dig into other countries, download the raw data in an Excel spreadsheet.
As with any other profession, folks make more money when they have more experience or live in higher cost-of-living areas.
Can remote database administrators work from home?
They can – and let’s face it, right now everybody’s working from home anyway – but most companies prefer to have their DBAs show up in the office. There’s a level of paranoia around the DBA position because DBAs protect one of the company’s most precious assets: their data. DBAs get pulled into a lot of ad-hoc meetings due to emergencies, and due to the level of severity of those emergencies, managers wanna see faces and lock people in rooms.
Some companies are willing to hire purely remote DBAs, but that’s pretty few and far between. When they do, it’s usually because:
- The company is in a hard-to-reach location – for example, one of my clients is in a small town, and they simply haven’t been able to find DBAs in their local market, nor have DBAs been willing to relocate to this town. The company had to settle for a couple of remote DBAs instead.
- The company wants very specific hard-to-find skills – for example, one of my clients needs serious production experience with Distributed Availability Groups, a rarely-used feature, and there just aren’t that many DBAs in the world with those skills. The folks who have it can dictate their job requirements, like working from home.
But these are exceptions rather than the rule.
What’s a database administrator versus a data analyst?
A data analyst writes queries to get answers from the data, whereas a database administrator makes sure that the answers come back quickly.
A data analyst spends a lot of their time writing new queries from scratch using SQL, reporting tools, or data science tools. They usually work directly with business users, and they know more about what the business does. They know what the columns in the tables mean, and they know how the different tables relate to each other. They also spend time interpreting those results: writing reports, talking to the business users, and clarifying requirements.
A database administrator usually has less business-specific knowledge. They know more about systems that hold the data, like Microsoft SQL Server, Postgres, MySQL, Oracle, etc. A DBA will know which users run which queries the most, and they may even help the data analysts craft better queries, but they’re not usually writing the new queries from scratch.
This gets a little confusing because some businesses just slap the term DBA on everything. “If they’re working in the database, they’re database administrators,” hahaha.
What’s the difference between a junior DBA and a senior DBA?
A junior DBA is doing almost all of their tasks for the first time. They rely on Google for pretty much every task they need to accomplish.
A senior DBA has spent a couple/few years working as a junior DBA. They’re used to doing the common tasks like configuring backups, troubleshooting outages, managing security, and responding to end user requests. That’s not to say they don’t still do tasks for the first time – they often do, and they rely on Google to help them figure things out. But at least half the time, they’re doing things they’ve already done before, and rather than Googling the concepts, they’re Googling the most efficient way to do it at scale, like automating it with PowerShell.
The number of years of experience has nothing to do with whether someone’s a junior or a senior. I’ve seen a lot of people who have 10 years of experience, but they’re still a junior – because they’re still doing exactly the same things they did 10 years ago, the same way they did it back then. They haven’t done any learning on how to automate the more common tasks, or how to accomplish more challenging ones.
What tools do database administrators use?
When administering a single SQL Server, they usually use SQL Server Management Studio. It’s a free tool from Microsoft that’s over a decade old, and was written from the start as the main console for the database server. It’s fairly uncommon to see DBAs using third party tools to manage servers just because SSMS has been out for so long and covers so much functionality. I spent most of my time in here.
When administering lots of SQL Servers, DBAs use PowerShell, usually with the DBAtools.io framework. You can get started learning that with the book Learn PowerShell Scripting in a Month of Lunches.
For writing new code, Microsoft wants us to use Azure Data Studio. It’s like Visual Studio Code, a cross-platform app targeted at writing new stuff from scratch. It can do some administration tasks, but it’s really targeted at developers. I spend a little of my time in here because I write queries for both Microsoft SQL Server and Amazon RDS Aurora Postgres, and Azure Data Studio works with both of those.
What training prepares you to get the first DBA job?
Companies almost never hire DBAs without on-the-job experience. To get that experience, there are two common career paths.
Get a job as a developer first, and spend a lot of time querying SQL Server. As your job progresses, you’ll eventually design new SQL Server objects like tables, indexes, and stored procedures. Then you can gradually become “the database person” in the office, and if it makes sense for your career, gradually transition into a dedicated database administration role.
Or, get a job as a sysadmin first, and as part of your overall server administration duties, you’ll come in contact with database servers. As your job progresses, you’ll install new database servers, patch existing ones, troubleshoot them when they break. You can then gradually become “the database server person” in the office, and if it makes sense for your career, transition into becoming a DBA.
In both cases, you’ll have a hole in your knowledge. Developers may not know the installation & configuration side. Sysadmins may not know the querying side. That’s okay – you can learn the remainder of it when you become a full time DBA.
If you’d like a jump start, I have free YouTube courses on the Fundamentals of Database Administration, and a free Senior DBA Class.
Can freshers get a job as a database administrator?
If you’re fresh out of college, you’re unlikely to go directly into a DBA job. You’re better off getting a developer or sysadmin job as I described above, then working your way into a DBA position.
When you do find companies hiring freshers as remote DBAs, they’re usually training the employee for basic DBA job duties. Be careful here: these jobs are extremely low-paying, and they’re probably not going to get you a great DBA job after that. You’re going to have to leave the company to get a better job, but when you take the “expertise” that you learned from this company and try to use it to get the next DBA job, you’re likely to be disappointed. The company was teaching you a bare minimum of things just to bill for your time, and it’s not really seen as real-world DBA experience.
Are database administration certifications enough to get a job?
In the Microsoft SQL Server world, no: Microsoft’s certification programs like the Azure Database Administrator Associate just don’t accurately reflect what database administrators do. They reflect what Microsoft wants DBAs to learn – because Microsoft wants people to evangelize Microsoft cloud services inside their company.
Sadly, Microsoft certifications just aren’t a good path to get your first DBA job. Instead, focus on getting a job as a developer or sysadmin first, then become “the database person” in your shop, and go from there.
Can you be a database administrator without a college degree?
Absolutely – I dropped out of college myself. However, you’ve gotta be willing to put in the years of work doing development and systems administration first before you get a DBA job.
I wouldn’t use myself as an example of “the right way” to get a DBA job. It’s possible – it just takes a long, long time. I would also say that I’m a DBA because I dropped out of development! I didn’t have the patience to continuously learn new languages and frameworks, and debug in all kinds of different browsers. Database administration was easier for me, so I stuck with that.
If you don’t have a degree, take heart: just get work as a developer or systems administrator instead. It’s going to be easier (not easy, just easier than jumping straight into database administration) and continue following the things you love to do, and avoid the things you hate.
Will DBAs still have a job in the cloud?
I get this question a lot as companies start to consider cloud services like Azure SQL DB.
For the answer, read back through that list of job duties at the top of the post. Several of ’em are indeed covered by self-managing cloud database platforms, but many are not. (For example, if you want to keep your backups longer than 35 days, that’s currently only in preview, and in only some Azure data centers.) In addition, performance pricing starts to become a real hassle in the cloud: as your workloads grow, so do your costs. DBAs can now pay for themselves by helping performance tune workloads to reduce hosting costs.
Is database administrator a good career?
If you’re willing to put in the years of work that it takes in order to gradually move into a DBA position, it’s fabulous. You’re the center of a company’s data, which means you know what’s going on everywhere. You know all of the IT staff, you know what projects are happening, and you can help empower everyone to get their job done.
However, it comes with drawbacks:
- It’s hard to get your first DBA job
- It’s hard to graduate from junior to senior DBA without changing companies
- Most DBA positions are on-call, and the on-call work can be exhausting
- Some DBA positions have tons of responsibilities, but no authority to change things for the better: you’re stuck maintaining a broken system
It’s been a solid career for the last couple of decades, and things look pretty rosy for the 2020s and 2030s. In my next post, I’ll talk about why databases aren’t self-managing yet, and how that affected my last 10 years.
Nice write up!
I am asked this question often! Often followed by, all you need to do is click Next! Next!! Next!!!
Being a DBA with decades of experience, you also learn a huge amount patience to deal with everyone that doesn’t understand what it takes to support the data and what it means to the company.
Thanks Jeff, glad you liked it!
Great information. I have a real challenge with a Development Manager, my supervisor, to explain the importance of day to day database operations. Maybe someone on here can give me new ideas to educate them. Here is a quote recently. “Let me know if there is a conflict, but unless it’s usual “keep the lights on” or an emergency, Projects usually take priority over operational tasks.” I have tried numerous times to explain that one of my dba’s who is my backup in the operations side does day to day ops activities that are important. They want that person to switch to more development role. Can you provide advice? I really appreciate it. Thx
Chris – I would do what your company asks you to do. That’s been a pretty effective guide for my own career. 😉
If you want a job doing something else, find a company that values the work you want to do. Hope that helps!
Brent, I have been a DBA full time for 15+ years, and I can honestly say I struggle anytime someone asks me “So what do you do…” This has got to be the best writeup I have seen, and dead on! I may have to carry this around on me and hand it out when people ask!
Thanks, glad you liked it!
Going to QR code the URL to this post & put it on my business card. Thanks for optimizing sp_BlitzIntroductions Brent!
Thanks, glad you like it!
GREAT article! I am definitely going to be using this as a reference. Thank you!
Excellent summary and useful information.
Right thing to show to my son, who is a university student in engineering/robotics.
Thank you Brent.
Yes, DBA is a good career. I started as a dBaseIII+ developer, learned Clipper & FoxBase and generally grew up with the xBase world. In ’93, I had a client ask me to do an automotive parts catalog in a new fangled product called Microsoft Access 1.0. I said, sure why not? I worked with MS Access for just a few weeks and realized that this was what I wanted to do, and I turned my back on the xBase world. From MS Access I learned Access Basic, from Access Basic I learned Visual Basic 3, 4, 5, 6, .net. At some point, I had to interface with SQL (6.5) and learned the joys of T-SQL & parametrized stored procedures. I implemented many projects with 3-tier client-server architecture into production… and others noticed and asked me to do things in SQL production for them. I became an accidental DBA, but found that I liked it. I’ve crossed the line between developer & administrator many times. Really the only difference is that as a developer I write code for applications & as an administrator I write code for operations, but set policy too. Along the way, I’ve learned the majority of aspects of SQL Server… SQL Agent, SSIS, SSRS, SSAS, SQLCmd, BCP, PoSh, Python, etc. It’s been a continual learning (and forgetting) process for ~ 32 years. I’m in the last 5 years of my career working as a DBA for a small regional bank in NorCal. I’m 64, and I love what I do & I have been able to raise a family and save for retirement. It takes two things to be successful in any career, but particularly I.T. You have to have aptitude and interest. If you have the interest, but no aptitude, you’ll get frustrated and quit. If you have the aptitude, but no interest, you’ll get bored and quit. You have to have both to succeed. Cheers!
Totally agree that getting your first DBA job is HARD. I tried back in 2001, but with a BFA and web development background, companies wouldn’t even interview me for DBA/Database Developer positions even though I’d done a ton of self-education and UCBerkeley Extension classes in databases. I happened to get really lucky in 2005 when a recruiter contacted me about a Junior DBA position open at a large architecture firm. Bingo! I dazzled them with my aptitude and got hired. Still happy with my career choice 16 years later. 🙂 And….Viva SSMS!
I’ve come across one other articulation of what a DBA is, and more lately created one for myself that complements the first one but also works on its own too.
Firstly, “DBA’s serve the data, not the company”. Whilst maybe not intuitive to many, DBA’s generally focus on protecting the company’s data , not specifically the company itself. Anytime that a company asks a DBA to do something that endangers the data, DBA’s will often be conflicted. Understanding that mindset can then help a layman extrapolate from their hat a DBA might do to fill their time, such as protect data via backups, high availability and disaster recovery processes, or distribute it via replication and other technologies. Then you have caring about the integrity of the data itself by setting good security models and enforcing them. And making sure that data is available when needed and as needed by monitoring and optimising performance. To do all the above a DBA has to learn many different technologies and scripting languages to help drive automation and efficiencies of scale.
The second phrase of my own creation, which I think is maybe easier for the layman to understand is “DBA’s are to data, what Infrastructure engineers are to software and hardware that runs the network”. It might not be strictly accurate, but I wanted something that could be related to by others in IT, precisely because a lot of people even in IT don’t understand what a DBA does.
It was a continual bugbear for me that I couldn’t explain well the “why” for a DBA. It was a bit of an epiphany to me to come across the first quote (which now I cant find), but I was happier again when I articulated my own second statement. It feels good to be able to explain in a way I can own the “why” behind my job.
Brent Oyar, I believe zou are becoming an accidental influencer
Nothing accidental about it. 😉
its about 3% of what I do as a DBA and im NOT even a developer
George, I’m trying to make you look good, not bad. I didn’t want to publicly say that you spend 97% of your time on Reddit.
Great article Brent !!! I’ve been in IT for 50 years and a DBA for the last 20. It’s been a career that is challenging and pays extremely well. BTW wasn’t that a picture of you when you were a DBA Manager ?
Brent, insightful as ever. Happy St Patrick’s Day from Ireland. Raising a glass of the good stuff in your direction (I’m more whiskey than yoga..)
Data analysts are the ones who break everything you have done to optimize and tune the database. They can destroy user experience in a production database within seconds, its like: Oops did I really need to test my query in test environment before running it in production.
Great post Brent. I as many of us dba types struggle with how to splain it. I am sending this to my adult children. Saw you on a tv show up in Iceland! Stay warm and thanks for what you do!
Wow! Great post but the comments are almost as good as the article. What a great group of folks have gathered around you, Brent.
Keep up the good works.