You are on page 1of 14

1

The Day-to-Day Tasks of the Average DBA


http://bradmcgehee.com/2011/12/08/the-day-to-day-tasks-of-the-average-dba/

DBAs (Database Administrators) perform many different tasks, and one way to explain what a DBA is, is to describe the kinds of tasks they perform on a regular basis. The following lists some of the most common tasks performed by the average DBA, from A to Z.

Auditing An emerging task of the DBA is to identify which users are accessing, inserting, updating, or deleting data, and when. Auditing might only be necessary for limited time periods, for specific users, for very specific data, or it might be required 24/7 for all data. While performing this task, DBAs often have to work with both internal and external auditors.

Application Integration While most organizations use third-party applications, very few of these applications work in isolation. In other words, disparate applications have to be made to talk to one another, often using the database as the means to share data. DBAs often get involved in figuring out the best way to integrate applications. This may include creating custom applications, Transact-SQL scripts, or SSIS packages.

Backup and Recovery One of the most fundamental aspects of the DBAs job is to protect the organizations data. This includes making periodic backups of data and keeping it safe from accidental or intentional destruction. In addition, a well-developed recovery plan needs to be implemented and tested so that when problems do arise, data can be restored quickly.

Business Intelligence/Data Warehousing One of the fastest growing areas for the DBA is Business Intelligence (BI) and data warehousing. This is because more and more organizations are seeking to mine all the information they can, in order to make better business decisions.

Capacity Planning In most organizations, the number and size of databases grows rapidly. It is the responsibility of the DBA to watch data growth, and plan how best to deal with it. This may include archiving it, increasing the size of current hardware, or adding new hardware.

Change Management SQL Server configurations, database schema, Transact-SQL code, and many other facets of the application ecosystem, change over time. It is often the responsibility to the DBA to perform impact analysis before changes are made, implement changes, test changes, and document them.

Database Application Development Many DBAs are really application developers who specialize in writing code to directly access SQL Server. While this is most commonly done using Transact-SQL and stored procedures, it can involve writing other code that is used to access SQL Server data.

Data Modeling and Database Design The foundation of all efficient and scalable databases is good database design. DBAs often create database designs by performing needs / requirement analysis, creating a logical mode, and them implementing the physical model.

Developing and Maintaining Best Practices DBAs should be proactive in their work, and one of the best ways to be proactive is to develop sound database best practices and to implement them. The better organized and managed the database operations, the more efficient they will be. Ideally, an organizations best practices will be documented for all to read and follow.

High Availability A DBA needs to ensure that their databases are available to users when they need access to data. There are many different ways to help ensure high availability, including use of log shipping, clustering, database mirroring, and other technologies.

Installing, Configuring, Patching and Upgrading SQL Server Software

One of the most time-consuming of all database tasks is installing, configuring, patching and upgrading SQL Server instances. While installing and configuring new instances is relatively straight-forward, it can be time consuming.

Installing and Configuring Hardware In some organizations, hardware (the server and I/O subsystem) is handled by dedicated hardware technicians. In others, the DBA is responsible for building, installing, and configuring their own hardware. In addition, DBAs may also perform regular hardware troubleshooting and maintenance.

Load Balancing Over time, the load put on individual databases changes. DBAs are responsible for monitoring workloads and figuring out how to maximize hardware resources to get the best SQL Server performance. This may involve moving a database from a busy server to a less busy server. It can also involve server consolidation or virtualization.

Maintaining Documentation Writing and maintaining documentation is probably the most boring and loathed task that a DBA will encounter. However boring it is, it is still a critical part of the DBAs job. If there is no documentation, then there is no easy way to rebuild the current infrastructure should major problems arise.

Managing Managers A manager needs to be a DBAs ally, not an enemy. It is important for a DBA to develop and maintain good relationships with their manager, and with any other managers in the organization that they work with. Getting along with managers makes it easier for DBAs to get the resources they need to succeed at their job. The same is true for getting along with other managers, as many of them may control resources that DBAs need in order to perform their tasks successfully.

Managing People Many DBAs find themselves in management positions, such as a senior DBA who is in charge of junior DBAs. Some DBAs at large organizations do this full time, while others combine people management with other DBA duties.

Managing SQL Server-based Applications DBAs are often responsible not only for managing SQL Server and its databases, but also any applications that access the database. These varies by organization, but in some places the DBA ends up spending more time managing applications than SQL Server itself.

