A need to know for a DBA from an Exp person
Over the last year I have interviewed several dozen candidates for Oracle related positions. The positions ranged from entry level developer to senior level DBA. Many of the interviews were for DBA level positions. In this period I learned that it is very difficult to hire, or be hired, as a DBA unless you know exactly who or what you are looking for when you use the title DBA. This paper will attempt to clear up the misconceptions about the Oracle DBA position, specify the levels within the DBA position and give some idea how to interview and be interviewed for Oracle DBA positions.
WHAT EXACTLY IS A DBA?
The position of Database Administrator -- DBA for short -- means many things to many people. In a small development shop the duties are much broader than in a highly stratified major corporation. Whether a company is doing development or adopting a third part package will also determine the needs of the DBA position. Knowing what is expected of the position and knowing how the position envisioned fits within the company hierarchy is critical. In “ORACLE 8.0 Administration and Management” I list the following as a list of DBA job functions:
1. Installing and upgrading the ORACLE Server and application tools.
2. Allocating system storage and planning future storage requirements for the database.
3. Creating primary database storage structures (tablespaces) once developers have
designed an application.
4. Creating primary database objects (tables, views, indexes) once application
developers have designed an application.
5. Modifying the database structure, as necessary, from information given by application
6. Enrolling users and maintaining system security.
7. Ensuring compliance with Oracle License 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 and restoring the database.
13. Contacting Oracle Corporation for technical support.
So let’s see if we can distill this down into some general categories of knowledge:
So to be a full-charge DBA a candidate must be knowledgeable in all of the above areas.
PERSONALITY TRAITS OF A DBA
Many times managers concentrate on technical qualities and overlook personality. Virtually every category shown above means a DBA will have to interface with other personnel, be they vendors, users, developers or managers. This indicates the a DBA should exhibit the following traits:
Why are these traits important?
I have had several underlings that lacked self confidence, they constantly asked my feelings on every decision major or minor and showed no initiative. As a beginning DBA under a full-charge DBA this may be all right but if the person is the full--charge DBA then who are they going to depend on for their decisions if they have no self confidence? Interview questions should include ones on problems and how they were solved. The answers should demonstrate self confidence. One thing to remember is that it is not bad to not know an answer, but to not know where to find an answer is bad.
The Oracle database system is constantly changing. Not all of these changes are documented. Curiosity is a requirement to be a good DBA. If a DBA isn’t curious they are passive and wait for things to be told them. A curious DBA will install the latest version and immediately begin searching out the differences and improvements and how they can be applied to make his or her job better (read easier). A curious DBA will have multiple references they purchased with their own money and will have read them. One of my interview questions involves what references the candidate has and uses. Needless to say if they respond with only the documentation set and haven’t even read that then their stock looses value rapidly. Curiosity will also drive them to understand the Oracle data dictionary and any utilities or packages provided by Oracle. Many of my interview questions deal with these Oracle internals. Lack of knowledge about the data dictionary tables and views and the Oracle provided utilities and packages is unforgivable in a full--charge DBA.
Trouble shooting requires a bulldog like tenacity, getting a hold and not letting go until the problem is solved. Many times a DBA will give up on a problem that would have been solved with the next solution they tried. As a SYSOP for the CompuServe ORAUSER forum I see questions daily that should have been solved by the person asking them, if they were tenacious and curious. I use trouble shooting questions from my own experience and from experiences I see a multiple of times on the ORAUSER and ORASUPP forums on CompuServe.
A self-starting employee is important for any position. Doubly so for a DBA. A DBA must be able to wade in and make things happen, not just wait for things to happen. A self-starting DBA obtains or develops their own scripts to monitor such items as table sizes, tablespace usage, SGA usage in short, all of the items that can get them in trouble if ignored. Questions dealing with level of experience in PL/SQL, SQL and SQL*Plus will show how many scripts the DBA candidate has developed. Some operations in PL/SQL and SQL*Plus are generally only used by DBAs so questions concerning specific techniques will expose those who have written their own scripts and those who haven’t.
Dealing with developers and managers, not to mention users, requires tact. A tactless DBA will make nothing but enemies for your department. Tact has been called the ability to tell someone to go to Hades and have them anxious for the trip. Many times developers, managers and users will make unreasonable requests, the DBA must have tact to field and deflect these requests without burning bridges. How a person acts during the interview process will show their level of tact.
The final trait, being detail--oriented, is very important. Being detail--oriented means that they don’t have to be told to cross check details. It also means they actively document quirks in the installation “Just in case”. The indications of a detail--oriented person are such things as bringing a daytimer or scheduler to the interview, showing up ahead of time, and asking questions that indicate they have researched the company they are interviewing with. This detail-orientation will show up in them knowing the Oracle internals and understanding the relationships between the views, tables and dynamic performance tables. Usually a detail--oriented person will take the time to research the database on their own.
KNOWLEDGE REQUIRED OF A DBA
A good DBA candidate will know all of the areas discussed above. To reiterate the areas of knowledge required for a DBA are:
* Configuration management
* Monitoring and Tuning
* Backup and Recovery
* Trouble Shooting
A DBA must be familiar with both installation and update on the platform that your system is running against. Each platform has its own quirks and idiosyncrasies. A DBA experienced on Windows-NT will have difficulty performing an installation on UNIX or DEC-VMS. Updates can raise havoc with production machines if they are done incorrectly. DBA candidates should be able to answer specific questions concerning installation and upgrade of Oracle systems on your platform. They should exhibit the curiosity to ask about your platform and any modifications to the standard installation that exist upon it during the interview process.
Configuration management involves database sizing, file placement and specification of storage media. A full--charge DBA will be familiar with system topics such as RAID levels, disk sharing, disk shadowing, solid state disks, optical storage and their application to the Oracle database environment. On UNIX they should also be familiar with the cost and benefits associated with use of raw devices and when raw device usage is mandatory.
Understanding Oracle security options is vital to the DBA job. A demonstrated knowledge of system and object level privileges, roles and profiles is required for any DBA. Understanding how the operating system security options interface with the Oracle options is also important. Additional requirements such as use of Secure Oracle and implementation of SQLNET are also considerations.
One of the critical aspects of the DBA job is the monitoring and tuning of the database and any applications. Monitoring and tuning requires a detailed understanding of the Oracle data dictionary, the tkprof and explain plan utilities and understanding how both the cost based and rule based optimizers function. Detailed understanding of what can an can’t be done via indexing, use of hints and SQL statement tuning is vital to a DBA. A DBA candidate should demonstrate knowledge of:
all of these are a part of the Oracle data dictionary. In addition the DBA candidate should have knowledge of the DBMS_* series of packages and how they can be used to facilitate tuning and script development and the UTL*.SQL series of utility scripts and their usage in tuning and monitoring.
A DBA candidate must understand all of the backup and recovery options. Use of the import and export utilities, use of cold and hot backups, all of these are vital topics that a DBA must understand. Interview questions concerning types of database backups used and how the utilities can be used are in order to show level of knowledge in this area. An additional topic that should be covered in this phase of the interview are recovery scenarios involving partial recovery at the table, tablespace and database levels.
Troubleshooting is a binary ability. Usually people will either have the knack or they won’t. Troubleshooting requires an analytical approach where the problem is laid out in discrete parts and each is attacked in a methodological fashion until the problem is solved. Troubleshooting also involves the ability to admit when you don’t know something but having the tenacity to say “But I can look it up”. Questions on troubleshooting must come from real life and should involve multiple steps and thought to solve. Questions on the most difficult problem they have encountered and how they solved it are in order to test their troubleshooting ability.
A final bit of knowledge required of a DBA is the ability to communicate clearly either in word or via written materials. Since a major portion of a DBA job will involve interaction with others on multiple levels within a company environment your DBA must speak, think and write clearly and concisely. A review of their resume with particular attention to any publishing credits will help with determining their abilities in this regard. Presentations at user groups, local or national, magazine articles or just articles in local user group publications all show the ability to communicate. At a professional level look for jobs where they wrote documentation or procedures. Most candidates with advanced degrees such as Masters or Phds will have had to have written and communicate to get to that level of education. Ask them to bring their dissertation or examples of their writing to the interview. Candidates should be sure to bring examples of this type of ability to the interview. The ability to communicate clearly in spoken word is also vital, the ability to take and give instructions and to understand complaints is vital. As qualified technically as a candidate may be if they cannot communicate they will not succeed.
WHAT LEVEL OF DBA DO I NEED?
DBAs range from DBBS level (Database Baby Sitters) to full-charge DBAs. What level do you need? If you place a full-charge fire breathing DBA in a job where all that they have to do is monitor an older version of Oracle and ensure backups are taken they will soon tire of the job and leave. On the other hand, if you hire a DBBS for a position where initiative, drive, tenacity and troubleshooting skills are critical you are asking for trouble. Be sure that you get the right candidate for the right job. I would rather hire a technically in-experienced DBA that showed all of the personality traits discussed above, than a DBBS that could re-write Oracle, if someone told him to that is.
A Database Baby-sitter usually has a good looking resume that is full of projects and jobs involving Oracle. However, most of these jobs will have involved third party applications that were pre-installed and only required monitoring. If they can’t answer in-depth questions concerning the DBA_ views or the V$ tables then chances are they are DBBS rather than DBA level candidates. Another key indicator is a lack of knowledge about the Oracle utilities such as import, export and the tuning tools tkprof and explain plan. A final indicator is lack of knowledge concerning the DBA task related DBMS_* packages.
If all that you need is someone to monitor a third part database application via a pre-configured monitoring tool and only take action when the tool tells them a problem has happened, then hire a DBBS. You will waste a DBA and no one will be happy if you get an over qualified person into a low level job.
If you need a full--charge DBA, don’t hire a DBBS unless they show the curiosity and tenacity to use deep--end learning to pull themselves up to the level of a full DBA. Deep--end learning is like when someone is thrown into a pool at the deep end to learn to swim. Usually there won’t be time to send them to the multitude of classes required to give them full knowledge so they will have to learn as they go. Get them involved with the Oracle forums and user groups and purchase whatever references they require. I suggest a full paper copy of the Oracle manuals which is theirs alone. An on-line reference such as the Oracle Administrator product from RevealNet is also a good idea since it will provide battle tested solutions to many problems. As a last resort the Oracle references on CD can also be used. I have found them difficult to use and their search engine is deplorable, but as a last resort they work. The new HTML based versions are better but still can be hard to search if you don’t know exactly what you are looking for and what manual it is in. One advantage that a product such as RevealNet’s has is that its search engine allows searching of the entire knowledge base, not just one section.
DEVELOPING QUESTIONS FOR INTERVIEWS
Interview questions should be diligently researched and the expected answers listed. Where open ended questions are used the interviewer should have the level of knowledge required to judge the answers correctness. As a guide to questions I have attached a copy of a question set I have used. The questions should be broken into categories and each should be assigned a point value based on either a scale such as from 0-5 or according to difficulty. At the conclusion of the interview technical ability evaluation should be based on the results from these points. Your interview questions should be reviewed by technically competent personnel for accuracy and applicability. In addition you should include questions that are “open-ended” such as “Tell me the most challenging problem you have solved to date?”, or “What is the one item that you have developed that you are most proud of (in Oracle)?”
PRE-QUALIFICATION OF CANDIDATES
Candidates used to have two sources for Oracle knowledge; experience and/or Oracle Corporation training classes. Experience speaks for itself and can be judged as to depth and level. Training was only as good as what the candidate put into it. What I mean by this is that the candidate could either gain much from the experience of Oracle training if they took the will to learn and curiosity with them to class, or, they could take nothing away from the class if they practiced passive learning. Since Oracle training was not graded everyone received certification regardless of participation. Now many vendors offer Oracle classes. Indeed with the plethora of classes available it is difficult if not impossible to judge the quality of training a candidate may have received. One item that will assist hiring managers is the recent introduction of the Oracle Certification Exam offered by Sylvan Learning Systems. This exam tests candidates knowledge in all areas of the DBA skill set. The test was created by battle tested DBAs and in order to pass a candidate will in almost all cases have to have had actual experience as an Oracle DBA and will have to have knowledge from multiple Oracle references. The test was developed by over a dozen experienced DBAs and has been certified against hundreds of DBA candidates. While obtaining an Oracle certification from this exam is no absolute guarantee that a candidate is fully qualified it can be used as an acid test to separate the wheat from the chaff.
Always check a candidates references. Speak to previous employers if possible and find out about a candidates past work history. Many people will interview wonderfully but won’t function in the job.
A candidate who doesn’t take the time put the right foot forward by maintaining a proper appearance probably doesn’t have the wherewithal to perform adequately in the job. Clean appropriate clothing and proper grooming show that the candidate is willing to make the effort to please the employer. Candidates who are sloppy in appearance and mannerisms will bring this to the job and their interactions with other parts of the company.
There is no magic formula for determining if a candidate can perform adequately or to always ensure an employer will properly evaluate a candidates abilities. However, if proper preparation is done by both the employer and candidate then successful hiring or acquisition of a proper position can be made less chancy.
Michael R. Ault
Attitude:Attack every problem with enthusiasam ...as if your survival depends upon it
Well writen stuff. I'll be interviewing a guy tomorrow and I learned something new from your stuff.
Now, one point was never mentioned above. You want to know if the person knows Oracle well, did he just sit in those Oracle ILT courses and stared from the window or did he just use some 3rd party monitoring tools in his previos work or was the work he did quite limited.
There is an OCP certificate that quite well shows what you know as a DBA. Passing those 5 exams (for 8i) means something!