DBA's Guide to SQL Server Migration & Version Upgrade

In my team, there are three types of people.

One group is always excited about new things—latest devices, new OS versions, new tools, or AI models. The moment a new SQL Server version is released, their first question is, "When are we upgrading?"

Another group prefers stability over everything. Their philosophy is simple: "If something works, do not touch it until it breaks."

And then third group is quiet observers, who usually support others.

So whenever the topic of SQL Server migration or version update comes up, it turns into a familiar dilemma—should we move forward or stay with older version?

Over time, I have realized that this is not just a team discussion. It is a common challenge for every DBA, and the answer requires more than just preference or instinct.

Figure-1: SQL Server Migration & Version Upgrade

SQL Server Migration & Version Upgrade

Simply migration means shifting your present SQL Server to a new environment. Environment could be upgrading hardware like CPU, disk, memory etc to your existing server, new server, cloud or even new OS. Version upgrade is moving your SQL Server from an older version to latest one. Some people even do version upgrade and migration activity together and refer it as migration. Migration or version upgrade could be:

  • In-place - the migration or version upgrade could take place in the same server. This is fast and low cost as it requires no application, database backup & restore, DNS/aliases/firewall modifications. In flip side, you cannot test it in advance. In case anything goes wrong, downtime tends to be longer as rollback is often difficult and time consuming.
  • New Server - building a new environment for your production, test it rigorously, fix all bugs, transfer data, take confirmation from all stakeholders, and finally migrate. Planned activity and success rate is high. In case anything goes wrong, you can easily rollback or switch to older platform. Downtime is less and mostly as per planning. However, it requires lots of coordination, testing, security checking that means time and budget is high.

When You Should Consider Migration

  1. Expiry of Hardware Warranty - Running SQL Server on expired hardware may lead to unplanned migration as it may break anytime. This will affect your business. Even it may jeopardize your career. So, migrate to new hardware timely or acquire extended warranty from your hardware vendor.
  2. To meet the new business requirements or growth projection, you may need the additional hardware.
  3. Your company may consider to move from on-prem to cloud.
  4. Change of your application may need migration.

When You Should Consider Version Upgrade

  1. Software EOL - Using unsupported version means bug fixing, security vulnerability all are your responsibility. For example, Microsoft is going to discontinue extended support of SQL Server 2016 on 2026 and 2017's support on 2027. So, if you are using older version, plan to use new.
  2. Features - New version comes with new features and improved database engine. For example SQL Server 2019 and 2022 have better Intelligent Query Processing (IQP), improved adaptive joins, faster recovery & safer rollbacks, some security features (like TDE, always encrypted, ledger capabilities (in 2022), granular auditing) are baseline.
  3. Compliance - Compliance like PCI DSS, HIPAA, SOX, GDPR and SOC 2 advocate for latest version.
  4. Cloud ready - The newer versions are cloud ready. For example, backup to URL, cross-environment DR, and more. They are ready to span on-prem, cloud, or hybrid.
  5. Innovation - Latest version open up new window of innovation. For example, Now SQL Server has built-in ML model development features.
  6. Talent Acquisition - Senior DBAs want to work with latest technology. Older version indicates stagnation. For hiring and retaining talented professional, you should embrace new version.

Financial Aspect of Migration & Version Upgrade

Every migration or version upgrade has inherent cost. You should consider the cost components before taking any final call.

  • Hardware cost - The new hardware has onetime investment and also there could have annual maintenance charge. 
  • License cost - Purchasing new SQL Server license will have cost.
  • Training & Testing - Conducting full end-to-end testing and training up the team have associated cost.
  • Consultancy fee - If you hire any consultant for smooth migration that will contribute significant part of your budget.
  • System downtime - Your system will be down during the activity. Calculate you much revenue you are going to lose for that period.

Planning is the Key

If you are convinced for migration or version upgrade, next item should be a solid written plan. Your plan should include:

  • Hardware - Estimate your business growth for next five years and choose hardware accordingly.
  • License - Acquire license to support your business requirements.
  • Application features & Business flow - Document your application features and business flow. Validate it with all concern team.
  • Budget - Estimate the required budget.
  • Management approval - Approve your plan and budget.
  • Team Formation - Form a team with clear roles and responsibilities.
  • Rollback - In case of any failure, you should have the rollback plan.
  • Align Stakeholders - Communicate with all stakeholder about the impact and downtime.
  • Baseline - Create baseline of your production environment.

Some Important Considerations

  • Pre-migration (Mostly applicable for new server)
    • Test the all features of your application against new system and validate it by concern teams.
    • Take full backup and test it.
    • Ensure all required components are available as per rollback plan.
    • Collect all encryption keys, network route, domains, DNS etc.
    • List down all DB users, roles and permissions.
    • Check replication, availability group etc.
  • Post-migration
    • Test the all application features again and validate it by concern teams.
    • Check all users can access the database as per their permission.
    • Ensure agent jobs are working fine.
    • Monitor error logs
    • Check backup and test it.
    • Validate all SSRS, SSIS or other services.
    • Compare performance to your baseline.
    • Keep babysitting at least for 24 hours.

Final Words

Database migration has inherent risks. You can mitigate them by a well-planned execution. Do not migrate or due to peer pressure. 

In the end, the debate between change and stability will always exist. But as DBAs, our role is not to take sides. it is to make thoughtful decisions based on context, risk, and long-term impact. The right choice is not always obvious, but it should always be intentional.

References

 

Going Further

If SQL Server is your thing and you enjoy learning real-world tips, tricks, and performance hacks—you are going to love my training sessions too! 

Need results fast? I am also available for 1-on-1 consultancy to help you troubleshoot and fix your database performance issues.

Let’s make your SQL Server to take your business Challenge!

For any queries, mail to mamehedi.hasan[at]gmail.com.

Add comment