You are on page 1of 9

Are DBA’s Necessary?

By Mike Ault

A DBA retrospective, the changing roles of the DBA since 1990

Since I began working with Oracle in 1990, version 6.0.22, many things have changed.
We have seen an explosion in the number and complexity of database features within
Oracle and in the size and complexity of the databases built with Oracle.

In the early 1990s a VLDB was considered to be around 10 gigabytes and 500 users. The
web, as it currently exists, wasn't heard of. The dialup services such as PCLink (for PC
users), AOL (for Apple users) and Compuserve were the major places you linked up.

Web crawling tools that searched the infant web, then the purview of mostly academics,
we also in their infancy. Most systems were dumb terminal (VT-100, 200, etc) to mid-
range UNIX (SUN, HPUX, Sequent, SGI), DEC-VAX/VMS and Main Frame systems.

All systems were either 16 bit or less so memories were limited as well. Disks were just
starting to get to nearly a gigabyte in size. I remember one 90 megabyte Winchester that
filled about 4U of space in a rack and weighed in at nearly 400 pounds.

Oracle 6

In 1990 I worked for NASA's Advanced Solid Rocket Motor Project in Iuka, Ms. I was
an INGRES DBA jumping from the nuclear industry into the Aerospace/Computer
industry. I was hired, probably because I was the only one willing to move to Iuka, as the
only Oracle DBA for Aerojet Corporation working with a DEC VAX system. We even
had a 100 megabyte solid state drive; I hate to think what that must have cost. We used it
for indexes. Thank goodness for a large number of Oracle training credits…

The biggest version 6 tuning items were:

1. File placement on the individual disks


2. Defragmentation of tablespaces, tables and indexes
3. Determining when to use indexes and when to defeat them (remember null
concatenation? Adding zero? Multiplying by 1?)
4. Tuning the data dictionary with the 22 or so different data dictionary cache
parameters, some sites had DBAs whose sole job was monitoring and tuning
these.
5. Tuning rollback segments and redo logging
6. Managing backups and exports
In version 6 we had 3 system level grants, DBA, CONNECT and RESOURCE, and 12
object level privileges. We had about 112 initialization parameters.

Oracle7

Around 1991/1992 Oracle 7 was introduced. Oracle7 offered a number of improvements,


I even recall some saying it would spell the doom of the DBA job. They dared to have
consolidated the data dictionary parameters so you couldn't adjust them anymore! They
added something called a CBO that would take tuning away! They added hints so you
could tell the SQL what to do, no more of that fooling the application into using or not
using indexes, and what the heck are these statistics?

I left Aerojet just ahead of the closing of the project by Congress to save money. I went
to work for a drug company, Marion Merrill DOW and got to travel to Canada, England,
Italy and France as a part of my job. I also managed about 20 Oracle 6 instances in 5
countries, all from Kansas City, Ks.

It was about this time that I began my first book, "Oracle 7.0 Administration and
Management" mostly because I was tired of having to search through 10 books to get a
single answer. The book was completed in 1993 and published in 1994 and was one of
the first third-party books about Oracle administration. Kevin Loney and I disagree about
who was first, but such is life.

A new thing called PL/SQL was also coming into its own. While it had been available in
6 it was very limited. Also added was the optimal parameter for rollback segments.

From the proceedings of the 1992 IOUW (International Oracle Users World, a blend of
the current IOUG and OOW conferences) let's look at a couple of titles:

- "Macintosh, UNIX and Oracle a Winning Combination" (Right)


- "Using WordPerfect Through Oracle" (Another technology with a future)
- "Fragmentation - A DBA Nightmare!"

And I couldn't help but pull this quote describing a large system:

"One of our database servers is a Sequent Multi-Processor computer with roughly 240
megabytes of memory, 12-50 MHz 486 processors, 12 smc disk drives and 18 qcic disk
drives...with a mix of 0.5, .75, 1.5 and 1.6 gigabyte drives...100M SYSTEM, 200M
TEMP, 200M Rollback tablespaces..."

There were also a number of presentations about SQLForms, SQLMenu, SQLReports


and SQLCase. Also a number about something called constraints...
I hate to say it but I can remember arguing that any SGA over 10 megabytes was
probably oversized on the Oracle Compuserve forum.

It was obviously the days of wooden computers (at least the first Apple had a wooden
case) and iron DBAs...to bad they rust.

We were also given an additional 80 database level privileges to manage, they


