You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
title: "Plan and Test the Database Engine Upgrade Plan"
2
+
title: "Plan and test the Database Engine upgrade plan"
3
3
description: This article describes planning before you begin your SQL Server upgrade, including a planning checklist and developing and testing an upgrade plan.
4
4
author: rwestMSFT
5
5
ms.author: randolphwest
6
-
ms.date: 07/25/2022
6
+
ms.date: 05/23/2024
7
7
ms.service: sql
8
8
ms.subservice: install
9
9
ms.topic: conceptual
10
10
monikerRange: ">=sql-server-2016"
11
11
---
12
-
# Plan and test the database engine upgrade plan
12
+
# Plan and test the Database Engine upgrade plan
13
13
14
14
[!INCLUDE [SQL Server -Windows Only](../../includes/applies-to-version/sql-windows-only.md)]
15
15
16
-
To perform a successful [!INCLUDE[ssnoversion](../../includes/ssnoversion-md.md)] upgrade, regardless of approach, appropriate planning is required.
16
+
To perform a successful [!INCLUDE[ssnoversion](../../includes/ssnoversion-md.md)] upgrade, regardless of approach, appropriate planning is required.
17
17
18
18
## Release notes and known upgrade issues
19
19
20
-
Before upgrading the [!INCLUDE[ssDE](../../includes/ssde-md.md)], review:
20
+
Before upgrading the [!INCLUDE[ssDE](../../includes/ssde-md.md)], review:
21
21
22
-
-[SQL Server 2019 Release Notes](../../sql-server/sql-server-2019-release-notes.md)
23
-
-[SQL Server 2017 Release Notes](../../sql-server/sql-server-2017-release-notes.md)
24
-
-[SQL Server 2016 Release Notes](../../sql-server/sql-server-2016-release-notes.md)
25
-
-[SQL Server Database Engine Backward Compatibility](../discontinued-database-engine-functionality-in-sql-server.md) article.
22
+
-[SQL Server 2022 release notes](../../sql-server/sql-server-2022-release-notes.md)
23
+
-[SQL Server 2019 release notes](../../sql-server/sql-server-2019-release-notes.md)
24
+
-[SQL Server 2017 release notes](../../sql-server/sql-server-2017-release-notes.md)
25
+
-[SQL Server 2016 release notes](../../sql-server/sql-server-2016-release-notes.md)
26
+
-[SQL Server Database Engine backward compatibility](../discontinued-database-engine-functionality-in-sql-server.md) article.
26
27
27
28
## Pre-upgrade planning checklist
28
29
29
-
Before upgrading the [!INCLUDE[ssDE](../../includes/ssde-md.md)], review the following checklist and the associated articles. These articles apply to all upgrades, regardless of upgrade method and help you determine the most appropriate upgrade method: Rolling upgrade, new installation upgrade, or in-place upgrade. For example, you may not be able to perform an upgrade in-place or a rolling upgrade if you are upgrading the operating system, upgrading from SQL Server 2005, or upgrading from a 32-bit version of SQL Server. For a decision tree, see [Choose a Database Engine Upgrade Method](../../database-engine/install-windows/choose-a-database-engine-upgrade-method.md).
30
+
Before upgrading the [!INCLUDE[ssDE](../../includes/ssde-md.md)], review the following checklist and the associated articles. These articles apply to all upgrades, regardless of upgrade method and help you determine the most appropriate upgrade method: Rolling upgrade, new installation upgrade, or in-place upgrade. For example, you might not be able to perform an upgrade in-place or a rolling upgrade, if you upgrade the operating system, upgrading from [!INCLUDE [ssversion2005-md](../../includes/ssversion2005-md.md)], or upgrading from a 32-bit version of [!INCLUDE [ssnoversion-md](../../includes/ssnoversion-md.md)]. For a decision tree, see [Choose a Database Engine Upgrade Method](choose-a-database-engine-upgrade-method.md).
30
31
31
-
-**Hardware and software requirements:** Review the hardware and software requirements to for installing [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)]. These requirements can be found at: [Hardware and Software Requirements for Installing SQL Server](../../sql-server/install/hardware-and-software-requirements-for-installing-sql-server.md). A part of any upgrade planning cycle is to consider upgrading hardware (newer hardware is faster and may reduce licensing either due to fewer processors or due to database and server consolidation) and upgrading the operating system. These types of hardware and software changes affect the type of upgrade method you choose.
32
+
-**Hardware and software requirements:** Review the hardware and software requirements to for installing [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)]. These requirements can be found at: [Hardware and Software Requirements for Installing SQL Server](../../sql-server/install/hardware-and-software-requirements-for-installing-sql-server.md). A part of any upgrade planning cycle is to consider upgrading hardware and the operating system. Newer hardware is faster, and can reduce licensing either due to fewer processors or due to database and server consolidation. These types of hardware and software changes affect the type of upgrade method you choose.
32
33
33
-
-**Current environment:** Research your current environment to understand the [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] components that are being used and the clients that connect to your environment.
34
+
-**Current environment:** Research your current environment to understand the [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] components that are being used and the clients that connect to your environment.
34
35
35
-
-**Client providers:** While upgrading does not require you to update the provider for each of your clients, you may choose to do so. If you are upgrading from [!INCLUDE[sql14](../../includes/sssql14-md.md)] or older, the following [!INCLUDE[sql15](../../includes/sssql16-md.md)] features either require an updated provider for each client or an updated provider to provide additional functionality:
36
+
-**Client providers:** While upgrading doesn't require you to update the provider for each of your clients, you might choose to do so. If you upgrade from [!INCLUDE[sql14](../../includes/sssql14-md.md)] or older, the following [!INCLUDE[sql15](../../includes/sssql16-md.md)] features either require an updated provider for each client or an updated provider to provide additional functionality:
-[Availability Group Listeners, Client Connectivity, and Application Failover (SQL Server)](../../database-engine/availability-groups/windows/listeners-client-connectivity-application-failover.md)
45
+
-[Availability Group Listeners, Client Connectivity, and Application Failover (SQL Server)](../availability-groups/windows/listeners-client-connectivity-application-failover.md)
45
46
46
47
- TLS Security update
47
48
48
49
-**Third-party components:** Determine the compatibility of third-party components, such as integrated backup.
49
50
50
-
-**Target environment:** Verify that your target environment meets the hardware and software requirements and that it can support the original system's requirements. For example, your upgrade may involve the consolidation of multiple SQL Server instances to a single, new [!INCLUDE[ssnoversion](../../includes/ssnoversion-md.md)] instance, or the virtualization of your [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] environment to a private or public cloud.
51
+
-**Target environment:** Verify that your target environment meets the hardware and software requirements and that it can support the original system's requirements. For example, your upgrade might involve the consolidation of multiple [!INCLUDE [ssnoversion-md](../../includes/ssnoversion-md.md)] instances to a single, new [!INCLUDE[ssnoversion](../../includes/ssnoversion-md.md)] instance, or the virtualization of your [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] environment to a private or public cloud.
51
52
52
-
-**Edition:** Determine the appropriate edition of [!INCLUDE[ssnoversion](../../includes/ssnoversion-md.md)] for your upgrade and determine the valid upgrade paths for the upgrade. For detailed information, see [Supported Version and Edition Upgrades](../../database-engine/install-windows/supported-version-and-edition-upgrades.md). Before you upgrade from one edition of [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] to another, verify that the functionality that you are currently using is supported in the edition to which you are upgrading.
53
+
-**Edition:** Determine the appropriate edition of [!INCLUDE[ssnoversion](../../includes/ssnoversion-md.md)] for your upgrade and determine the valid upgrade paths for the upgrade. For detailed information, see [Supported Version and Edition Upgrades](supported-version-and-edition-upgrades.md). Before you upgrade from one edition of [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] to another, verify that the functionality that you currently use is supported in the edition to which you upgrade.
53
54
54
55
> [!NOTE]
55
-
> When you upgrade [!INCLUDE[ssnoversion](../../includes/ssnoversion-md.md)] from a prior version of [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] Enterprise edition, choose between Enterprise Edition: Core-based Licensing and Enterprise Edition. These Enterprise editions differ only with respect to the licensing modes. For more information, see [Compute Capacity Limits by Edition of SQL Server](../../sql-server/compute-capacity-limits-by-edition-of-sql-server.md).
56
+
> When you upgrade [!INCLUDE[ssnoversion](../../includes/ssnoversion-md.md)] from a prior version of [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] Enterprise edition, choose between Enterprise edition: Core-based Licensing and Enterprise edition. These Enterprise editions differ only with respect to the licensing modes. For more information, see [Compute Capacity Limits by Edition of SQL Server](../../sql-server/compute-capacity-limits-by-edition-of-sql-server.md).
56
57
57
-
-**Backward compatibility:** Review the [!INCLUDE[ssnoversion](../../includes/ssnoversion-md.md)] database engine backward compatibility article to review changes in behavior between [!INCLUDE[ssnoversion](../../includes/ssnoversion-md.md)] and the [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] version from which you are upgrading. See [SQL Server Database Engine Backward Compatibility](../discontinued-database-engine-functionality-in-sql-server.md).
58
+
-**Backward compatibility:** Review the [!INCLUDE[ssnoversion](../../includes/ssnoversion-md.md)] database engine backward compatibility article to review changes in behavior between [!INCLUDE[ssnoversion](../../includes/ssnoversion-md.md)] and the [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] version from which you upgrade. See [SQL Server Database Engine Backward Compatibility](../discontinued-database-engine-functionality-in-sql-server.md).
58
59
59
-
-**Data Migration Assistant:** Run the Data Migration Assistant to assist in diagnosing issues that might either block the upgrade process or require modification to existing scripts or applications due to a breaking change.
60
+
-**Data Migration Assistant:** Run the Data Migration Assistant to help diagnose issues that might either block the upgrade process or require modification to existing scripts or applications due to a breaking change.
60
61
61
62
You can download the Data Migration Assistant [here](https://aka.ms/get-dma).
62
63
63
-
-**System configuration checker:** Run the [!INCLUDE[ssnoversion](../../includes/ssnoversion-md.md)] System Configuration Checker (SCC) to determine if the SQL Server setup program detects any blocking issues before you schedule the upgrade. For more information, see [Check Parameters for the System Configuration Checker](../../database-engine/install-windows/check-parameters-for-the-system-configuration-checker.md).
64
+
-**System configuration checker:** Run the [!INCLUDE[ssnoversion](../../includes/ssnoversion-md.md)] System Configuration Checker (SCC) to determine if the [!INCLUDE [ssnoversion-md](../../includes/ssnoversion-md.md)] setup program detects any blocking issues before you schedule the upgrade. For more information, see [Check Parameters for the System Configuration Checker](check-parameters-for-the-system-configuration-checker.md).
64
65
65
-
-**Upgrading memory-optimized tables:** When upgrading a SQL Server 2014 database instance containing memory-optimized tables to SQL Server 2016, the upgrade process requires additional time to convert the memory-optimized tables to the new on-disk format (and the database is offline while these steps are happening. The amount of time is dependent upon the size of the memory-optimized tables and the speed of the I/O subsystem. The upgrade requires three sizes of data operations for in-place and new installation upgrades (step 1 is not required for rolling upgrades, but steps 2 and 3 are required):
66
+
-**Upgrading memory-optimized tables:** When you upgrade a [!INCLUDE [sssql14-md](../../includes/sssql14-md.md)]instance containing memory-optimized tables to [!INCLUDE [sssql16-md](../../includes/sssql16-md.md)] and later versions, the upgrade process requires more time to convert the memory-optimized tables to the new on-disk format. During this process, the database is offline. The amount of time depends upon the size of the memory-optimized tables and the speed of the I/O subsystem. The upgrade requires three sizes of data operations for in-place and new installation upgrades (step 1 isn't required for rolling upgrades, but steps 2 and 3 are required):
66
67
67
68
1. Run database recovery using the old on-disk format (including loading all data in memory-optimized tables into memory from disk)
68
69
69
70
1. Serialize the data to disk in the new on-disk format
70
71
71
72
1. Run database recovery using the new format (including loading all data in memory-optimized tables into memory from disk)
72
73
73
-
Additionally, insufficient space on disk during this process causes recovery to fail. Ensure there is sufficient space on disk to store the existing database plus additional storage equal to the current size of the containers in the MEMORY_OPTIMIZED_DATA filegroup in the database to perform an in-place upgrade or when attaching a SQL Server 2014 database to a SQL Server 2016 instance. Use the following query to determine the disk space currently required for the MEMORY_OPTIMIZED_DATA filegroup, and consequently also the amount of free disk space required for upgrade to succeed:
74
+
Additionally, insufficient space on disk during this process causes recovery to fail. Ensure there's sufficient space on disk to store the existing database, plus extra storage equal to the current size of the containers in the `MEMORY_OPTIMIZED_DATA` filegroup in the database to perform an in-place upgrade, or when attaching a [!INCLUDE [sssql14-md](../../includes/sssql14-md.md)]database to an instance running [!INCLUDE [sssql16-md](../../includes/sssql16-md.md)] or a later version. Use the following query to determine the disk space currently required for the `MEMORY_OPTIMIZED_DATA` filegroup, and also the amount of free disk space required for the upgrade to succeed:
74
75
75
76
```sql
76
77
SELECT CAST(SUM(size) AS FLOAT) *8/1024/1024AS [size in GB]
@@ -87,15 +88,15 @@ Before upgrading the [!INCLUDE[ssDE](../../includes/ssde-md.md)], review the fol
87
88
88
89
The best approach is to treat your upgrade like you would any IT project. Organize an upgrade team that has the database administration, network, extraction, transformation, and loading (ETL), and other skills required for the upgrade. The team needs to:
89
90
90
-
-**Choose the upgrade method:** See [Choose a Database Engine Upgrade Method](../../database-engine/install-windows/choose-a-database-engine-upgrade-method.md).
91
+
-**Choose the upgrade method:** See [Choose a Database Engine Upgrade Method](choose-a-database-engine-upgrade-method.md).
91
92
92
93
-**Develop a rollback plan:** Executing this plan enables you to restore your original environment if you need to roll back.
93
94
94
95
-**Determine acceptance criteria:** Verify that the upgrade is successful before you cut over users to the upgraded environment.
95
96
96
-
-**Test the upgrade plan:** To test performance using your actual workload, use the Microsoft SQL Server Distributed Replay Utility. This utility can use multiple computers to replay trace data, simulating a mission-critical workload. By performing a replay on a test server before and after a SQL Server upgrade, you can measure performance differences and look for any incompatibilities your application may have with the upgrade. For more information, see [SQL Server Distributed Replay](../../tools/distributed-replay/sql-server-distributed-replay.md) and [Administration Tool Command-line Options (Distributed Replay Utility)](../../tools/distributed-replay/administration-tool-command-line-options-distributed-replay-utility.md).
97
+
-**Test the upgrade plan:** To test performance using your actual workload, use the Microsoft SQL Server Distributed Replay Utility. This utility can use multiple computers to replay trace data, simulating a mission-critical workload. By performing a replay on a test server before and after a SQL Server upgrade, you can measure performance differences and look for any incompatibilities your application might have with the upgrade. For more information, see [SQL Server Distributed Replay](../../tools/distributed-replay/sql-server-distributed-replay.md) and [Administration Tool Command-line Options (Distributed Replay Utility)](../../tools/distributed-replay/administration-tool-command-line-options-distributed-replay-utility.md).
0 commit comments