Maintaining Servers and Databases SQL Server, and the databases running on them, need periodic maintenance in order to run efficiently. DBAs are responsible for ensuring all maintenance gets done on a timely basis.

Managing Test Environments In most, larger organizations, DBAs manage test environments that include test SQL Servers and databases, as well as test database applications. The purpose of this is to allow databases and applications (both in-house and third-party) to be tested before new versions of SQL Server (including patches and service packs), operating systems, or applications are rolled out into production.

Monitoring This is a wide-ranging task that includes many subtasks, such as monitoring performance, monitoring server disk space, monitoring logs, ensuring jobs have run successfully, checking for errors, and so on.

Needs/Requirements Analysis Whether a DBA is involved in development, or just supports third-party applications, they often perform needs/requirements analysis. This can include talking to users, finding out their needs and requirements, and determining the best way to meet them.

Negotiating Service Level Agreements In many organizations, DBAs become involved in negotiating Service Level Agreements (SLAs). A SLA is an agreement between the customer (the owner of the business application accessing SQL Server databases) and the service provider (the DBA team managing the databases). This agreement sets out the criteria that define acceptable service.

Performance Tuning

It is the job of the DBA to monitor performance and to determine ways to optimize database performance.

Project Management Oftentimes, DBAs will find themselves in charge of a large project involving many other people. This could entail writing a new in-house application, or managing the migration of a data center from one location to another.

Protector of the Data While this is not a specific job task, I am including it here because it underlies so many of the DBAs other tasks. DBAs are responsible for protecting the integrity of an organizations data. This not only involves such obvious areas as backup, restores, and high availability, it also includes ensuring that applications dont corrupt data, that hardware doesnt corrupt data, or that users dont corrupt data.

Replicating Data It is very common for data to be moved from one server to another on a regular basis. A DBA will often research various ways in which data can be replicated from server to server, decide upon the most appropriate method, implement the replication, and then manage it once it is up and running.

Report Writing With SQL Server Reporting Services, many DBAs find themselves writing reports against databases. This might just mean writing the Transact-SQL code to extract the data, or it could include the creation and formatting of physical reports.

Running Jobs Virtually every SQL Server has jobs that run on it periodically. These jobs might include backups, data imports or exports, or rebuilding indexes. DBAs are responsible for determining what jobs are needed, creating the jobs, and managing them.

Security

DBAs control who can access data and what they can do with it. This involves creating SQL Server login IDs, database IDs, assigning permissions, moving security between servers, and maybe even implementing data encryption.

Scripting DBAs often write their own Transact-SQL scripts to perform a wide range of tasks, including monitoring and maintenance tasks. In addition, with the advent of PowerShell, many DBAs are writing PowerShell scripts to enhance their productivity.

SSIS/ETL A very common task is to move data in and out of databases and at the same time perform some transformations on the data as it is moved. This is often done for BI applications, data warehouses, and application integration. SQL Server Integration Services (SSIS) is a popular tool DBAs use to implement Export/Transform/Load (ETL) operations in SQL Server.

Testing DBAS perform all sorts of testing, all the time. This can include testing servers, testing databases, testing applications, testing management tools, and so on. DBAs test because they want to ensure that what they do will work, and that data integrity and high availability, is maintained at all times.

Training Users Oftentimes, DBAs need to share their knowledge with other DBAs, developers, or end-users.

Troubleshooting Virtually every day, DBAs are troubleshooting one problem or another. In many cases, when a problem occurs the DBA is expected to drop everything and focus on resolving the problem at hand.

Vendor Relations Many SQL Server-based applications are provided by third-parties, so the DBA often becomes involved with maintaining relationships with these third-party vendors. The DBA will generally perform the initial

installation of the third-party software, troubleshoot problems, and update the application and its database when new versions are rolled out.

Working with Teammates Rarely will a DBA work alone. In most cases, DBAs will be interacting with a very large group of people, including other DBAs, developers, end users, product-knowledge specialists, vendors, accountants, hardware experts, and networking experts.

While this may seem like a long list, it is only the tip of the iceberg when it comes to describing the many tasks of the Database Administrator. If you are a DBA and would like to add to this list, please do so in the comments section below.

http://datatechnologytoday.wordpress.com/2010/07/28/what-does-a-dba-do/

What Does a DBA Do?


Posted on July 28, 2010by datatechnologytoday