deconstructed the DBA, CONNECT and RESOURCE grants to give us more control
over who had what privilege. Even in 10g however, DBA, RESOURCE and CONNECT
are the predominant database level grants I see. The number of types of object level
grants jumped to 23, with multiple sub-grants each. We now had 154 initialization
parameters as of 7.3.

In my book, on page 9, I defined a DBAs job as consisting of 13 basic tasks:

1. Installing and upgrading Oracle server and application tools.


2. Allocating system storage and planning future storage requirements for the
database
3. Creating primary database storage structures once developers have designed an
application
4. Creating primary database objects (tables, views, indexes) once the application
designers have designed an application
5. Modifying the database structure as necessary, from information given by
application developers.
6. Enrolling users and maintaining system security
7. Ensuring compliance with Oracle licensing agreements
8. Controlling and monitoring user access to the database
9. Monitoring and optimizing the performance of the database
10. Planning for backup and recovery of database information.
11. Maintaining archived data on appropriate storage devices.
12. Backing up and restoring the database
13. Contacting Oracle Corporation for technical support

We will get back to these later.

The most excited I have been over a book was when I saw the Oracle 7.0 book on display
in a cabinet at the 1994 EOUG. I remember helping Buffy Emsley by getting her some
additional copies from the local Wiley jobber. Some titles from that conference:

“Database Triggers”
“Adopting Open Systems – And Succeeding!”
“Successful Deployment of Parallel Server”
“The Parallel Query Option in Oracle7, Release 7.1”
“The Oracle7 Query Optimizer: Experiences, Tips and Techniques”
“The Impact of the Trend of Outsourcing”
The EOUG conference was held in Maastricht, Netherlands. It was the first time I
remember seeing Larry Ellison, he was demonstrating the revolutionary Network
Computer that was going to replace all desktops…it’s descendents are the set top boxes
used for getting at the web and email.

The up and coming technology was client server. We had discussions on Compuserve
about exposing databases on this thing called the Web. I was against it…

I went to Rome Italy in 1995 for about 6 months on a Parallel Server 7.1 project to do one
of the first Play –on–demand services for movies and content. It consisted of an
Oracle7.1 front end on Sequents that managed the content and billing and a NCube2
processor with (I believe) 256 processors on the backend that served the digitized movies
to the DTA converters that fed the signal through the phone lines back to the client.
Parallel server was used primarily for failover and backup using a mirror split.

Oracle8

Then in 1995-96 they introduced 8, followed quickly by 8i. This release was called the
Object Oracle release because they provided fledging support of objects through the
creation of types and object tables. They also added VARRAYs, nested tables, index only
tables, reverse key indexes, and a plethora of stored packages. There was no
polymorphism or inheritance.

In 8 they also added support for LOBs. It was during this time frame that they also added
in many tablespace options targeting the many tasks around the fragmentation issues with
tablespaces. Also they gave us support for an up and coming language known as JAVA.
One of my presentations during that time frame was how to use JAVA to store and
retrieve images into Oracle8 using BLOBs, called "Going Out for the LOB". I still get
requests for copies of it sometimes. During this period I wrote "Oracle8 Administration
and Management", "The Oracle8 Black Book" and the Exam Cram series (1998 or so).
On page xxxiv of the Administration book I list the same 13 responsibilities for the
Oracle DBA.

However, I believe we need to add to that list at this point:

• Management of object related features


• Determination of LOB storage options
• Assistance with RAID configuration
• Determination of proper index strategy (normal, reverse, IOT, bitmapped)
• Education of Developers in Oracle features and their use
• Management of distributed environments
• Management of parallel server and parallel query

Oracle8 also included partitioning and a bunch more hints. The Cost based optimizer was
also improved in 8.
Some titles from the 1997 IOUG-Alive conference, Dallas, Texas:

“Database Without Users: Administering a Database for the Web”


“Performance Comparisons Using Bitmap Indexes, Hash Clusters and Histograms”
“Disaster Recovery “Are you Prepared?”
“Getting Started With Java”
“Hiring (or being hired as) an Oracle DBA”
“The RDB7 Path to Network Computing”
“100,001 Users, a Test Odyssey”

Oracle8i

