By: Jeremy Kadlec | Updated: 2010-02-02 | Comments (2) | Related: > Upgrades and Migrations
Problem
At our organization we are in the planning stages of upgrading to SQL Server 2008. What are some of the key considerations as we plan to upgrade? How much time should be spent on planning? Who should do the planning? As a DBA, what are the technical aspects I should research? What is the best way to manage the project?
Solution
Upgrading to SQL Server 2008 will require significant planning at many organizations. This could be one of a handful of key IT projects for your organization in the near term, so be sure to properly plan for the project. In this tip we will try to cover what planning for an upgrade could mean, based on our recent upgrades.
Unfortunately, each upgrade is unique and different, so some of the recommendations in this tip may not be applicable and/or we may have not worked through an upgrade that you are facing, so particular aspects may not be included. Nevertheless, please let us know your experiences in the forum. We want to hear from you. With that being said, let's jump in...
Preliminary research
As you begin your preliminary research, be sure to being to educate yourself on the following items:
- Inventory of the servers, applications and users
- SQL Server versions and editions
- Application versions and editions
- User location, operating hours, etc.
- 32 bit versus 64 bit platform
- Hardware support from your vendors
- Business application support from your vendors and/or co-workers
- Upgrade paths
- Rollback plans
- Development and test environments
- Testing
- Relational engine upgrade
- DTS to SSIS upgrade
- Reporting Services upgrade
- Analysis Services upgrade
- Opportunities for improvement
- Post upgrade tasks
- Adopting new SQL Server technologies
Base on our experiences, these were the keys aspects for one or more recent upgrade projects, so we wanted to pass them along. One key item that I want to mention again is figuring out which users are involved in the upgrade. Be sure to get them involved early and often as you continue the project.
Project Scope
Here is critical step that I think is missed all too often. Some people call it 'figuring out how big the bread box is' while others assume they know it. In my opinion scoping and managing a project does not need to be a rigid process, but it is important. At this phase in the project try to understand the following:
- Why does the business or department want to upgrade to SQL Server 2008?
- What SQL Server are in scope?
- What applications access the SQL Servers?
- What users leverage the applications?
- What are the user operating hours?
- Who are the points of contact\management for the users?
- What automated processes leverage the SQL Servers?
- What third party applications, controls, plug-ins, etc are needed?
- What are the upstream and downstream applications?
- Who are the key IT team members?
- When does the project need to be completed?
- Which management members are supporting the project?
- Which budgets are paying for the project?
- Have the budgets been finalized or is management waiting for estimates?
As a DBA, do a quick sanity check here and make sure all looks correct. If you are not comfortable with the findings, run a tool like Profiler to determine if any users, applications, processes, etc are not being taken into consideration. One group that always seems to be overlooked are the Reporting Groups, so be sure to include them.
Project Plan
In some circumstances, the preliminary research generated more questions to vendors, partners and developers. In other circumstances, it lead to a project plan to work through the upgrade. In my opinion, building a project plan is the next logical step in formally beginning the upgrade process. Some companies have a formal project planning methodology, others do not and use task lists more so than project plans. Regardless of your environment, be sure to have a plan that is shared (physically and electronically) with everyone on the team that includes the following items:
- Definable tasks, with the person responsible as well as the start and end date
- Budgets, estimates and purchases for hardware, software, FTE time and consulting time
- Weekly or daily status meetings
- Project scope and requirements
- Environment setup and configuration
- Preliminary analysis
- Testing including user, unit, load and DBA
- Upgrade dates including application freeze, upgrade and thaw
- Go | No Go Meeting
- Upgrade and post upgrade testing and DBA tasks
- Lessons learned
Hardware and Software Needs
Although I believe SQL Server has introduced a number of great features, the one that I believe will be adopted on a more wide spread basis is support for 64 bit. Although, 64 bit versions of Windows and SQL Server have been available since SQL Server 2000, I have not seen a wide spread adoption across numerous companies. I hope with SQL Server 2008 upgrades this changes.
As you are upgrading your hardware, be sure to include your development and test servers in that plan. Depending on the application, it might not make sense to have a 64 bit production platform and a 32 bit development and test platform. What do you think? As such, the resources spent on hardware may be more than what you would initially expect, so plan accordingly.
On a related note, if you organization has not been adopting virtual server technologies, this might be the time to research those vendors to determine if they make sense for your development and test needs. Many companies have adopted virtual server technologies while others have continued to leverage physical servers for each environment. These technologies have the potential to save a great deal of power, rack space, hardware, etc costs. Keep an open mind and see if they make sense for your organization.
SQL Server Upgrade Planning Tasks
When it comes to planning for the technical portion of the upgrade, it is wise to break this down some detailed processes into manageable checklists that various team members can use during the process. At a high level, here are some of those items:
- Preliminary tasks
- Upgrade Advisor
- Use this tool to determine your upgrade issues which can be corrected before, during or after the upgrade.
- Here is a tip with the SQL Server 2005 Upgrade Advisor which can be used as a point of reference - SQL Server 2005 Upgrade Considerations for DBAs and Developers
- Click here to download the SQL Server 2008 Upgrade Advisor.
- Upgrade Advisor
- Hardware\Software setup
- Environments
- Development
- Test
- Production
- Windows and SQL Server licensing
- Third party tools
- Environments
- Development\recoding
- DTS to SSIS Conversion
- Upgrade SQL Server DTS Packages to SQL Server Integration Services SSIS Packages
- Here are some additional tips to check out:
- Recoding T-SQL - Stay tuned for a tip on this...
- One other item I have seen on recent upgrades is re-architecting or improving particular applications or business processes. SQL Server 2008 offers a great deal of new functionality, so you may have the opportunity to roll up your sleeves and improve the business
- DTS to SSIS Conversion
- Testing
- Work with your team to build repeatable test plans for functional and
load testing.
- Be sure these plans can be run before and after the upgrade with the same level of effort.
- Work with your team to build repeatable test plans for functional and
load testing.
- Rollback plan
- Building a rollback plan is your insurance plan in case a problem arises. I firmly believe in building a rollback plan and testing it out. I have seen a few situations where a problem occurs and the team just tries to work through it. If you do not know how much time your rollback plan will take, you can reach the end of your planned downtime and not have a system for users to support the business. This is not good.
- I have seen other situations where a problem occurs and the team hits a wall and does not have a plan to revert back. At 2:00 AM in the morning when everyone is exhausted and no one can think straight they are frantically trying to get the system back up and running. Unfortunately, mistakes are made and they can be costly.
- If you get push back, ask your team if they want to give up their personal insurance policies. See if it makes them as uncomfortable as it does you, by not building and testing a rollback plan.
- Upgrade
- Relational Engine
- Preliminary tasks
- Verify your databases are free of corruption issues.
- Backup all of your databases, script out your security settings, etc.
- Review the SQL Server and Windows logs to make sure you do not see any issues
- Ensure your security is setup as expected in both Windows and SQL Server.
- In place upgrade (1 machine)
- This option is fairly straight forward because the installation process will upgrade the SQL Server application as well as the SQL Server databases. The down side of this is that the rollback plan would require a uninstall of SQL Server 2008 and a reinstall of the previous version of SQL Server in addition to a restore of the databases. Most likely you would also need to reconfigure SQL Server.
- Stay tuned for an upcoming tip on the technical aspects of this portion of the upgrade...
- Upgrade to a new machine (2 machine upgrade)
- When upgrading to a new machine the installation of SQL Server on the new machine can take place well in advance. Some companies even test with the new machines to understand how the system will perform under load, which I think is a good idea.
- In terms of the upgrade itself, the databases can be either backed up and restored from the previous version of SQL Server to SQL Server 2008 or detached\attached. In either case, the upgrade process is fairly straight forward.
- If you have a very slim window when you can upgrade, I would consider a third party tool which compresses the backups to perform the backup and restore operation. These tools can save a significant amount of time and disk space. This is one technique we used for SQL Server 2005 upgrades and the tools have worked well again for SQL Server 2008.
- Stay tuned for an upcoming tip on the technical aspects of this portion of the upgrade...
- Preliminary tasks
- Reporting Services
- Stay tuned for an upcoming tip on the technical aspects of this portion of the upgrade...
- Analysis Services
- Stay tuned for an upcoming tip on the technical aspects of this portion of the upgrade...
- Relational Engine
- Post Upgrade tasks
- In terms of post upgrade tasks, be sure to set aside time for these
processes:
- Review the SQL Server and Windows logs to validate no issues occurred
- Rebuild the indexes for the user defined databases
- Execute UPDATE STATISTICS for the user defined databases
- Execute DBCC UPDATEUSAGE for the user defined databases
- Once the dust has settled, research the new features in SQL Server 2008, which can benefit your organization.
- In terms of post upgrade tasks, be sure to set aside time for these
processes:
Next Steps
- As you begin your planning for an upgrade to SQL Server 2008, be sure to set aside sufficient time to plan for the upgrade.
- There are a few "old adages" about planning saving time across the life of a project. I am not sure if any one them has the correct ratio of time savings, but I do think all of these adages teach us in different ways that planning does save time.
- Stay tuned for some additional tips on upgrading to SQL Server 2008.
- Check out these related tips:
About the author
This author pledges the content of this article is based on professional experience and not AI generated.
View all my tips
Article Last Updated: 2010-02-02