Database Admins, I need your help...

I am wondering what the next step in my career should be, so I thought I’d ask the folks at the SDMB what they though would be a good choice.

At the moment, I am a data miner. For those of you who don’t know what this means, as quick explanation: I retrieve custom data samples from our database for our clients.

However, I don’t know that I want to be a data miner for the rest of my life. I was thinking of trying to become a DBA (Database Administrator), but I am not sure what this job is all about other than it seems to pay well and it deals with databases.

Could someone tell me a little more about the every day activities a DBA has? How about a typical day? What kinds of skills would I need? Is there a training class or a college degree that is most helpful? For those of you who are DBAs, do you like your job? What do you hate most about your job?

I appreciate any advice you can provide.

Thank you all so much!

I’m not a DBA, but here’s what DBAs do for me:

  • I design data structures for an application, and the DBAs redesign them to be more efficient. This includes data types, table structure, linking between tables, knowing what to index and what not to, etc.

  • I design SQL queries to manipulate the data I need, and the DBAs redesign them and develop stored procedures to save me from myself. They also make sure all the permissions on the data are set so no one can do more “manipulation” than they should.

  • The clients scream that the database is too slow and I relay to the DBA (because it couldn’t possibly be a middleware problem). The DBAs work their magic and things work better.

  • The database server crashes into a steaming pile of melted components, and the DBAs get it back online in moments because they’ve designed and implemented adequate backup procedures. Better yet, the server fails and I never notice because the DBAs set up data replication and automatic failure rollovers.

Like many jobs, the goal of a DBA is to have no one notice the database. If everything works properly, the data is available and everyone takes it for granted. I’m sure a real DBA will be along shortly to enumerate what that entails.

DBAs are database doctors.

Big databases are delicate things. They need to be pampered sometimes. They need optimized. They need repaired. They need improved. They need backing up.

Big databases are complicated things. Sometimes when they’re sick or just sluggish it’s not obvious why. And even once you have figured out what’s wrong there’s often a number of ways you can cure it. Which one do you use?

Big databases can’t afford a day of work. If they’re sick you need to get them back on their feet quickly. Often a business’s survival depends on it.

Database administration is a very skilled job and the best DBAs can earn massive amounts. Some might call it a bit boring though. :slight_smile: I am not a DBA.

Training and qualifications depend on what database you want to specialise in. But you can’t go wrong training for Oracle DBA certification. It isn’t easy, can take years, and is certainly not cheap. But the idea is you’re paying for the qualifications now and reaping the benefits of the high salary later.

If you want to be a DBA, you have to understand database design principles. A lot of people seem to like this book for learning about such things. Be forewarned that it’s not a simple book to read, but then again, database design is not a simple field.

Meat,

 I've been a DBA for the last 10 years and it's been a pretty good life. I think the most important trait to have is to be a good self-starter. If you get on the job and write scripts to manage your servers you'll more than likely have a pretty nice time of it. Database software is unnaturally buggy so most of your downtime will be because of various vendor bugs and such.

 I think the best way to become a DBA is probably just to ask for some training. My database of choice is Informix but I must admit you'll have many more opportunities as an Oracle DBA, not to mention that it seems a lot of Oracle shops will hire less experienced DBA's and provide OJT.

 The most important skill you must have is basic trouble-shooting, after that I'd reccommend knowing a ton of UNIX. Scripting will save your life(and tons of time) in this field. If you have any other questions or need any other advice feel free to email me at ifmxdba@yahoo.com.

I’m a very good part-time data miner, being shoe-horned into a DBA role at work (essentially a poor man’s CIO/CTO). I don’t have the training to be a DBA, and I have an expensive contractor that I usually escalate issues I can’t grasp to.

What this all leads up to is that jumping from data mining to administrating is NOT an easy task. I consider myself to be pretty bright, though not quite a savant with all things computer. I’ve self taught web developemnt, SQL and data mining, and a handful of common use languages. I also have been successful when I need to try and sniff around skills that I don’t have to find bugs (i.e. perl and UNIX). However, I am having a tough time getting the knack for effective DBA work.

I can do alot of little things, usually can visualize effective data structures, set up triggers and stored procs, assign users and permissions, bulk copy data, and various other DBA tidbits. I however cannot call myself a DBA because the really important issues are beyond me. Part of that issue is my cursory knowledge of UNIX systems, but I think it all boils down to the fact that a DBA must not only be a expert as his job, but a jack-of-all-trades regarding anything that the system interacts with. This is where the good ones shine.

As has been mentioned a good DBA really must be skilled with UNIX and scripting. IMHO a good DBA is also a good system administrator, so much of the workings of a database rely on the working of the machine it resides on that its impossible to divorce the two. Most back-up solutions are going to rely on some type of scripting, and backing up is the first and most critical aspect of being a DBA.

To get to the point, think being a DBA is an excellent job, and being a data miner is a good start. However I don’t believe its something that can be taught on your own, or learned from a book. You could probably learn enough to get by, but this is one of the few topics that I feel it very important to learn in a structured supervised environment.

It really would help to know the fundamentals of relational database design, much more so than in most CS fields IMHO. DBA work is very logical and orderly, and once you understand it, you’ll generally be good at it, but getting across that boundry is a daunting task.

Hope this isn’t too scattered and makes some sense.

Thank you!

I really appreciate all of the information you folks have provided thus far - I’m starting to realize how great this board really is.

I’m also starting to realize that becoming a DBA isn’t a ‘simple’ as learning SQL was. I am pretty sure this is something I want to pursue - I love databases and am attracted to the orderly, logical nature of the position.

What I need now is to determine what sort of training I need, how long it will take to complete the training, and how much the training will cost.

If anyone can provide me with information about a good DBA training program in the bay area, I would be very greatful. I’ve looked on Google for training programs, but I don’t trust the results I’ve gotten so far.

Omniscient - If you don’t mind, could I contact you via email to discuss this topic more, as well?

Kaotic Newtral Thanks for the offer - I will be contacting you via email in a day or so.

You guys rock!

freshmeat

I’m an Oracle DBA. To echo and expand upon what other people have said:

Database software is very complex. Oracle, for example, has many software “tuning” options. Writing ANSI SQL only will not get you very far. You would need to be familiar with the Oracle proprietary features and Oracle’s programming language.

A good DBA will be expected to be knowledgeable about hardware issues as well. e.g. Would a Raid disk installation or an EMC disk farm be beneficial for your application? How should you separate the different files amongst your mount points? Will the database be OLTP or Data Warehouse? How much RAM and how many CPUs will your server need to handle a database with X users accessing it simultaneously?

You will need to be familiar with the different kinds of uses for the database. In the Oracle world, people might ask you “Have you worked with an SAP, Peoplesoft, or Oracle Applications installation?” What about a database behind a web server?

How do you install Oracle software? How do you patch an Oracle installation? How do you recover from a disk failure? What will your backup procedure be? (That will most likely depend on the recovery time expected by the users, and the allowable amount of data loss.)

Do you enjoy being on call? In most database positions, you are on call 24x7. Any maintenance typically has to be done in off hours or on the week-end. If the database crashes in the middle of the night, you will be expected to fix the problem before the users start accessing it in the morning. Many companies will expect those extra hours to be unrenumerated.

Many companies will prefer hiring someone with several years’ experience over someone with an Oracle certification. The trick is gaining those years of experience. The best way IMHO is to transfer within your company to a junior DBA position. Otherwise, see if someone will be willing to hire you as a junior DBA. Failing that, start out as an Oracle developer and then switch over to DBA.

As an Oracle DBA, I am biased towards Oracle. But I would suggest trying to learn either Oracle or Microsoft SQL Server as a first step. From the literature that seems that one of those two options will bring you the most employment opportunities.

I’m not trying to scare you with my post, but be aware that being a DBA is not all fun and games. It can pay well, and job security is fair, but it’s a lot of hard work. And it is difficult to gain experience. Setting up an Oracle database at home is a different level of difficulty than installing Visual Basic and writing a few programs.

Just to add a little context to the mess, I do all my work with Sybase now, and my infant SQL years were on a Oracle server.

freshmeat, feel free to email me.

Just keep in mind that being a DBA is a very good, high paying job, but it’s that way for a reason. As Arnold said, its difficult to learn and gain experience in doing. Databases are usually the life blood of a company, and not too many places are willing to let a new guy get his feet wet on their DB, because the company will really feel those growing pains.