Roles and Responsibilities of a DBA

This page explains the responsibilities of a database administrator.
To go back to the 50 dba terms for the new dba please click the link.

*********************************************************





A Database administrator has lot of tasks to do on a typical day. Some days can be extremely busy
databases and see if everything is ok , to think if there is anything to be planned for the future like
ordering more disk space,more tapes to store backup etc. In our dba career we had lot of days
which were very very busy and somedays we were just spending our time relaxedly chatting,going to
which were very very busy and somedays we were just spending our time relaxedly chatting,going to
the coffee rooms etc. Ok , below is a list of various tasks that as a new DBA or an experienced dba
you are expected to do. We are going to explain about our experience so it will be easier for you to
understand.


Our company has development databases , pre production databases and production databases.
We have development DBA's and Production DBA's. Development DBA's take care of the
databases in our development environment. We are the production DBA's and we take care of the
pre production and production databases.

Our company uses a ticketing system. When our business users or other users using our databases
have any problem, they call the Help desk. Help desk people enter the problem details,database
name etc into the ticketing system and a ticket is created. This ticket is sent to us as we are the
production DBA's. So everyday as soon as we go to the office we open the ticketing system to see
if there are any tickets for us. If there are tickets then that means there are problems with some
databases. We read the ticket to find the database name and then we look at our documentation to
get more information for that database. Then we work and fix the issues on that database.

We sometimes get requests from the development team to create a new database on the
pre-production environment.The development DBA creates the necessary scripts for the creation of
a database and we review the scripts and correct them if there are any mistakes. Then first we
create the Oracle version that the development team wants.Our company uses 10g so we installed
the 10g database binaries on the preproduction server.Then we executed the scripts which the
development dba sent to us.Once this task is done we inform the development team to check if
everything is ok and if not to let us know so we can fix any problems.In small companies there will
be one DBA who is expected to manage both the development databases and the production
databases.In big companies you normally have seperate DBA's handling different databases.

We backup all our production and preproduction databases using rman.We have some automatic
monitoring scripts which check automatically every day if the backups finished successfully.If there is
a problem with a database backup the monitoring scripts send us automatic emails informing us that
a particular database backup failed. Then we log in into the server and fix the issue.

Sometimes we get requests from the development team that they want the production database
copied into the preproduction database.Then we ask them to send a mail to us with the system
owner approval.Production data is very sensitive so we need system owners approval before the
production data can be copied into the preproduction.Afterwards if the database is small we do an
export and then import the dump into the preproduction database.If the database is big then we use
rman to clone the database on the preproduction environment.After finishing our work we inform the
development team.

Sometimes we get requests to export the production database and to copy the dump into the
development server and we do it.Then the development dba imports the dump into the development
database.

Every 3 months once we schedule our database backup and recovery test. This test is to be sure
that our databases can be recovered successfully from the backup. We use a test server and test the
different recovery procedures by using RMAN. We first destroy either the control file or data file
and use rman to recover the database from the latest backup. We document these procedures so
the next time if due to some reason the production database is destroyed we follow these
procedures to successfully restore the database.That is why as a DBA you ahould always have a
good backup and recovery procedure. We know of DBA's who lost their jobs for not taking care
of this.

We also do lot of other administration tasks like increasing the tablespace size, adding datafiles to
tablespaces , adding users to the database,  unlocking user accounts , changing users
passwords,writing automatic scripts to clean up all unwanted log files in the bdump , cdump and
udump directories.

We also advise the development teams to improve their database design , to improve their SQL
statements and any database problems which they might have.

Lot of times when the business users complain to us that the application is performing slowly we first
check if there are any error messages in the alert
sid.log file. The sid in the name is replaced by our
database name. If there are any errors then we verify whether that could be the reason .Performance
tuning is the complicated part of database administration.You should understand the internal
workings of oracle to be able to solve them.Lot of times its because of the statistics on the
underlying tables.Probably the statistics job has failed gathering the statistics due to space problem
or some other problem.If we dont see any problem with the statistics job then we ask the users
which screen or query is giving the problem.If possible we ask the development team to give us the
query.Once they give us the query we run explain plan on them and try to see the execution plan.
Then we see if the cost of the execution plan is high or low.If it is high we see which objects are the
reason.So this is a complex process which with pratice you will be able to master.If everything looks
ok on the database level then we have to ask unix team if everything is ok or we can run the top
commands on the unix server and see whether there is any problems with the memory or swap
space.If there is no problem with the server then it could be because of the network.So performance
problems need to be analyzed carefully as the problem could be in the database , on the server , due
to the network , due to the web server or due to the client machine itself.

We also work with our storage group to plan harddisk space usage for our databases.We talk to
the development team and the business team to understand their space needs and also look at the
space usage of the databases as it was in the past.Based on this we will be able to plan effectively
the storage requirements for the coming year.

We do oncall for the production databases.The normal business hours are from 8:30 am to 5.30
pm. So each week one person from our team is oncall.This means if there are any database
problems occuring after 5.30 pm then the person is called on his mobile and he/she has to come to
office within 1 hour.

The above information summarizes the various administration tasks that one might do on a typical
day. ofcourse if there are lot of problems and the time is insufficient then the dba has to prioritize his
work and work on it.


For detailed information click on the oracle document explaining the
tasks of a database
administrator


To go back to the 50 dba terms for the new dba please clink the link.