I am in the process of migrating a SQL Server Cluster. I would like to hear considerations for a successful migration.
The specs of production cluster are:
- Windows Server 2003 SP2 32bit.
- SQL Server 2005 Enterprise edition – 9.00.3152.00 (Build 3790: Service Pack 2)
- Disk space is about 1.5TB including all databases. (IBM v7000)
The specs of destination cluster are:
- Windows Server 2016 Standard 64 Bits
- SQL Server 2016 Standard 64 Bits
- Same disk as old cluster, but faster (IBM v9000 Flash system)
Special Considerations:
- Cluster Name must be the same to avoid changes in applications, linked servers and other connections. I mean, we have to migrate with a different cluster name, then shut down old cluster and rename the new one using the old name (I hope this to be clear)
At this time what I have done and tested is the following:
- Create and configure a Windows Failover Cluster using Windows Server 2016 (with a different name)
- Configure Active Directory to allow cluster to create objects
- Restoring a database from MSSQL 2005 to MSSQL 2016, run some queries and explore objects.
Also:
- I have split the drives following the best practices.
- We are cleaning "super users" and giving just the right permissions to users.
- Setting and testing compatibility mode to 130
- Backup strategy was defined about 1 week ago to ensure data availability
Things to do or consider:
- Download all SSIS packages to new project and test them against the new cluster. Once the cluster name changes, change SSIS to original name
- Migrate all Jobs and make sure they run successfully
- Test application that uses the migrated database
- Create ODBC connections for Linked Servers pointing to SQL Server 2000 Databases (yes, we still use MSSQL 2000)
- Backup Active Directory to have a rollback point in case something fail regarding cluster names (we have to delete old object and create a new one)
- Configure SQL Replication.
Best Answer
This is one of those questions that I love to see. There are a lot of things to add to do to add to migration and upgrade successes and it warms the hear to see the question.
You've already covered a lot of things to consider and I'll add a few thoughts but I am looking forward to seeing other answers with more ideas from others.
I'm not including things you've already included in the great list you have started and knowing me I'll be editing and adding to this answer as I go.
**One disagreement I may have with your approach: Regarding the cluster network name, why not make a new cluster name and just use CNAME to point connections to the old name to the new instance? This lets you make a new name, avoid messing with conflict potential, makes go live night smoother and gives you a clearer and easier rollback. I would do a CNAME approach and change the CNAME once you are sure the old can be taken offline. I may be alone here so I welcome comments supporting that idea or disagreeing.
I see a few areas of focus when it comes to migrating. If you make an "outline" of the phases and outline of the areas to focus on comes to mind: Planning, Pre-Migration Steps, Day of Migration, Post Migration. I'll cover some of those sections here and I am hoping others join in with ideas.
Planning Thoughts
Since you are starting with new hardware. This is a great chance to make sure you are considering all of the best practices that may have been overlooked before. Things like:
Split out your drives. At the very least I'd love to see separate drives for (Your Mileage May Vary here also, really depends on performance profile of your setup):
When formatting your drives for Data files and TempDB specifically, consider doing the 64KB allocation unit size. (Source)
Now is your chance to maybe clean up some of those security holes and flaws that could exist. Look to build with best practices and least access.
Before Migration
Lots of things to do before the migration. Some that come to mind immediately are:
Immediately After Migration
Lots more here. And a category of "On migration week" could be added and maybe someone will or I will edit and add later.
Some things here that come to mind straight away: