Pages

2016-01-14

Major DBA responsibilities

Major DBA responsibilities 


As mentioned previously, a DBA is one of the most important roles in the data driven organization.  This is a high level survey of the major responsibilities of a DBA role. Entire books have been written on this topic. My first attempt at writing a book was an in depth commentary on each of these topics and more.

Protect the data

Backup Backup Backup - And Test Restores
Backup Backup Backup - And Test Restores (Photo credit: Wikipedia)
A DBA has no greater responsibility than the protection of data trusted to his care. There are many details to this, security rights, access lists, perhaps even application level security. Taking backups, testing restores, production change control, understanding code running in your environment.

All of the above, and more, are part of the things that must be understood when it comes to protecting data.

Installation of software

Seldom does a database engine run with no secondary requirements. Often there are supporting tools and even servers needed for a proper data architecture environment. The DBA team, in my experience, usually is the team mostly responsible for all of the data infrastructure like ETL tools, BI servers, and other servers that make up the tools that support the data products developed within an organization.

Configuration of servers

A database has to run somewhere in the data center (or cloud now). Each of these servers should be set up properly with RAID configuration, connected to a SAN, or some type of storage. System administrators do these build outs more frequently than DBA's, but DBA's should be able to take a machine from metal to first class citizen in the environment with only limited assistance from system admins. Tools like Chef and Puppet make this a more automated process in the world of the cloud and virtualization.

Design new databases

While this is generally the forte of the application DBA, there are times when a refactor is needed for your environment. Raw data stored for a number of departments may be better organized into a few tables in order to make it easy for people to work with the data.Tools like SQL Developer Data Modeler, or ERWin should be in the DBA's toolbox.

 

Optimize queries

 "Hey, can you look at this query?" is the email that DBA's may see the most often. Sometimes the answer is obvious, other times require some explain plans, and maybe some review of table-space files. If the database is designed well, then some of these things are just double checked.Sometimes optimizing a query takes quite some time, slow query logs, and monitoring tools are invaluable in spotting problem queries, that could cause a cascading negative impact on performance.


Manage Job Schedules. 

A job is a non-interactive process for manipulating, transforming, extracting, loading, or processing data. These may be a number of ETL workflows for loading a data warehouse, it could be a process for extracting historical data to load into a machine learning model. It could be as simple as a number of jobs that are creating and distributing reports to various business users. These jobs, since they interact heavily with the database need to be coordinated around the normal backup schedule.

Test backups (also test restores)

A few places I have worked, when I started did not have backup test procedures. They ran backups nightly, and made sure all of that data was saved at an offsite location. They just rarely attempted to restore those backups.  If you are taking time to do a backup. Take the time to verify that you can restore that backup and make it work again.


This is really just a tip of the iceberg for all of the details that go into the day-to-day keep the lights on of what a DBA does.

 

No comments:

Post a Comment