When it comes to software and web applications, nobody does it tougher than database administrators. You generally only see DBA’s in their mid thirties because database administration is a highly specialised position that requires a breadth of knowledge across multiple spectrums of databases and to an extent, servers.
What skills a database administrator should have
Ideally a database administrator and in most cases this rings true, started off as a developer and then specialisation in database administration.
- Knowledge of development and how different languages/frameworks interact with a database and write queries
- How to backup a database and or databases as well as being able to restore from a backup
- How to optimise queries (supporting developers to optimise and produce performant queries)
- Benchmarking and optimising a database
- Knowledge of database schema design, when to normalise, when to denormalise and what fields should be indexed.
- How to edit and tune a database configuration file
- Have a complete understanding of how databases work (not just conceptually, but also the theory behind how data is stored and retrieved)
- How scale a database out (sharding, multiple databases, table management, caching, memory management)
- How to properly partition and provision disk space for a database
- Command line knowledge of installing, updating and maintaining software
- Knowledge of how to efficiently move potentially large data-sets between databases without downtime
The list could go on. But the point is, the responsibilities and requirements of database administrators is wide and varied.
The hardest thing is responsibility
In my experience when things go wrong database wise, the DBA’s are easily blamed. It’s rare someone will congratulate you for optimising a query or updating to the latest version of MySQL, but if the database goes down or data is lost (regardless of who is at fault) the DBA will get the short end of the stick.
I have seen instances where bad developers have written poor database queries that have brought databases down and or slowed them to a crawl, but the database administrator gets the blame. Sure, it is the job of a DBA to educate and inform the developers, but it can be hard to stop someone writing a bad line of code before they have written it.
Not only that, but a DBA is responsible for ensuring timely backups, being able to restore a hacked database in a short amount of time and when scaling issues arise and being able to spin up and scale the database to handle the load. The expectations of a DBA are quite high, especially when shit hits the fan.
So next time a DBA makes your life easier, give him a hug or just say thanks.