tags:

views:

1554

answers:

10

Question for you DBA's and such. How do you go about learning the skills to become a DBA without having the 'on hands' or OJT?

My experience in DB work has been messing with MySQL via MyPHPAdmin or something similar. Not doing a ton of in-depth work.

Classes? SQL books?

~V

+4  A: 

If you don't get 'on hands' experience, then you aren't worthy of being hired for such a job. Nothing is stopping you from download MS SQL Express, MySQL and/or Oracle's free version and using them. These are all free and you should get experience with multiple kinds of database servers.

MyPHPAdmin is fine for basic usage but it isn't a great tool, you need to use more serious tools (MySQL Administrator) and learn how to optimize existing tables, indexes, and rewrite existing queries (especially poorly written joins) before you can consider this a possible career.

TravisO
Intriguing... I've never heard of 'on hands' experience ;)
Joe Philllips
I'm just repeating what the OP typed :P
TravisO
+1  A: 

Learning theory is not enough, to get good at something as complex as database managment you must have on-hands experience. You need to experience the pain of challenging database problems and successfully solve them with effort and dedication.

phpMyAdmin is a limited interface for performing some basic maintainence. You need to be in full control of all of the command line options and utilities to consider applying as a DBA. Database modeling, query tuning, high availability, scalability - there is so much to know to be able to manage a production database properly.

I suggest you get a copy of High Performance MySQL (2nd ed.) and start scratching the edge of what's possible. You can read some wisdom from world class DBAs on several blogs. And most importantly, get involved in challenging projects and start gaining experience.

Eran Galperin
+3  A: 

If you're going the self-study route, I would recommend getting a solid grounding in the concepts coupled with as much practice as you can stand. Both are necessary. MySQL and/or PostgreSQL will serve you well, but you will learn most by working directly in the console rather than using an admin tool or a GUI.

As far as books on relational database theory go, I would recommend anything by C.J. Date, particularly the following:

As others have mentioned, there are also a host of real-world issues that you will probably not run up against until you're dealing with a database in production with real data and real users.

Abie
+1  A: 

A lot of DBA's started out as developers who happened to be a little better at SQL than their peers in a given company. As this is recognized they start drawing more and more of the DB assignments, and maybe some DB specific training, until they've worked themselves into the role.

This can be okay for learning things like query tuning and table design, but not so good for DBA tasks like setting replication or back-up schemes, security, role management, server maintenance, server connectivity, reporting systems, olap/analysis, batch job processing, etc.

Some of those responsibilities can be shared with IT staff, but the other items are non-trivial and cumulatively more than you're likely to learn at expert level from the kind of one-week training classes most companies are willing to pay for. So if you find yourself in this position, be careful you don't get more than you bargained for.

Joel Coehoorn
A: 

Nothing beat working with a database which is being used.

With that in mind, you mention that you have worked with MySQL via MyPHPAdmin, is it at all possible to you to spend some time investigating this database and looking into how to optimize it, back it up, and debug issues?

If that's not possible, I'd install your chosen product (Choose one (probably MySQL) to start with), and setup a database of music, books or whatever, and use it as a test bed. Work out how to do all the typical DBA activities, like backup's, optimizing, and debugging.

Buy one or two books, and read forums. E.g. read the TAGs on stack about that product until you can answer questions on the subject.

That should give you a solid foundation to become an actual DBA.

Bravax
+12  A: 

Having been a DBA in a past life (and now in charge of hiring them), I have some thoughts:

How do you know you want to be a DBA without any experience admin-ing a database management system? That's like saying "How do I be an auto mechanic but the closest I've come to working on them is driving to and from work each day"... I'd take a long look at why you like database systems and see if it's on the production (SQL) or the support (DBA) end...

You should not be able to get a job as a production DBA without production, on-the-job experience as a DBA, so don't start applying for any DBA positions.

You may be able to be a junior DBA on a team if and only if you show some experience administrating DBMS's combined with lots of knowledge and/or certifications.

Your best bet is to start at a company as a SQL developer -- chances are there is no dedicated DBA and as you work more with it you can grow into a dedicated DBA.

Or, run a production multi-user application that uses a DBMS as the backend. Run your own website that uses MySQL and keep the DBMS running 24/7 and you'll get enough war stories to prove that you know what you're talking about. Hang out on user forms (such as DBForums) and provide support to other users for production DBMS issues.

Focus on backup/recovery, performance tuning, etc. and that'll be enough to at least get you in the door for a junior DBA position.

Good luck!

Matt Rogish
Thanks for the info and insight!
Valien
This interests me, because I have done work on databases, but from the aspect of a web programmer. But I want to learn and do more.
crosenblum
A: 

If you begin a startup, get mentioned in TechCrunch, bombarded by the TechCrunch traffic, and then your site survives(!) it on Day One, it's a great qualification for a DBA.

Personally, I did almost the same except surviving on Day One. It took about two weeks for the site to be usable.

yogman
+6  A: 

Brent Ozar, One of the StackOverflow team (and Quest employee) has a blog with a "How to become a DBA section". Its well worth a look if you are interested.

John Nolan
+2  A: 

If you want to move into special job X, which is sort of related to software development, consider looking for a development job at a small company. Small companies tend not to have many specialists, so you can wind up doing a lot of different sorts of work. (Some people - like me - like that, some hate it.) Once you have a bit of experience doing X in the course of your job, you can try to expand on it.

The first experience is always the hardest to get, and as others have pointed out will give you some idea whether that's what you want to do or not. After you get your toe in the door, you can build on that.

David Thornley
A: 

I m trying to get one from last one year but not succedded without experience. I have good programming experience in VB.net and good knowledge of oracle but evrybody requires experience. Now i m also puzzleed either I should go for DBA or as a VB.NET Progrmmer. But I can say it is almost impossible to get a DBA job without atleast 3-4 year DBA experience.

Rahul Sharma