How to become a DB Admin in two weeks?
May 15, 2008 1:26 PM   Subscribe

How to become a DB Admin in two weeks?

I am a jack of all trades IT guy, master of some, and a very fast learner. I am OK Linux user on Fedora\Ubuntu if that helps at all.

I'd like to learn how to build, scale, and deploy great databases in MySQL in a short amount of time. I want to be a competent database administrator.

Nothing blows up if I don't learn this in two weeks; I am just throwing a number out there.

Can anyone recommend anything that sped up this process for them? Any really good books, online resources that worked well, methods of attack, etc?

Thanks in advance.
posted by zephyr_words to Computers & Internet (8 answers total) 19 users marked this as a favorite
I dont think you can become competent DBA without hands on learning in a large production/test environment. I'd say go find an entry level SQL/DB job and learn as much as can.
posted by wongcorgi at 1:48 PM on May 15, 2008

If you learn on MySQL, you will be a MySQL admin, not a DBA.

To really learn, you need a proper database, and a large test environment with effective ways of creating load and measuring performance.
posted by Project F at 2:36 PM on May 15, 2008

I'm not a DBA, but if you want to learn more than the basics, I recommend the book SQL Hacks. It's an O'Reilly book, and I've found it introduced me to some great techniques and approaches I wouldn't have thought of myself.
posted by kristi at 3:10 PM on May 15, 2008

I recommend the book SQL Hacks.

Learning SQL DML is a very small part of being a DBA.

I would recommend that you learn using Microsoft SQL Server instead of MySQL. I know that sounds odd, but there are two reasons for this. First, it's a full-featured database server, and has lots of things that MySQL doesn't. Second, it provides a nice GUI that makes learning about these features easier. Once you know how they work, you can learn the equivalent SQL commands to do the same sorts of things, and you won't need the GUI at that point.

There are free/cheap versions of SQL Server 2005. There's a 120-day eval, which covers your two month thing, and there's SQL Server Express, which doesn't come with all the nice GUI management tools, and there's a developer version which is ~$50 I think.

If you're not using Windows, you might consider Oracle, which has a free developer version if I recall correctly. Oracle is in my own experience quite a bit harder to learn, though. On the bright side of that, if you're a competent Oracle DBA you can write your own checks.
posted by me & my monkey at 4:14 PM on May 15, 2008

I'd like to learn how to build, scale, and deploy great databases in MySQL in a short amount of time. I want to be a competent database administrator.

Things you will need to know backwards and forwards
  1. Stored Procedures
  2. Triggers
  3. Query Plan analysis
  4. Data migration (HUGELY important)
  5. All the various idiosyncracies of either Oracle or MSSQL (don't bother with MySQL)

    posted by Civil_Disobedient at 4:24 PM on May 15, 2008 [2 favorites]

    DBA is a very overloaded term. It can mean: install and update, develop stored procedures, optimize code by developers, scale and manage data, massage user data, and so on.

    All of those things have overlapping, but different skillsets. Just to spit some things out:

    Learn about clustering (and it's sibling, sharding)

    learn about database installation (mysql, mssql) and setup,

    learn about indexes (and the theory on how they work under the covers!)

    learn 3rd normal form, read up on why 3rd normal form isn't always best for speed

    learn to write simple stored procedures, learn why they exist and how to best use them.

    learn to read query plans, what the different types of join implementations are (merge vs. nested loops vs. hash)

    Since your description indicates there isn't a pressing project that needs these things, take a little more time to learn the details of some of these ideas. I'd recommend setting up a database, and running a perl script to dump a few million rows into it. Then experiment, make it faster, setup clustering, failover, whatever. Make up scenarios where you'd have to do something, then do it. Try to do it on several database engines.
    posted by cschneid at 4:28 PM on May 15, 2008 [3 favorites]

    There's generally a very good reason DBA's are one of the highest paid of the IT administrator crowd, it's not a two week learning curve.

    In reality you're not going to be anything but a very, very poor DBA after two weeks.
    It sounds like you want to include database design under the admin umbrella to boot.
    You'll know the absolute basics but nothings going to be seemless or optimal without a large investment of time.

    But if you're interested in actually walking down the path...

    Step one-- learn about why databases, the basics, the structures, the pitfalls and workarounds. Best introduction book I've seen is Database Systems: A Practical Approach to Design, Implementation and Management. Which will introduce all the major concepts and SQL-- It's not tailored to a particular DBMS but will help shape your thinking. It's mostly readable, especially if you're interested (and if you're not then pick something you are interested in!)

    Learning topics, the most critical element is learning to make sure the database never, ever under any circumstances corrupts or loses any data. Ensuring that is why you get paid, next stage is making sure that you never, ever have to actually do that. You make the server absolutely secure and stable, you make sure transactions are managed properly, you make it bullet-proof.
    Next you learn how to tailor the database, creating composite indexes, indexed functions, views, rewriting queries, everything to get it running as quick as possible

    Stage Two: Learn your specific DBMS, I can't suggest anything for MySQL. If you were aiming at Oracle, which if you're really interested in becoming a DBA is no bad thing.

    Stage Three: Get certified, again, Oracle would lead you down the OCP route, I assume MySQL will have something similar. Generally it's costly, but it's definately an investment in your future. A large company isn't going to take a chance with their critical infrastructre because someone's promised them they've played around with the system. Certification normally earns you a few more interviews and trust points (the currency of DBA's).

    The introduction book will go over general database design, design and administration can really be considered different fields altogether. A DBA I used to know who managed a large newspapers DBMS in the UK never did any design, he just make sure the servers were perfectly tuned and would never, ever fail.

    Above all, enjoy it-- Out of all the computing subjects I've learnt and used, databases (Oracle specifically) have been the most interesting to me because of their emmense depth and wide ranging applications, they're the silent cog in the works that most businesses couldn't function without.
    The other beautiful thing about DBA as a career is, the better you are, the less you have to do. Always be suspicious of a stressed DBA, the Lazy DBA's are the very best.
    posted by Static Vagabond at 4:46 PM on May 15, 2008 [4 favorites]

    Thanks very much everyone. I had to run out so didn't get a chance to really read anything till now. I appreciate all the input and comments very much.

    One of the reasons I mentioned MySQL is because I have a project I want to take over administrating that's already built and running in that which is very big. I guess I can learn how to port it over.

    Thanks again!
    posted by zephyr_words at 9:40 PM on May 15, 2008

    « Older How to contact my estranged father for documents...   |   Headache-free travel between Croatia and Germany? Newer »
    This thread is closed to new comments.