When 8i came out it was so much of a change that Wiley (my publisher) and I felt that it
needed a revision to the 8 management book, so in 2000 I wrote “Oracle8i
Administration and Management”, one of the major innovations was the concept of table
and index partitions. Prior to 8 there were partitioned views which allowed you to treat a
collection of identically structured tables as a single logical table, it was kludgey and
didn’t work very well. In 8i they expanded the partition concept to include sub partitions
and added several column types to the partition capabilities such as LOBs. We were also
introduced to the concept of OUTLINES to control SQL execution. Another concept
added in 8/8i was the concept of resource groups as well as row level security. We were
also given temporary tables in 8i. In 8i we jumped to 194 initialization parameters.

So in 8i we add to the mix of responsibilities:

• Determine and manage partitions and sub-partitions


• Determine proper use of outlines
• Create, manage and maintain resource groups
• Create manage and maintain global temporary tables
• If CBO is used, manage and maintain statistics gathering processes
• Create and manage materialized views, summaries and snapshots

Tuning was now more complex. We had to add in the affects of outlines, the CBO,
resource groups and all of the new index and table types when we thought about
optimizing a system. The CBO, while making some things easier also made getting stable
execution plans more difficult. The shear number of hints made choosing the correct one
difficult. So while the 8/8i release made some aspects of tablespace management and user
management easier, they made many parts of the DBA job more complex. And what is
this thing called cache fusion? What happened to OPS? What the heck is a materialized
view? DBAs were needed more than ever.
Oracle9i

In 2001-2002 Oracle9i was released. I was a part of the Beta and wrote the “Oracle
Administration and Management” book for Wiley, it was the last book I have written for
them. Oracle added many enhancements to the CBO, tablespaces, partitioning, added
external tables, new table management options, expanded object orientation of the DB,
added internalized Java. They also added contexts and operators to the list of objects you
could create. The concept of spfiles was introduced and the ability to dynamically alter
many initialization parameters was added. We were also given fine grained auditing to
play with. The addition of bitmap join indexes enhanced our ability to utilize data
warehouse technologies, not to mention such things as domain and functional indexes.

As far as database automation, Oracle provided the ability to automatically adjust sort
area size, hash area size and their associated IO parameters. Also through use of the
max_sga_size you could dynamically (i.e. the DBA resets them on the fly) alter various
memory constructs. The concept of automatic UNDO (replacing rollback segments) is
introduced.

Also greatly enhanced in 9i was real application clusters, the offspring of Oracle parallel
server. With its concept of cache fusion and use of the high speed interconnect it
revolutionized the concept of parallel databases almost single-handedly. XML and
HTML are essentially native data types. Java is firmly rooted in the kernel. Materialized
views are main stream.

I attended an ECO conference in 2000 where one of the keynote speakers, an Oracle VP
spent an hour telling a room full of DBAs how they were going to be eliminated by 9i.

Adding to our list of tasks:

• Monitoring and managing the automatic and dynamic sizing parameters


• Monitoring and managing the automated UNDO (it isn’t set and forget)
• Monitoring and tuning RAC environments, especially the cluster interconnect
• Manage and maintain fine grained auditing
• Manage and maintain row level security
• Manage and maintain fine grained access controls

So, as of Oracle9i what is out list of DBA tasks?

1. Installing and upgrading Oracle server and application tools.


2. Allocating system storage and planning future storage requirements for the
database
3. Creating primary database storage structures once developers have designed an
application
4. Creating primary database objects (tables, views, indexes) once the application
designers have designed an application
5. Modifying the database structure as necessary, from information given by
application developers.
6. Enrolling users and maintaining system security
7. Ensuring compliance with Oracle licensing agreements
8. Controlling and monitoring user access to the database
9. Monitoring and optimizing the performance of the database
10. Planning for backup and recovery of database information.
11. Maintaining archived data on appropriate storage devices.
12. Backing up and restoring the database
13. Contacting Oracle Corporation for technical support
14. Management of object related features
15. Determination of LOB storage options
16. Assistance with RAID configuration
17. Determination of proper index strategy (normal, reverse, IOT, bitmapped)
18. Education of Developers in Oracle features and their use
19. Management of distributed environments
20. Management of parallel server and parallel query
21. Determine and manage partitions and sub-partitions
22. Determine proper use of outlines
23. Create, manage and maintain resource groups
24. Create manage and maintain global temporary tables
25. If CBO is used, manage and maintain statistics gathering processes
26. Create and manage materialized views, summaries and snapshots
27. Monitoring and managing the automatic and dynamic sizing parameters
28. Monitoring and managing the automated UNDO (it isn’t set and forget)
29. Monitoring and tuning RAC environments, especially the cluster interconnect
30. Manage and maintain fine grained auditing
31. Manage and maintain row level security
32. Manage and maintain fine grained access controls

