Skip to content

shannonlowder.com

Menu
  • About
  • Biml Interrogator Demo
  • Latest Posts
Menu

Upgrade SQL Server

Posted on April 10, 2012 by slowder

One of the most difficult projects to undertake as a DBA is upgrading your SQL Server from one version to another.  The biggest reason that it’s so difficult is the lack of planning and testing before during and after the migration.  With proper planning, everyone involved with the migration from the DBA, to the programmers, to the business users can understand what is involved in the migration and what part they will play in this migration.

I’m going to walk you through the basic steps of the migration.  If you’re a DBA, you can use these steps to help educate your coworkers on what it will take to make the migration happen successfully.  If you’re a business user, this article will help you learn how much can be involved in a migration.  If you’d like help moving from one version of SQL Server to another, please feel free to contact me through my new consulting company, HiveMind.

Run the Best Practices Analyzer

For SQL Server 2000 through 2012, there are programs written by Microsoft to help determine if your SQL Server instance is configured according to the certified best practices.  It will help determine if there are any problems with your current server.  If there are, it can recommend fixes you may want to take care of before, or during the migration process. It can also help you determine if it will be safe to proceed with your migration.

If there are any issue preventing the migration, address those at this time, and then re-run the analyzer until it suggests it’s safe to proceed.

Check for any queries that will break

When Microsoft updates the engine, they make changes that make SQL more efficient and robust.  As a result, some features of earlier versions of SQL Server might not work in later versions.  You need to check for this code before you try to upgrade, otherwise, you might find your system no longer works after the migration.

I suggest running a server side trace to determine if anything will break during the migration.  This trace will need to run long enough to cover a representative sample of your work load.  If your business cycle is weekly, you’ll have to run the trace for a week.  If your cycle is monthly, then run the trace for a month, if your cycle is yearly, you might want to develop an alternative test plan to handle that.  Again, contact me if you need help with this testing!

If you determine something will break during the migration, you can either address it now, or you can address it during the test migration.  Some changes will need to be made before hand, others will only be possible after the upgrade.

Build a test environment

This is the step I see most migrations skip, and as a result, this is where most of the pain comes from.  You need to set up an environment where you can safely test your migration, and any changes you have to make in order to make the migration successful.  Without this testing, you simple upgrade to the new version and deal with problems in a live environment.  That usually leads to down time and upset users in the end.

By setting up an environment that mirrors the backend (SQL), the middleware (any code that touches the database), and the client side programs, you can see exactly how the migration will affect all your moving parts.  During this test period, you can address any problems that come up from the migration.

Make sure you test everything, trust me.  Anything you miss will turn up to give you headaches later!

Spin up the new servers and test again

I do not recommend in-line upgrades for SQL Server, rolling back to a previous version in-line is fraught with peril (Yeah, I’ve been reading too much Game of Thrones.)  If you’ve spun up your test environment with sufficient hardware, you can often migrate your test environment into production, and go live!

By keeping your existing systems online, you keep the option available to rollback, should any issues come up you can’t immediately address.  After you’re running your new servers in production, you need to repeat your tests again, verify everything is truly up and running.  If all your test cases pass, keep your previous servers for some period (usually 30-90 days) as a fallback solution.  But you will need to address how to migrate data from your newer versions to your older versions of SQL.

With proper planning, you’ll address this before rolling to the new servers.

Success!

If you’ve followed all these steps, you’re finished.  You’ve had a successful migration.  Now it’s time to consider what to do with your old production servers.  I’d suggest considering them for Disaster Recovery Servers, or perhaps an additional test environment for your developers.  No matter what, I’m sure you’ll find a good use for the older machines.

As always if you have any questions, let me know.  I’m here to help!

 

 

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Recent Posts

  • A New File Interrogator
  • Using Generative AI in Data Engineering
  • Getting started with Microsoft Fabric
  • Docker-based Spark
  • Network Infrastructure Updates

Recent Comments

  1. slowder on Data Engineering for Databricks
  2. Alex Ott on Data Engineering for Databricks

Archives

  • July 2023
  • June 2023
  • March 2023
  • February 2023
  • January 2023
  • December 2022
  • November 2022
  • October 2022
  • October 2018
  • August 2018
  • May 2018
  • February 2018
  • January 2018
  • November 2017
  • October 2017
  • September 2017
  • August 2017
  • June 2017
  • March 2017
  • February 2014
  • January 2014
  • December 2013
  • November 2013
  • October 2013
  • August 2013
  • July 2013
  • June 2013
  • February 2013
  • January 2013
  • August 2012
  • June 2012
  • May 2012
  • April 2012
  • March 2012
  • February 2012
  • January 2012
  • December 2011
  • November 2011
  • October 2011
  • September 2011
  • August 2011
  • July 2011
  • June 2011
  • May 2011
  • April 2011
  • March 2011
  • February 2011
  • January 2011
  • December 2010
  • November 2010
  • October 2010
  • September 2010
  • August 2010
  • July 2010
  • June 2010
  • May 2010
  • April 2010
  • March 2010
  • January 2010
  • December 2009
  • November 2009
  • October 2009
  • September 2009
  • August 2009
  • July 2009
  • June 2009
  • May 2009
  • April 2009
  • March 2009
  • February 2009
  • January 2009
  • December 2008
  • November 2008
  • October 2008
  • September 2008
  • August 2008
  • July 2008
  • June 2008
  • May 2008
  • April 2008
  • March 2008
  • February 2008
  • January 2008
  • November 2007
  • October 2007
  • September 2007
  • August 2007
  • July 2007
  • June 2007
  • May 2007
  • April 2007
  • March 2007
  • February 2007
  • January 2007
  • December 2006
  • November 2006
  • October 2006
  • September 2006
  • August 2006
  • July 2006
  • June 2006
  • May 2006
  • April 2006
  • March 2006
  • February 2006
  • January 2006
  • December 2005
  • November 2005
  • October 2005
  • September 2005
  • August 2005
  • July 2005
  • June 2005
  • May 2005
  • April 2005
  • March 2005
  • February 2005
  • January 2005
  • November 2004
  • September 2004
  • August 2004
  • July 2004
  • April 2004
  • March 2004
  • June 2002

Categories

  • Career Development
  • Data Engineering
  • Data Science
  • Infrastructure
  • Microsoft SQL
  • Modern Data Estate
  • Personal
  • Random Technology
  • uncategorized
© 2025 shannonlowder.com | Powered by Minimalist Blog WordPress Theme