A few weeks ago, I had a major craving for my wife’s lasagna. She makes a “seriously” good one, with multiple types of meat and cheeses and it even has a little kick. Unfortunately, she did not have the time to make it for me, so I decided to undertake the challenge of making the lasagna. So, she left me some instructions on how she makes it and what I needed to do. But, as you might have already guessed, I cut some corners, and I didn’t follow the directions as closely as I should, and I ended up with lasagna … but, not quite my wife’s lasagna.
So, here’s the lesson that can be applied in many endeavors. If we give attention to preparation and setup, it will lead to good results!
This lesson is also invaluable when building a new SQL Server. For a DBA, building SQL Servers is not something you do every day. But, when you have to do it, you want to make sure that you get it right!
Over the last few weeks, I have been building quite a number of servers for our new SQL Server 2012 environment. So, I have been quite interested in “getting it right”, meaning that I am building them in a consistent way that will be optimized for my environment. There may be nothing more unnerving, than to have vastly different environments within one version of SQL Server. For example, having a development environment that has different features of SQL Server installed than production. Actually, I just ran into this situation when a developer used an inappropriate development environment. And when it came to release time, the code and SSIS package he was deploying just simply did not work in production.
So, how do we make sure that we are building SQL Servers in a standard and consistent way?
Now, I have probably just mentioned something that no one likes to hear … documentation. But, it really can save you a lot of heartache and pain, and generally just make your life a lot easier.
One of the things I like to do, is to have at least one SQL Server installation document for every version of SQL Server (i.e. 2008 R2, 2012, etc.). Additionally, for each version, I may have multiple documents that deal with different configurations (i.e. one for clusters and one for non-clusters). In these documents, I normally create a step-by-step list of instructions with screenshots that will help me to build each server the same way every time. Here’s how I normally divide out the document:
- Pre-installation procedures – This would include things such as checking to make sure the right accounts are on the servers, verifying that virus scanning software has the right exclusions, checking the standard drive configurations, installing any pre-requisites, and even installing windows updates.
- Installation procedures – This includes the options and features that every SQL Server install should have in my environment. MSDN SQL Server 2012 Installation (http://msdn.microsoft.com/en-us/library/ms143219.aspx)
- Post-installation procedures – This would include things such as adjusting the SQL Server memory, maxdop settings, enabling database mail, setting up alerts and operators, creating and configuring standard maintenance plans, and adding the server to the monitoring systems.
Now, this is not an exhaustive list of what I have in my documentation. But, I listed these things to give you an idea of what you may include in your own documentation. Every environment is different, and this documentation should reflect what you have to do to get that SQL Server up and running optimally. This documentation also becomes very useful when maybe you can’t build a SQL Server, for whatever reason. Someone else can go through this document step by step and build one that you may be proud of.
So, if you give attention to the setup of your SQL Server, you will definitely reap the rewards, just like when you follow the recipe for a good meal!
Additional references that may be useful: