I really wish I’d do something like the DBA Training plan from Brent. Honestly, I don’t have the time to do it the way he is, and certainly can’t respond to any volume of emails, but I applaud the way he’s doing this. Brent is sharing a lot of ideas and information on how to start getting a handle on your environment. As of this writing, there are 8 posts (part 8). I expect more in the future.
Becoming a DBA is often a random collection of experiences that almost everyone goes through in a different order. Maybe you started by having to recover a database with a restore. Maybe it was the need to install the server software and configure users. Maybe you find yourself more interested in writing database queries in T-SQL than methods in C# and switch over. However you learn, there are two things I know: your environment will drive your learning and there’s always more to learn.
My start as a DBA came about when I needed to install a SQL Server instance to handle a new application. It was important that I understood the general admin duties to ensure backups and manage security. At first I didn’t think much of the platform, but as I tried to troubleshoot performance issues, I started to learn about how connections are made, resources are used, and what bad T-SQL looks like. From there, I moved on to more development before coming back to the admin side later.
It would be great to have a class that teaches you to be a DBA, but really, the job has somewhat varied at each position I have held. There are some specific things that are important at every job, but the exception is often the rule as to how you ensure your environment works well. Once the system is in production, it becomes very hard to change anything, from security to code, without lots of testing and approvals. I find that often trying to work within constraints drives a lot of learning, though not often deep or varied enough to investigate all the options.
I don’t know everything about SQL Server, but I have developed two very important skills in my career. I’ve learned how to learn, by reading, researching, and practicing new skills. I feel comfortable that I can come up to advanced beginner on a topic very quickly, usually competent enough to make something work. Second, I’ve learned how to ask for help. I’m lucky in that I have lots of friends I can call on for questions in specific areas. If you don’t know someone that’s an expert, I hope you know about #sqlhelp on Twitter and the forums at SQLServerCentral. These are great places to get help on whatever is troubling you about SQL Server.