If you are currently a DBA, the title of this entry probably made you scoff. But not everyone knows what a DBA is, does, or why they are needed. Wouldnt it be in your best interest as a DBA if your job were better understood and appreciated? Every organization that manages data using a database management system (DBMS) requires a database administration group to oversee and assure the proper usage and deployment of the companys data and databases. With the growing mountain of data and the need to organize that data effectively to deliver value to the business, most modern organizations use a DBMS for their most critical data. So, the need for database administrators (DBAs) is greater today than ever before. However, the discipline of database administration is not well understood or universally practiced in a coherent and easily replicated manner. Implementing a DBA function in your organization requires careful thought and planning. A successful DBA must acquire a large number of skills both technological and interpersonal. Lets examine the skills required of an effective DBA.

General database management. The DBA is the central source of database knowledge in the organization. As such he must understand the basic rules of relational database technology and be able to accurately communicate them to others. Data modeling and database design. The DBA must be skilled at collecting and analyzing user requirements to derive conceptual and logical data models. This is more difficult than it sounds. A conceptual data model outlines data requirements at a very high level; a logical data model provides in-depth details of data types, lengths, relationships, and cardinality. The DBA uses normalization techniques to deliver sound data models that accurately depict the data requirements of the business. (Of course, if your organization is large enough a completely separate group of data administrators may exist to handle logical database design and data modeling.) Metadata management and repository usage. The DBA must understand the technical data requirements of the organization. But this is not a complete description of his duties. Metadata, or data about data, also must be maintained. The DBA must collect, store, manage, and provide the ability to query the organizations metadata. Without metadata, the data stored in databases lacks true meaning. (Once again, if your company has a data administration group then this task will be handled by that group. Of course, that does not mean the DBA can ignore meta data management.) Database schema creation and management. A DBA must be able to translate a data model or logical database design into an actual physical database implementation and to manage that database once it has been implemented. The physical database may not conform to the logical model 100 percent due to physical DBMS features, implementation factors, or performance requirements. The DBA must understand all of the physical nuances of each DBMS used by his organization in order to create efficient physical databases. Capacity planning. Because data consumption and usage continues to grow, the DBA must be prepared to support more data, more users, and more connections. The ability to predict growth based on application and data usage patterns and to implement the necessary database changes to accommodate that growth is a core capability of the DBA. Programming and development. Although the DBA typically is not coding new application programs, s/he does need to know how to write effective programs. Additionally, the DBA is a key participant in production turnover, program optimization (BIND/REBIND) and management, and other infrastructure management to enable application programs to operate effectively and efficiently. SQL code reviews and walk-throughs. Although application programmers usually write SQL, DBAs are likely to be blamed for poor performance. Therefore, DBAs must

possess in-depth SQL knowledge so they can understand and review SQL and host language programs in order to recommend changes for optimization. Performance management and tuning. Dealing with performance problems is usually the biggest post-implementation nightmare faced by DBAs. As such, the DBA must be able to proactively monitor the database environment and to make changes to data structures, SQL, application logic and the DBMS subsystem itself in order to optimize performance. Ensuring availability. Applications and data are more and more required to be up and available 24 hours a day, seven days a week. Globalization and e-business are driving many organizations to implement no-downtime, around-the-clock systems. To manage in such an environment, the DBA must ensure data availability using nondisruptive administration tactics. Data movement. Data, once stored in a database, is not static. The data may need to move from one database to another, from the DBMS into an external data set, or from the transaction processing system into the data warehouse. The DBA is responsible for efficiently and accurately moving data from place to place as dictated by organizational needs. Backup and recovery. The DBA must implement an appropriate database backup and recovery strategy for each database file based on data volatility and application availability requirements. Without a backup and recovery strategy, system and user errors could render a database inoperable and useless. Furthermore, the backup strategy must be developed with recovery time objectives in mind, so that data is not unavailable for long periods when problems inevitably occur. This is probably one of the, if not the absolute, most important database administration task. Ensuring data integrity. DBAs must be able to design databases so that only accurate and appropriate data is entered and maintained. To do so, the DBA can deploy multiple types of database integrity including entity integrity, referential integrity, check constraints, and database triggers. Furthermore, the DBA must ensure the structural integrity of the database. Data integrity is right up there with backup and recovery in importance level. Procedural skills. Modern databases are comprised of more than just data they also contain program code. The DBA must possess procedural skills to help design, debug, implement, and maintain stored procedures, triggers, and user-defined functions that are stored in the DBMS and used by application systems. Extensible data type administration. The functionality of a modern DBMS can be extended using user-defined data types. The DBA must understand how these extended

