Are DBA's Really Necessary?

download Are DBA's Really Necessary?

of 9

Transcript of Are DBA's Really Necessary?

  • 8/9/2019 Are DBA's Really Necessary?

    1/9

    Are DBAs 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 juststarting 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 theonly 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 indexes3. 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 tuningthese.

    5. Tuning rollback segments and redo logging

    6. Managing backups and exports

  • 8/9/2019 Are DBA's Really Necessary?

    2/9

    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 haveconsolidated 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 notusing 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 wentto 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 5countries, 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 ofthe 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 ofthe 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 diskdrives...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...

  • 8/9/2019 Are DBA's Really Necessary?

    3/9

    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 CONNECTare 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 thedatabase

    3. Creating primary database storage structures once developers have designed anapplication

    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 byapplication developers.

    6. Enrolling users and maintaining system security

    7. Ensuring compliance with Oracle licensing agreements8. 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 displayin 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 ServerThe Parallel Query Option in Oracle7, Release 7.1

    The Oracle7 Query Optimizer: Experiences, Tips and Techniques

    The Impact of the Trend of Outsourcing

  • 8/9/2019 Are DBA's Really Necessary?

    4/9

    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 desktopsits descendents are the set top boxesused for getting at the web and email.

    The up and coming technology was client server. We had discussions on Compuserveabout 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 oneof the first Play ondemand 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 theObject 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 nopolymorphism or inheritance.

    In 8 they also added support for LOBs. It was during this time frame that they also addedin 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 andretrieve images into Oracle8 using BLOBs, called "Going Out for the LOB". I still getrequests 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 theOracle 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.

  • 8/9/2019 Are DBA's Really Necessary?

    5/9

    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 Computing100,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 itneeded 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 tableand 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 anddidnt 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 conceptadded 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 usermanagement 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 materializedview? DBAs were needed more than ever.

  • 8/9/2019 Are DBA's Really Necessary?

    6/9

    Oracle9i

    In 2001-2002 Oracle9i was released. I was a part of the Beta and wrote the OracleAdministration 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 datawarehouse technologies, not to mention such things as domain and functional indexes.

    As far as database automation, Oracle provided the ability to automatically adjust sortarea 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 itrevolutionized 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 isnt 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 anapplication

    4. Creating primary database objects (tables, views, indexes) once the application

    designers have designed an application

  • 8/9/2019 Are DBA's Really Necessary?

    7/9

    5. Modifying the database structure as necessary, from information given by

    application developers.

    6. Enrolling users and maintaining system security7. Ensuring compliance with Oracle licensing agreements

    8. Controlling and monitoring user access to the database

    9. Monitoring and optimizing the performance of the database10. Planning for backup and recovery of database information.

    11. Maintaining archived data on appropriate storage devices.

    12. Backing up and restoring the database13. Contacting Oracle Corporation for technical support

    14. Management of object related features

    15. Determination of LOB storage options

    16. Assistance with RAID configuration17. 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 query21. Determine and manage partitions and sub-partitions

    22. Determine proper use of outlines23. 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 snapshots27. Monitoring and managing the automatic and dynamic sizing parameters

    28. Monitoring and managing the automated UNDO (it isnt set and forget)

    29. Monitoring and tuning RAC environments, especially the cluster interconnect30. 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, didnt 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). WithADDM, 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 settingsautomatically. 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

  • 8/9/2019 Are DBA's Really Necessary?

    8/9

    outline feature for SQL provides nearly automatic tuning for bad SQL. In 10g Statistics

    gathering is now internalized.

    Are we doomed? Not quite. Lets 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

    database3. 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 application5. 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 agreements8. 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 options14. Assistance with RAID configuration

    15. Determination of proper index strategy (normal, reverse, IOT, bitmapped)

    16. Education of Developers in Oracle features and their use17. Management of distributed environments

    18. Management of parallel server and parallel query

    19. Determine and manage partitions and sub-partitions20. Determine proper use of outlines

    21. Create, manage and maintain resource groups

    22. Create manage and maintain global temporary tables23. 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 isnt set and forget)

    26. Monitoring and tuning RAC environments, especially the cluster interconnect27. 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.

  • 8/9/2019 Are DBA's Really Necessary?

    9/9

    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 fullyqualified 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 cantafford a full time DBA, or for shops that have hundreds of instances and cant afford to

    have DBAs monitoring and maintaining any but the most important ones, they cant

    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 willthe 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 andmaintaining systems are required, DBAs will be required.

    Are we doomed to become similar to SQLServer DBAs? I dont think so. Oracle has aricher feature set, runs on more platforms, supports larger, more complex databases and

    will always be more of a challenge to manage than SQLServer. From Oracles

    complexity comes its strength. If the complexity of management of Oracle is reducedbeyond 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 choiceof study for database students and can provide jobs for both DBAs and developers for

    years to come.