Yep, they sure eliminated us, didn’t they?

Oracle10g

So now we have Oracle10g. With OEM you can (stress on you) determine badly
performing SQL and have Oracle, at your request, provide suggestions as to the tuning
and after your approval, apply changes. With OEM we now have almost single button
backups (assuming you have been assimilated into the RMAN Borg collective). With
ADDM, AMM, ASSM the monitoring of statistics has been automated and the Oracle
database will give suggestions as to what to tune, you still have to tell it to do the
operations. With AMM memory will be managed up to SGA_TARGET settings
automatically. ASSM removes the need to set freelists, freelist groups and PCTFREE.
PGA_AGGREGATE_TARGET removes the need to monitor various sort and hash
parameters. If you use ASM tablespace management virtually disappears. The new
outline feature for SQL provides nearly automatic tuning for bad SQL. In 10g Statistics
gathering is now internalized.

Are we doomed? Not quite. Let’s look at the list with the items we assume Oracle can
now do for us removed.

1. Installing and upgrading Oracle server and application tools.


2. Allocating system storage and planning future storage requirements for the
database
3. Creating primary database storage structures once developers have designed an
application
4. Creating primary database objects (tables, views, indexes) once the application
designers have designed an application
5. Modifying the database structure as necessary, from information given by
application developers.
6. Enrolling users and maintaining system security
7. Ensuring compliance with Oracle licensing agreements
8. Controlling and monitoring user access to the database
9. Planning for backup and recovery of database information.
10. Maintaining archived data on appropriate storage devices.
11. Contacting Oracle Corporation for technical support
12. Management of object related features
13. Determination of LOB storage options
14. Assistance with RAID configuration
15. Determination of proper index strategy (normal, reverse, IOT, bitmapped)
16. Education of Developers in Oracle features and their use
17. Management of distributed environments
18. Management of parallel server and parallel query
19. Determine and manage partitions and sub-partitions
20. Determine proper use of outlines
21. Create, manage and maintain resource groups
22. Create manage and maintain global temporary tables
23. Create and manage materialized views, summaries and snapshots
24. Monitoring and managing the automatic and dynamic sizing parameters
25. Monitoring and managing the automated UNDO (it isn’t set and forget)
26. Monitoring and tuning RAC environments, especially the cluster interconnect
27. Manage and maintain fine grained auditing
28. Manage and maintain row level security
29. Manage and maintain fine grained access controls

Add to the above:

Monitor and maintain application servers, web servers, connection managers, LDAP and
other servers as well as the entire client to database environment in many shops the DBA
does it all.
Yes, Oracle has taken some of the more mundane tasks and automated them. Quite
frankly most DBAs set many of the “automated” parameters and forgot them unless a
problem came up. What actual percentage of time have the new features saved a fully
qualified and competent DBA? Not much I am afraid. As Don Burleson has said:

“The new automated features of 10g are aimed at the mom and pop shops that can’t
afford a full time DBA, or for shops that have hundreds of instances and can’t afford to
have DBAs monitoring and maintaining any but the most important ones, they can’t
replace a fully qualified Oracle DBA”

However, as the features are improved I have no doubt they will automate the complete
management of SQL, tables and indexes and tablespaces as well as some memory and
tuning parameters. So the DBA will give up on items 12, 13, 24 and 25. Gee, how will
the other 25 (26 if you include the final one added above) items fill our time? The death
of the DBA has been greatly overstated.

The Future of the DBA

In order to prevent ourselves from, as our friends from across the pond say “becoming
redundant” we need to constantly study and upgrade our abilities. As long as Oracle adds
new features, as long as new ways of designing systems, implementing systems and
maintaining systems are required, DBAs will be required.

Are we doomed to become similar to SQLServer DBAs? I don’t think so. Oracle has a
richer feature set, runs on more platforms, supports larger, more complex databases and
will always be more of a challenge to manage than SQLServer. From Oracle’s
complexity comes its strength. If the complexity of management of Oracle is reduced
beyond a certain horizon it will lose its flexibility as well.

I plan on working as a DBA or in support of DBAs until I retire, which I assure you if my
Wife has anything to do with it, many years from now. I believe Oracle is a good choice
of study for database students and can provide jobs for both DBAs and developers for
years to come.

You might also like