The whole “7 Habits” title is so cliché so I decided to make it eight! Plus that will probably relieve me from any copyright violations as well. So anyway, these are the eight habits/skills of Highly effective Database Administrators in my humble opinion. Although I come from the Microsoft SQL Server world, I believe most of these traits or skills can be adapted cross-platform.
Feel free to add your feedback in the comments section, this is after all just my own opinion.
1. Know your servers, what they do, what applications they support, and their names in Production/Staging/Development.
- This is an easy skill to master. First step is to create an excel file like the one in the screen shot below. No excuses! If you can’t pay for excel use Open Office or Google Docs.
- Now write down your different servers from Production, Staging, and Development. Put any Aliases in parenthesis so you know what other names the servers go by.
- This document will pay for itself when you use it because you will start to remember which servers have what on them and what they are used for. You’ll look really smart in all your geeky gatherings at work. Plus, if you get a new employee that keeps bothering you about names, just send them this document and even get them to contribute. It’s a win-win.
2. Be proactive with Maintenance and Disaster Recovery
- One of the things I really enjoy about work is 3pm; that’s when I get to go home! What makes it possible is having your servers up and running the way they should be. I recall around this time last year getting home around 4pm. Keep in mind, I leave my house a little after 6am to get to work by 7am and I was fasting for Ramadan (you can Google that it’s too much to explain here). I received a call from my manager who was concerned about a Database server acting up. Let’s just say we finished getting things in order around 8pm which is just before sunset (Google the fasting thing). I never want to experience that again and I doubt anyone wants to. After that night, maintenance was a priority and I have not had this problem since.
- On the flip side, you have to make sure you have some sort of Disaster Recovery setup. Even if you have everything maintained and backed up, you could lose your server. Are you prepared? If not, stop reading and go get prepared before you go on to #3. Also, an important part of this is understanding your different DR options. Some companies consider backups or even Replication as a DR mechanism. It may work for some, but not all. There are many options within SQL Server, each with a price tag and pros and cons. Get ready to take your relationship with Books Online to a new level.
3. Understand the business needs behind the servers you support.
- A DBA can be replaceable, since the skill is fairly common and many people don’t understand the difference between a good DBA and a bad DBA; they just want someone to point the finger at. However, a DBA that understands the business, the needs of the users, the data, etc gives themselves an edge over everyone else because that type of knowledge takes time to build up. At this point, the loss of the DBA is a loss of a knowledge base that is more difficult to hire immediately.
- You also have to consider that you will be providing a better service knowing what the business does. You can put yourself in a consultative position to help strategize and move the business forward. Or you can play Angry Birds on your iPhone and call it a day.
- Finally, understanding your business helps you gauge the financial constraints your company maybe facing. A good DBA can put together the greatest Database Management System (DBMS) in the world with unlimited money; which only exists in video games. If you know your business well, you can get the money you need to build your systems using justifications that the business line will understand. A strong two-way communication with those people who control the money and direction of the company is definitely a plus.
4. Understanding the ecosystem of the computing world (Networking, Web Applications, SAN, RAID, etc)
- Maybe I’m bit biased with this one. I love computer hardware. I love reading about the new AMD and Intel Chipsets and having a debate with another computer geek. It is an asset at the same time. A DBA does not limit his/her knowledge just to the DBMS. A good DBA knows about RAID architecture and understands what a SAN is and the implications firewalls can have on DB servers. A great DBA even knows how web applications interact with DB servers and might even know some web programming languages (.NET, Java, etc).
- Also an integral part of any DBMS is the Operating System it runs on. If your DBMS runs on Linux I would hope you know how to use it. The same with those of us who work in a Windows Server environment. You should know how to get some work done without crying out to the Operations team for help. Many DBAs are expected to do both the job of the DBA and the Operations/Network Administrator.
5. Learning and using the Business Intelligence Tools
- Business Intelligence is huge now. At the end of the day, upper management is not going to look at raw data. They’re also not going to look at a some cheesy results set that you got from a query that does fancy aggregations. You could throw the numbers into a fancy excel file, but that is quite static; I know some smarty pants will say you can refresh your data in Excel. My point is, the BI tools are easy to learn and easy to use and you can make the data look great with new charting options and so on. They help justify all that data you are charged with collecting, storing, and securing.
- Again, the point of understanding the ecosystem of the computing world comes into play. BI tools today are very close with DBMS’s. Most likely you will be designing a system with some sort of BI function so shouldn’t you understand how it works?
- ETL tools are part of the BI suite for SQL Server and are extremely valuable. If you’re in a data warehousing shop I’m sure you will need to start familiarizing yourself with SSIS.
- One other point I wanted to make is that the BI tools are fun to use! It’s nice to actually be able to create a report or a OLAP cube to see how your data looks. You can also create some great reports to help you understand your systems better and import them into Management Studio or even put them up on a report server. Your creativity is the limit.
6. Security of your Servers is security of your job
- If someone steals the password to your bank account and takes all your money how would you feel? I’m guessing you would be mad. Imagine if your employer lost all the data they have spent so much money on, how would they feel. I’m guessing they would be mad. Most likely you will be in the path of that bullet, catch my drift? Often we take security for granted for say it is someone else’s job. The word Administrator is part of the DBA title for a reason, you need to administer your security!
7. Being an above average Database Developer
- There is a distinction between Development and Administration whether people want to admit it or not. However, there is a cross over with both sets of skills. In other words, no developer should go without understanding some of the DBA work, tasks, and concepts. As a DBA you better know how to do development. You cannot live without it and a strong background in Development will help you with performance tuning and understanding problems in your system.
- It is good to know how to program if you are going to work in IT. I know Project Managers and Business Analysts that I work with that can write some good SQL code. It really helps when designing a new system or mapping out a project since they know somewhat how things work. Now try to imagine with me that those “Non-Technical” people have better SQL Skills than you. Where is your confidence now?
8. Have the ability to do the DBA work without the GUI
- It’s easier to use the GUI for sure. You can be very productive without it however. Imagine trying to give permissions to 1000 specific stored procedures to a specific group of users. Using Dynamic SQL and querying the Information_Schema.Routines table is a lot faster than manually doing it through the GUI.
9. BONUS Trait – Be nice to people when you talk to them even if you have to repeat yourself 100 times. Be patient with people who talk about your work like they are experts but know nothing. Good manners go a long way.