10

data types are implemented by the DBMS vendor and be able to implement and administer any extended data types implemented in their databases. Data security. The DBA is charged with the responsibility to ensure that only authorized users have access to data. This requires the implementation of a rigorous security infrastructure for production and test databases. Data security comprises both DBMS security (revoke/grant) and security on external resources (file structures, userids, and so on). Database auditing. Being able to report on who did what to which data when, along with how they acted upon that data, is a requirement for many governmental and industry standards and compliance specifications. DBAs need to be involved in terms of setting up and enabling the DBMS for database auditing capabilities. General systems management and networking skills. After a database is implemented it will be accessed throughout the organization and interact with other technologies. Therefore, the DBA has to be able to function as a jack of all trades in order to integrate database administration requirements and tasks with general systems management requirements and tasks (like job scheduling, network management, transaction processing, and so on). Business knowledge. DBAs must understand the requirements of the application users and be able to administer their databases to avoid interruption of business. Without a firm understanding of the value provided to the business by their databases and data the DBA is not likely to be able to implement strategies that optimize the businesss use of that data. Data archiving. When data is no longer needed for business purposes, but must be maintained for legal purposes, the data needs to be removed from the operational database, but stored in such a way that is remains accessible for e-discovery and legal requirements. This is database archiving. Enterprise resource planning (ERP). Enterprise Resource Planning (ERP) software packages place additional burdens on the DBA. Most ERP applications (SAP, Peoplesoft, etc.) use databases differently than homegrown applications, requiring DBAs to know how the ERP applications impact the business and how the databases used by those packages differ from traditional relational databases. Web-specific technology expertise. For e-businesses, DBAs are required to have knowledge of Internet and Web technologies to enable databases to participate in Webbased applications. Examples of this type of technology include HTTP, FTP, XML, CGI, Java, TCP/IP, Web servers, firewalls and SSL. Other DBMS-specific technologies include IBMs Net.Data for DB2 and Oracle Portal (formerly WebDB).

11

Storage management techniques. The data stored in every database resides on disk somewhere (unless it is stored on one of the new Main Memory DBMS products). The DBA must understand the storage hardware and software available for use, and how it interacts with the DBMS being used. As such, DBAs must be able to allocate, monitor, and manage the storage used by databases. The bottom line is that the DBA must be a well-rounded staff member capable of understanding multiple facets of the business and technology. The DBMS is at the center of todays IT organization so as the one tasked with keeping the DBMS performing as desired, the DBA will be involved in most IT initiatives. Did I forget anything? Feel free to log in and add your comments on this topic!

How Many DBAs?


Posted on February 21, 2011by datatechnologytoday

One of the more troubling issues at least when it comes to staffing up a DBA group is how to determine the optimal number of DBAs required to keep an organizations databases online and operating efficiently. Many organizations try to operate with the minimal number of DBAs on staff; the idea being that fewer staff members lowers cost. However, that assumption may not be true. An overworked DBA staff can make mistakes that cause downtime and operational problems far in excess of the salary requirements of an additional DBA. At any rate, I have yet to come across a shop that has a scientific approach to determining when it is time to add a DBA. And lets face it, even if we did who actually believes that management would sign off on adding an open req even if you could back up the need? Even so, determining how many DBAs is optimal is not a precise science. It depends on many factors:

Number of databases. The more databases that need to be supported, the more complex the job of database administration becomes. Each database needs to be designed,

12

implemented, monitored for availability and performance, backed up, and administered. There is a limit to the number of databases that an individual DBA can control.

Size of the databases. The larger the databases that need to be supported, the more difficult the job of database administration. A larger database takes longer to create, maintain, and tune. In addition, more potential for confusion arises when SQL takes longer to execute causing the DBA to spend more time working with developers to tune SQL.

Number of users. As additional users are brought online, optimal database performance becomes more difficult to ensure. Additionally, as the number of users increases, the potential for increase in the volume of problems and calls increases, further complicating the DBAs job.

Number of applications. A single database can be utilized by numerous applications. Indeed, one of the primary benefits of the DBMS is that it enables the sharing of data across an organization. As more applications are brought online, additional pressure is exerted on the database in terms of performance, availability, and resources. As more applications are brought online, more DBAs may be required to support the same number of databases.

