April Question: What advice would you offer a novice DBA in order to help them along in their career?
Question of the Month | April 1, 2010 | 1:00 amPost your responses to the above SQL Aloha Question of the Month in the comments section below (at www.bradmcgehee.com if you are viewing this from a syndicated newsfeed). And don’t forget to enter your e-mail address when you post your response, so I can contact you if you win.
I’ll pick the winner that offers what I think is the most original, useful and complete answer to the question. If some of the responses are very similar, then I will select the one that was posted first. The winner will be announced on this page the first week of May. Good luck!
For more information, click on the Question of the Month tab above.
| This Month’s Prizes
|
The prizes this month are an Amazon.com voucher worth US$50.00 and a license for Red Gate’s code completion tool for SQL Server, SQL Prompt, with one year of support and upgrades worth US$244.00. Not familiar with SQL Prompt? Here’s what one customer has to say:
“I laughed. I cried. I laughed at how much time SQL Prompt saved me. I cried at so many hours I wasted over the years. Simply, I love SQL Prompt.” Lynton Mack, Micromine |



Make yourself aware of the many sql server knowledge resources that are available on the web, this will not only help with problem solving but also in your own development.
One of my favourites is sqlservercentral.com, reading the different articles and participating on the forums will help to expand your knowledge of the capabilities of SQL Server to ehance your existing skills and learn many new techniques.
I have always found that 95% of the time whatever problem you are faced with, many people have faced the same issue, use this as a learning resource.
Always be looking to improve your TSQL knowledge, understanding how to write code well that is performant will help you to spot code that is not.
Become proficient with perfmon, profiler these are invaluable diagnostics tools.
I have found these areas help me to continually develop as a DBA
Don’t just assume what you are told to be true. Prove it!
I did ask them to always have backups in place. To start with, Keep SQL instances as simple as possible, maintenance tasks placed and mainly, the backups. so that even in the worst case scenario they will be safe from getting blasted.
Improve your people/soft skills. You will need them more than you think.
As a senior DBA you’ll be a mentor to junior DBAs. Your ability to relate to them, to understand they’re going to make mistakes, your ability to communicate concepts and techniques is going to be critical. As a senior DBA you may meet with end users and you will certainly meet with developers and system administrators. Your ability to be civil, to convey your point clearly (but without blame or antagonism) is going to be a key skill in dealing with others.
As a senior DBA you’ll need to be able to communicate with management. Sometimes the news you’ve got to send up the chain isn’t pleasant (like, “I know the budget is tight, but we’re going to be out of space in 3 months.”). So you will need to be able to once again communicate clearly, but in a way that says this is urgent without sounding like the sky is falling. Too much Chicken Little and you won’t be listened to again.
Well there is always more than one solution for every issue…try to resolve it in a better way so u wont face it again….
The bullet points of the things you don’t know about SQL Server would take up more space than the details of everything you do know. Don’t be complacent with your knowledge. If you think you know enough, chances are you don’t even know enough to be aware of all the things you don’t know.
Many people in technology will tell you that you need to spend a certain number of hours each week to ‘keep up’ with the changes to the area you are focused in. With SQL Server, you can spend far more time than that for several years just trying to get a grasp on the way things currently are.
Join Twitter, PASS, your local SQL Server User Group, Volunteer locally and nationally.
Get all of Brad McGehee’s free e-books, take advantage of all the free training out on the web.
(SQLServerPedia.com, SQLLunch.com, MidnightDBA.com),
Find a few blogs and follow/read regularly. There are many out there. Pick one or two then expand as you learn.
Try and learn something new everyday.
Don’t be afraid to admit when you make a mistake. Ask for help when you don’t know the answer.
Most of all enjoy and have fun. You picked the best profession there could ever be. What other profession lets you play all day and get paid for it!
Cheers!
Keep a repository of things that you do. Get all your scripts and organize them. If you go through an install document it, that way you can repeat it. If you run into problems down the road or find that something isn’t right go through the fix and update your documentation.
The first and most important thing is to learn your backup/recovery strategy, know it inside and out. Once you have the confidence that you can recovery easily from pretty much any situation then you can tackle everything else knowing that you always know how to get back to where you started.
Basically you don’t know what you don’t know and that’s OK. There’s a whole community of DBA’s and SQL experts out there eagerly awaiting your questions. SQL Server is a HUGE product with many branches (i.e. DBA, development, business intelligence) and each branch has its own set of unique products, strengths, weaknesses, tools, etc. Nobody knows it all and you become an expert by knowing WHERE to look for answers. Connect with the community. There’s an organization called PASS(Professional Association for SQL Server) that is free to join and is LOADED with resources to help you on your path. Be it local support through user groups, user groups online (Virtual Chapters), free webcasts and events, free training events (SQLSaturday), blogs, whitepapers, Twitter/blog directories, SQL Server news, speaker resources, whatever you need PASS has it! And best part is its free to join! One of the greatest things about being involved in the SQL Server technologies is its community and I cannot stress enough how much it can help you learn and grow in your career.
Stay out of my way ….. no, wait, that’s what I tell the new developers.
My advice would be to never stop learning. SQL Server is a constantly evolving product and databases systems are constantly evolving as well. Avoid complacency. Don’t get so comfortable in one job that you allow your career to stagnate. Pursue excellence. Seek out opportunity. And lastly, always cover your backside.
I have been thinking of a blog post of this topic but if I had to pick one set of advice that I would definitely have to share it sort of echoes what has been said by a couple others:
“Welcome to the job. It’s a really fun role and your attitude will make up 80% of your success or failure. If you grab a hold of the role, take it seriously and learn at every opportunity you have you’ll do well. If you remember you are here to help and not here to be a cop enforcing arbitrary rules for the sake of ‘I’m the DBA!’ you’ll do even better. There are user groups in the area, here are a few blogs and article sites I read, check them out and always be learning. I’ve been doing this for about ten years now and I wish I knew how much I didn’t know when I started. Don’t expect to know everything about every aspect of SQL Server, and don’t ever think you know it all because I have yet to meet the person who knows it all, even some of the trusted experts whose blogs I shared with you earlier.”
Advice for the Novice DBA:
First and foremost, remember to breathe!
Normally when there is a database “emergency”, you will be the first one with the water hose trying to put out the fire. Breathing is a good thing.
Second, know your backup and recovery strategies. Document them in a location that you will remember. Review them periodically. Practice recovering your databases from your backups and document that whole procedure. It’s easier to respond under fire if you have documented and tested out your procedures.
Third, listen to what your users want and need — your users can be your developers, the end-user, your boss, your peers. But do LISTEN. Be empathetic to their needs. Don’t be arrogant. That will only antagonize everyone.
Fourth, remember to work smart (not just hard). Implement proven strategies from the wealth of knowledge that other DBAs have contributed and is there for your taking and using.
Fifth, give back to your fellow DBAs as you learn more. Being a new DBA doesn’t mean you have nothing to offer. Share your ideas and questions with other seasoned DBAs — those worth their salt will LISTEN to you.
Sixth, enjoy the job. It can be a very rewarding experience — not just a means to an end. My most favorable part of being a DBA is to be able to take a long-running query and make it exceedingly fast. The look of surprise and appreciation from the end-user is invaluable.
Seventh, never say “It’s not my job”. Ultimately the company depends on all of its employees. If you have anything to contribute to an issue, do so. Share and be a team player.
Eighth, enjoy life. By doing step 4 (working smarter) — you should have more quality time for yourself and your loved ones.
Thanks so much and welcome to being a new DBA!!
Day 1: See if Backups are being done! Set them up if not!
There are many .. and all of them are true..
But I have ten commandments for me to keep me in this role!!
1. Be confident and try to acquire excellent knowledge in the area we work
2. Always look at the Issue with a ‘Why’ question
3. Try to articuate Clearly to the people – management,developers and all customers
4. Be uptodate with technology – forums,code capms,usergroups etc will help.
5. Learn something new everyday – certifications,blogs etc.
6. Create a plan for daily, weekly, monthly checklist- Brad’s Ebooks really helpful !!
7. Feel and keep the backups as the only asset we have as DBA, this will help to check it and restore it accordingly and save your life!.
8. If you are assigned to server, take it as your own server , this will help to protect it in all way
10.Love the job, It will be really frutiful.
Enjoy the life of DBA – Challenging and rewarding!!
From the question it sounds to me like we’re talking career advice, not tasks for the first two weeks on the job
so I would go with advice that serves for the long term: think of your whole career as a “practice” and not a series of jobs.
I originally went to school and began work as an architect, and one of the most important ideas I took from that experience is that most architects treat their careers as a personal life’s work, in the same way, I’d imagine, that a doctor might. An architect or a doctor does spend his/her life working, but at the same time refining a personal body of skills and knowledge. That set of skills and knowledge has its own life as the person’s practice, independent of any specific job. It travels with the person. You can get fired from your job, but not lose your practice.
This is the difference between “having a practice” and “doing a job.” A practice is part of your identity; your skills are something you refine because you want to get better, not because the boss said you have to go to training. A practice is something you can be passionate about. If you do this right, the passion makes you better, and makes you happier. People notice, and it’ll advance the more mundane parts of your life, like jobs, titles, earnings, and so on.
The term novice suggests there are experts but who the novice and expert are will depend on the question being asked.
An expert is born out of trial and error and a lot a reading over time.
Time is an important factor as time continually passes and what the expert learnt may not now be true. So a novice that listens, reads and tries may infact become the expert.
One word: “Ask!”
As a new DBA, nobody expects you to know everything, and the worst you can do is assume that you do (or should) know everything that you will over the next weeks, months, and years. Ask for help. Ask for advice. Ask those with more experience, whether in person, emails, blogs, news groups, forums, or in books. If you try to fake it, or stumble through the job trying to look competant, you will most assuredly run into problems that you will have to ask for help on later. Plus, asking for help shows humility, which will help your relationships with your boss, coworkers, and customers. Best of luck, newbie. If you need anything, don’t hesitate to Ask!
1. Remember, you don’t know everything.
2. Reach up to those of you who have gone down this road before.
3. Learn from them.
4. Put it into practice.
5. Communicate what you’ve learned – be it to peers, colleagues, or management.
6. Reach back to those who are following you on this road.
7. If you’re paying attention, can learn from anyone.
8. Remember, you don’t know everything.
9. …but you can learn…
10. Good luck : )
My advice to a Novice DBA are as follows:
1. Connect to SQL related websites, blogs and save their usernames and passwords in one safe place and go there as much as possible. There is wealth of information out there.
2. Books online is your friend. Google is your other friend.
3. Never be afraid to ask questions. If people start to put you down, use humor. Prepare some funny sentences ahead of time.
4. Keep reading about SQL topics that interest you and test out scripts.
5. Find a mentor at your work place who is willing to teach you the ropes of the DBA world.
6. Try to be flexible with your schedule and offer to help people around you. This is the best way to learn quickly.
7. Go out to lunch with people on your team and not on your team. You learn a lot during these casual conversations. Also it gives you information about the company’s culture. If you like the job, try to adapt to the company’s culture.
8. Always let your teammates know if you are stuck somewhere or running behind on project. This is courtesy as well as they might be able to give you suggestions. In short, don’t sit on any work till the due date.
Hope this helps.
FIRST: Keep data safe – all else is a bonus.
Think long term – a DBA who keeps things working quickly will be appreciated as long as things are working quickly. A DBA who forgets to do decent backups will be remembered FOREVER (starting with the day that the backup is needed) it will haunt you at future jobs.
Back it up regularly, ensure the backup works, ensure the backup is safe, ensure there is more than one machine able to perform the backup/restore.
SECOND: Be nice to developers, they are not evil.
Work with them, explain why you are suspicious of their changes and they might even start producing code you approve of. You never know they might have a solution to an issue you are looking at.
THIRD: Keep data safe – all else is a bonus.
There’s a lot of good advice here already. I’ll add one thing: if you can, set up an environment where you can practice what you’ve learned or try new procedures. Remember that not all information you read will be accurate; there will be some well-meaning people who give the wrong advice. It’s a good idea to verify on your own, and it’s also a great way to learn.
Familiarize yourself with any compliance frameworks that your industry is regulated with (i.e. Sarbanes-Oxley, FERPA, etc). Since you are the security gatekeeper for the data, it is your responsibility to apply the security to the database with this compliance in mind.
1. Always keep learning, because none of us knows it all. There are many resources out there, starting with SQL Server Books Online. There is also an ever-increasing community of talented DBAs out there that can help. Use those resources.
2. Measure twice, cut once. Always test changes in a non-production environment first, no matter how insignificant they may seem. We all make mistakes – try to make them in the place where it matters least.
3. Learn the tools of the trade before you try to invent new ones. SQL Server has lots of functionality that often goes untapped. (See #1.)
4. Be proactive and automate as much as possible. Read up on best practices and work towards implementing sound maintenance routines that will help keep you “out of the weeds” and providing value to your organization. We are sometimes called upon to be firefighters, but there’s a reason we don’t get those cool helmets – we shouldn’t be doing it all the time. (When we’re going good, we’re more like Smokey the Bear.)
I agree with Andrew, the data is the key to your job.
1:Backups, backups, backups be sure you have them in place for production, and either in place for dev/test or documentation from your management that dev/test are not needed. Always try to get something for dev/test as well, never good to have developers/testers pointing to the dba that they can not work.
2:Access to data control and available, if the users can not get to the data then it never becomes information that they can use, if the wrorg people get to the data then it becomes information that can hurt your company.
3:Backups, backups, backups, practice the different types of restores and recovers to confirm that you can restore from your given media and to reinforce the options youy have should you have an issue pop up. You want to be able to talk to your management team and clearly layout what options they have and why.
4: Have a good realationship with your management, you operations team, your systems team, your network team, your development team and your user community. They are all critical to your success.
5: Have fun, enjoy the opportunities that areise each day and learn, learn, learn.
6:Double check those backups.
1. Don’t take the first job that comes along just to get your foot in the door. This could set you up for failure. If you are hired as the only DBA and get the pleasure of cleaning up well-intentioned database messes from the past, you will quickly begin to question your DBA career.
2. Make sure backups are in place and can be succesfully restored.
3. Learn something new every day, no matter how trivial.
4. Keep a folder with “how-tos” and queries that you learn. You will need them again one day.
What I started by following the DBA check lists for the essential tasks.
Learning and Learning all the time. There are many great people and websites online sharing tips and helping questions.
I echo Mark and Andrew – Backup is a very key task to save our jobs.
Learn as much as you can. Join PASS, join a local SQL user group as well as the Virtual DBA group. Some of the local SQL groups have mentoring. PragmaticWorks has free training as well as paid classes. They post some of the past sessions on their website. Check out blogs as well as sites like http://sqlchicken.com/ for additional information. Also load the eval. version of SQL Server Enterprise Edition on your home computer and play around with it. Try to learn as much as you can and try to keep current. There is a wealth of knowledge out there for you.
Don’t forget that you are a human who has physical, moral and social responsibilities to self and to others; and a DBA later, who has the supreme responsibilities of guarding the data for his/her organization.
Seriously, I would tell this, than anything else. I would continue this as follows:
As a human, you should ensure that you execute your duty as a DBA with utmost care, keep yourself continuously updated, and never believe that what you have designed/developed/maintaining is full-proof. Always be open to ideas or suggestions, even if they are coming from your juniors.
And as a DBA, take care that you are not a machine running on a 365x24x7 basis with a 99.995 SLA guaranteed uptime. Enjoy what you are doing, because if you are in it just for a living, you would not be able to sustain it beyond a point. And take time out for your family, for the wonderful people around you, and for the nature. Life after-all is not data, number crunching and weary eyes staring at the monitor in the wrong hours of the night. Take these situations in your stride as a part-and-parcel of your job, but also learn to look beyond these things to the liveliness of life, and its good things… and remember
All good things in life are essentially free!!!
Thanks for all the entries for the April contest. This month’s contest is closed and the winner will be announced the first week of May.
Find out the winner of the SQL Aloha Question of the Month by visiting: http://www.bradmcgehee.com/2010/05/winner-of-the-april-sql-aloha-contest/