Service-level agreements (SLAs). The more restrictive the SLA, the more difficult it becomes for the DBA to deliver the service. For example, a service-level agreement requiring subsecond response time for transactions is more difficult to support than an agreement requiring three-second response time.

Availability requirements. Database administration becomes easier if databases have an allowable period of scheduled downtime. Some DBA tasks either require an outage, or are easier when an outage can be taken. Considerations such as supporting e-business transactions and the Web drive the need for 24/7 database availability. 24/7 availability is often incompatible with certain DBA tasks.

Impact of downtime. The greater the financial impact of an unavailable database, the greater the pressure on the DBA to assure greater database availability. Performance requirements. As the requirements for database access become more performance oriented, database administration becomes more complicated. Type of applications. The type of applications supported has a direct bearing on the number of DBAs required. The DBMS and database needs of a mission-critical application differ from those of a non-mission-critical application. Mission-critical applications are more likely to require constant monitoring to ensure availability. Likewise, an OLTP application has different characteristics and administration requirements than an OLAP application. OLTP transactions are likely to be of shorter duration than OLAP queries; OLTP applications perform both read and write operations whereas OLAP applications are

13

predominantly read-only. Each has administration challenges that require different DBA procedures.

Volatility. The frequency of database change requests is an important factor in the need for additional DBAs. A static database environment requiring few changes will not require the same level of DBA effort as a volatile, frequently changing database environment. Unfortunately, the level of volatility for most databases and applications tends to change dramatically over time. Its usually very difficult to ascertain how volatile an overall database environment will be over its lifetime.

DBA staff experience. The skill of the existing DBA staff affects the need for additional DBAs. A highly skilled DBA staff will accomplish more than a novice team. Skills, more than experience, dictate DBA staffing requirements. A highly skilled DBA with two years of experience might easily outperform a ten-year veteran who is burned out and unmotivated.

Programming staff experience. If the application developers are not highly skilled in database and SQL programming, the DBAs will need to be more involved in the development process. DBAs will be needed for tasks such as composing complex SQL, analyzing SQL and application code, debugging, tuning, and ensuring connectivity. As the experience of the programming staff increases, the complexity of DBA requirements decreases.

End user experience. When end users access databases directly with ad hoc SQL, their skill level has a direct impact on the complexity of DBA. If the end user has few SQL skills, the DBA will need to be initiate more performance monitoring and tuning.

Variety of DBMSs. The more heterogeneous the environment, the more difficult it becomes to administer. For example, acquiring and maintaining expertise in both Oracle and DB2 is more difficult than gaining expertise in only one of them. Moreover, as multiple DBMSs of different types are installed, database administration becomes even more difficult. For example, a shop with DB2, IMS, and IDMS will have to possess relational (DB2), hierarchical (IMS), and network/CODASYL (IDMS) expertise.

DBA tools. DBMS vendors and a number of independent software vendors (ISVs) offer tools that automate DBA tasks and make database administration easier. DBA tasks become less complex with the more tools available and the degree to which they are integrated. In past research industry analysts have estimated that shops without DBA tools might require up to twice the number of DBAs to manage the same workload.

This list of issues notwithstanding, creating a formula that will dictate the optimal number of DBAs to employ is difficult. Back in 1998, industry analysts at the META Group (META Group, Open Computing & Server Strategies, File: 656, Date: 20-Mar1998) tried to establish a loose formula for calculating DBA level of effort. The formula arrives at a level of effort by applying weights to six factors: system complexity,

14

application immaturity, end-user sophistication, software functionality, system availability, and staff sophistication. After measuring each of these items, you plug in values to the formula to arrive at an estimate for the number of DBAs required. Of course, this metric was anything but scientific. How do you rank complexity of systems on an unbiased scale? Same with levels of maturity and sophistication? But I suppose their formula was better than nothing and probably better than just taking a wild guess, which is probably the methodology most companies deploy. What about you? How do you determine how many DBAs you need? Comments are open for your replies!
A Database Administrator (acronym: DBA) is an IT Professional responsible for : Installation Configuration Upgrade Administration Monitoring Maintenance Securing
[1]

of Databases in an organization.

The role includes the development and design of database strategies, system monitoring and improving database performance andcapacity, and planning for future expansion requirements. They may also [2] plan, co-ordinate and implement security measures to safeguard the database.

You might also like