From a3242a3aaa8e0eaa4d84cabd57adab6774b103d5 Mon Sep 17 00:00:00 2001 From: Dimitri Furman Date: Tue, 29 Oct 2024 10:50:23 -0400 Subject: [PATCH 1/6] Update what's new and known issues --- azure-sql/database-watcher-overview.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/azure-sql/database-watcher-overview.md b/azure-sql/database-watcher-overview.md index 02a366bd386..03b0f800bca 100644 --- a/azure-sql/database-watcher-overview.md +++ b/azure-sql/database-watcher-overview.md @@ -5,7 +5,7 @@ description: An overview of database watcher for Azure SQL, a managed monitoring author: dimitri-furman ms.author: dfurman ms.reviewer: wiassaf -ms.date: 10/23/2024 +ms.date: 10/29/2024 ms.service: azure-sql ms.subservice: monitoring ms.topic: conceptual @@ -199,7 +199,7 @@ This section describes recent database watcher fixes, changes, and improvements. | Time period | Changes | |:--|:--| -| October 2024 | - Add support for user assigned identity. For more information, see [Modify watcher identity](database-watcher-manage.md#modify-watcher-identity).
- Automatically grant the watcher access to key vault secrets when adding a SQL target that uses SQL authentication.
- Automatically grant the watcher access to an Azure Data Explorer database when adding a data store to an existing watcher.
- Add the feedback button on the **Overview** page and other pages. | +| October 2024 | - Fix a bug where the **Table metadata** dataset was not collected if there are any views with invalid table references, or any tables with multiple column check constraints.
- Add support for user assigned identity. For more information, see [Modify watcher identity](database-watcher-manage.md#modify-watcher-identity).
- Automatically grant the watcher access to key vault secrets when adding a SQL target that uses SQL authentication.
- Automatically grant the watcher access to an Azure Data Explorer database when adding a data store to an existing watcher.
- Add the feedback button on the **Overview** page and other pages. | | September 2024 | - Fix a bug where the number of user logical sessions in the **Session statistics** dataset was always the same as the number of user sessions, even if [MARS](/sql/relational-databases/native-client/features/using-multiple-active-result-sets-mars) logical sessions were used.
- Fix a bug where elastic pool storage utilization wasn't reported correctly for Hyperscale elastic pools.
- Resolve an issue where for certain datasets, the first sample collected after a watcher restart might contain data that has already been collected before restart.
- Improve collection query performance to avoid timeouts for the **Table metadata** dataset.
- Improve collection reliability for the **Query runtime statistics** and **Query wait statistics** datasets on SQL Managed Instance.
- Add failover-related columns to the **Database replicas** dataset for SQL Managed Instance.
- Add index operational statistics columns to the **Index metadata** datasets.
- Add support for selecting multiple Azure SQL databases in the **Add SQL target** blade.| | August 2024 | - Enable database watcher in the **Central US**, **East US 2**, **North Europe**, and **Sweden Central** Azure regions.
- Add subscription and resource group filters in estate [dashboards](#dashboards). | | July 2024 | - Fix a bug where the **Performance counters** datasets were not collected from databases with a case-sensitive catalog collation, or managed instances with a case-sensitive database collation.
- Fix a bug where data was not collected if the database name in the SQL metadata had a different case than the database name in the Azure Resource Manager (ARM) metadata.
- Fix a bug where the **Query runtime statistics** and **Query wait statistics** datasets were not collected in databases with a large volume of new queries and query plans inserted into Query Store tables.
- Resolve an issue where the **Geo-replicas** and **Replicas** datasets were not collected from Hyperscale databases.
- Add the `subscription_id` and `resource_group_name` [common columns](database-watcher-data.md#common-columns) to all datasets. Requires a one-time [restart](database-watcher-manage.md#start-and-stop-a-watcher) of a watcher.
- Add the `resource_id` [common column](database-watcher-data.md#common-columns) to all datasets. The data appears for SQL targets added in July 2024 or later. To make data appear for an existing SQL target, [remove](database-watcher-manage.md#remove-sql-targets-from-a-watcher) and [re-add](database-watcher-manage.md#add-sql-targets-to-a-watcher) the target, and [restart](database-watcher-manage.md#start-and-stop-a-watcher) the watcher. | @@ -229,6 +229,7 @@ During preview, database watcher has the following known issues. | If you create a managed private endpoint for a watcher to connect to a SQL managed instance that is stopped, the provisioning state of the private endpoint is reported as **Failed**, and the watcher cannot connect to the instance. | Delete the managed private endpoint with the **Failed** provisioning state and [start](./managed-instance/instance-stop-start-how-to.md) the SQL managed instance. Once the failed private endpoint is deleted and the instance is running, [re-create](database-watcher-manage.md#create-a-managed-private-endpoint) the managed private endpoint. | | Data is not collected if you use a database in Real-Time Analytics as the data store, and the **OneLake availability** option is enabled. | Disable the **OneLake availability** option and restart the watcher to resume data collection. | | Database watcher deployments via Bicep or ARM templates aren't idempotent. If a watcher, SQL target, or a managed private endpoint already exists, deployment fails. | Use conditional deployment to skip deploying existing resources. For more information, see [Conditional deployments in Bicep with the if expression](/azure/azure-resource-manager/bicep/conditional-resource-deployment) and [Conditional deployment in ARM templates](/azure/azure-resource-manager/templates/conditional-resource-deployment). | +| Because of a known issue in Azure SQL Database, data in the **Backup history** dataset for Azure SQL databases is not collected if the database catalog collation is other than the default `SQL_Latin1_General_CP1_CI_AS`. | None at this time. | ## Troubleshoot From 5ae3b31f0a2d9a22f78e29151d9d0cccf362f74a Mon Sep 17 00:00:00 2001 From: Dimitri Furman Date: Tue, 29 Oct 2024 10:59:38 -0400 Subject: [PATCH 2/6] Update troubleshooting --- azure-sql/database-watcher-overview.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/azure-sql/database-watcher-overview.md b/azure-sql/database-watcher-overview.md index 03b0f800bca..f6b8d748661 100644 --- a/azure-sql/database-watcher-overview.md +++ b/azure-sql/database-watcher-overview.md @@ -240,12 +240,21 @@ This section describes the steps you can take to solve common problems. If the s If you create a new watcher and do not see monitoring data on dashboards and in the data store, or if you only see older data, review this section. - On the watcher **Overview** page, check the **Status** field to see if the watcher is running. If not, use the **Start** button on the same page to start data collection. A new watcher is not [started](database-watcher-manage.md#start-and-stop-a-watcher) automatically. + - Check that the watcher has [access to the data store](database-watcher-manage.md#grant-access-to-data-store). + - If you use an Azure Data Explorer database as the data store, check that the Azure Data Explorer cluster is started. For more information, see [Stopped Azure Data Explorer clusters](database-watcher-manage.md#stopped-azure-data-explorer-clusters). + - Check that the watcher has the specific, limited [access to SQL targets](database-watcher-manage.md#grant-access-to-sql-targets). Additionally, if using SQL authentication for any targets, check watcher [access to key vault](database-watcher-manage.md#additional-configuration-to-use-sql-authentication), or use the recommended Microsoft Entra authentication instead. + - If you want the watcher to use Microsoft Entra authentication to connect to SQL targets, make sure that [Microsoft Entra authentication is enabled](database/authentication-aad-configure.md) on the logical servers hosting the database and elastic pool targets, and on the managed instance targets. + - If you created any private endpoints for the watcher, make sure that they are approved by the resource owner. + - If you are using public connectivity, make sure that the [requirements](database-watcher-overview.md#public-connectivity) to allow the watcher to connect to targets, data store, and key vault are met. + +- The Azure Data Explorer cluster or database, or the Real-Time Analytics database might have been deleted after it was selected as the data store for your watcher. Navigate to the cluster and the database, and confirm that they exist. + - If you are using the free Azure Data Explorer cluster, make sure that you haven't reached the [storage capacity](/azure/data-explorer/start-for-free#specifications) of the cluster. For more information, see [Free Azure Data Explorer cluster](database-watcher-manage.md#free-azure-data-explorer-cluster). If you make changes to watcher access or connectivity as part of troubleshooting, you might need to stop and restart the watcher for the changes to take effect. @@ -259,9 +268,6 @@ If you select the **Dashboards** page of a watcher, but do not see a summary of To resolve this, establish private connectivity from your machine to the Azure Data Explorer cluster as described in [Private connectivity to the data store](database-watcher-manage.md#private-connectivity-to-the-data-store). -- The Azure Data Explorer cluster might be stopped. For more information, see [Stopped Azure Data Explorer clusters](database-watcher-manage.md#stopped-azure-data-explorer-clusters). -- The Azure Data Explorer cluster or database, or the Real-Time Analytics database might have been deleted after it was selected as the data store for your watcher. Navigate to the cluster and the database, and confirm that they exist. - To validate that you have access and can connect to the data store, and that the data store database exists, follow these steps: - On the **Dashboards** page of a watcher, expand the **Data store** section, and copy the **Kusto query URI** value. Make sure to copy the entire URI string. Make a note of the **Kusto database** value as well. From 84f4bf5a3a5972458d5ab87808a449cec9a8530e Mon Sep 17 00:00:00 2001 From: Andreas Wolter <47007612+AndreasWolter@users.noreply.github.com> Date: Tue, 29 Oct 2024 18:07:40 -0700 Subject: [PATCH 3/6] Update permission requirement --- .../sys-server-event-sessions-transact-sql.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/relational-databases/system-catalog-views/sys-server-event-sessions-transact-sql.md b/docs/relational-databases/system-catalog-views/sys-server-event-sessions-transact-sql.md index 428d2ce8d05..07a8644d9a2 100644 --- a/docs/relational-databases/system-catalog-views/sys-server-event-sessions-transact-sql.md +++ b/docs/relational-databases/system-catalog-views/sys-server-event-sessions-transact-sql.md @@ -25,6 +25,7 @@ Lists all the server-scoped event session definitions that exist in SQL Server o > [!NOTE] > Azure SQL Database supports only database-scoped event sessions. See the related view, [sys.database_event_sessions](sys-database-event-sessions-azure-sql-database.md). + |Column name|Data type|Description| |-----------------|---------------|-----------------| @@ -42,7 +43,8 @@ Lists all the server-scoped event session definitions that exist in SQL Server o ## Permissions -Requires VIEW SERVER STATE permission on the server. +For SQL Server 2019 (15.x) and previous versions, requires VIEW SERVER STATE permission on the server. +For SQL Server 2022 (16.x) and later versions, requires VIEW SERVER PERFORMANCE STATE permission on the server. ## Next steps From 82a63d0797944f4063c5ad09d525d176ceef8850 Mon Sep 17 00:00:00 2001 From: Randolph West MSFT <97149825+rwestMSFT@users.noreply.github.com> Date: Thu, 31 Oct 2024 10:45:15 -0600 Subject: [PATCH 4/6] Edit pass --- .../sys-server-event-sessions-transact-sql.md | 55 +++++++++---------- 1 file changed, 27 insertions(+), 28 deletions(-) diff --git a/docs/relational-databases/system-catalog-views/sys-server-event-sessions-transact-sql.md b/docs/relational-databases/system-catalog-views/sys-server-event-sessions-transact-sql.md index 07a8644d9a2..e4f50b8a979 100644 --- a/docs/relational-databases/system-catalog-views/sys-server-event-sessions-transact-sql.md +++ b/docs/relational-databases/system-catalog-views/sys-server-event-sessions-transact-sql.md @@ -1,9 +1,9 @@ --- title: "sys.server_event_sessions (Transact-SQL)" -description: sys.server_event_sessions (Transact-SQL) +description: sys.server_event_sessions lists all the server-scoped event session definitions that exist in SQL Server or Azure SQL Managed Instance. author: rwestMSFT ms.author: randolphwest -ms.date: "03/30/2022" +ms.date: 10/31/2024 ms.service: sql ms.subservice: system-objects ms.topic: "reference" @@ -19,37 +19,36 @@ dev_langs: - "TSQL" --- # sys.server_event_sessions (Transact-SQL) + [!INCLUDE [SQL Server SQL Managed Instance](../../includes/applies-to-version/sql-asdbmi.md)] Lists all the server-scoped event session definitions that exist in SQL Server or Azure SQL Managed Instance. -> [!NOTE] -> Azure SQL Database supports only database-scoped event sessions. See the related view, [sys.database_event_sessions](sys-database-event-sessions-azure-sql-database.md). - - -|Column name|Data type|Description| -|-----------------|---------------|-----------------| -|event_session_id|**int**|The unique ID of the event session. Is not nullable.| -|name|**sysname**|The user-defined name for identifying the event session. name is unique. Is not nullable.| -|event_retention_mode|**nchar(1)**|Determines how event loss is handled. The default is S. Is not nullable. Is one of the following:

S. Maps to event_retention_mode_desc = ALLOW_SINGLE_EVENT_LOSS

M. Maps to event_retention_mode_desc = ALLOW_MULTIPLE_EVENT_LOSS

N. Maps to event_retention_mode_desc = NO_EVENT_LOSS| -|event_retention_mode_desc|**sysname**|Describes how event loss is handled. The default is ALLOW_SINGLE_EVENT_LOSS. Is not nullable. Is one of the following:

ALLOW_SINGLE_EVENT_LOSS. Events can be lost from the session. Single events are dropped only when all event buffers are full. Losing single events when buffers are full allows for acceptable [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] performance characteristics, while minimizing the loss in the processed event stream.

ALLOW_MULTIPLE_EVENT_LOSS. Full event buffers can be lost from the session. The number of events lost depends on the memory size allocated to the session, the partitioning of the memory, and the size of the events in the buffer. This option minimizes performance impact on the server when event buffers are quickly filled. However, large numbers of events can be lost from the session.

NO_EVENT_LOSS. No event loss is allowed. This option ensures that all events raised are retained. Using this option forces all the tasks that fire events to wait until space is available in an event buffer. This may lead to detectable performance degradation while the event session is active.| -|max_dispatch_latency|**int**|The amount of time, in milliseconds, that events will be buffered in memory before they are served to session targets. Valid values are from 0 to 2147483648, and 0. A value of 0 indicates that dispatch latency is infinite. Is nullable.| -|max_memory|**int**|The amount of memory allocated to the session for event buffering. The default value is 4 MB. Is nullable.| -|max_event_size|**int**|The amount of memory set aside for events that do not fit in event session buffers. If max_event_size exceeds the calculated buffer size, two additional buffers of max_event_size are allocated to the event session. Is nullable.| -|memory_partition_mode|**nchar(1)**|The location in memory where event buffers are created. The default partition mode is G. Is not nullable. memory_partition_mode is one of:

G - NONE

C - PER_CPU

N - PER_NODE| -|memory_partition_mode_desc|**sysname**|The default is NONE. Is not nullable. Is one of the following:

NONE. A single set of buffers are created within a SQL Server instance.

PER_CPU. A set of buffers is created for each CPU.

PER_NODE. A set of buffers is created for each non-uniform memory access (NUMA) node.| -|track_causality|**bit**|Enable or disable causality tracking. If set to 1 (ON), tracking is enabled and related events on different server connections can be correlated. The default setting is 0 (OFF). Is not nullable.| -|startup_state|**bit**|Value determines whether or not session is started automatically when the server starts. The default is 0. Is not nullable. Is one of:

0 (OFF). The session does not start when the server starts.

1 (ON). The event session starts when the server starts.| - +> [!NOTE] +> Azure SQL Database supports only database-scoped event sessions. See the related view, [sys.database_event_sessions](sys-database-event-sessions-azure-sql-database.md). + +| Column name | Data type | Description | +| --- | --- | --- | +| `event_session_id` | **int** | The unique ID of the event session. Not nullable. | +| `name` | **sysname** | The user-defined name for identifying the event session. name is unique. Not nullable. | +| `event_retention_mode` | **nchar(1)** | Determines how event loss is handled. The default is `S`. Not nullable. Can be one of the following values:

`S`. Maps to `event_retention_mode_desc = ALLOW_SINGLE_EVENT_LOSS`

`M`. Maps to `event_retention_mode_desc = ALLOW_MULTIPLE_EVENT_LOSS`

`N`. Maps to `event_retention_mode_desc = NO_EVENT_LOSS` | +| `event_retention_mode_desc` | **sysname** | Describes how event loss is handled. The default is `ALLOW_SINGLE_EVENT_LOSS`. Not nullable. Can be one of the following values:

`ALLOW_SINGLE_EVENT_LOSS`. Events can be lost from the session. Single events are dropped only when all event buffers are full. Losing single events when buffers are full allows for acceptable [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)] performance characteristics, while minimizing the loss in the processed event stream.

`ALLOW_MULTIPLE_EVENT_LOSS`. Full event buffers can be lost from the session. The number of events lost depends on the memory size allocated to the session, the partitioning of the memory, and the size of the events in the buffer. This option minimizes the performance impact on the server when event buffers are quickly filled. However, large numbers of events can be lost from the session.

`NO_EVENT_LOSS`. No event loss is allowed. This option ensures that all events raised are retained. Using this option forces all the tasks that fire events to wait until space is available in an event buffer. This might lead to detectable performance degradation while the event session is active. | +| `max_dispatch_latency` | **int** | The amount of time, in milliseconds, that events are buffered in memory before they're served to session targets. Valid values are from 0 to 2,147,483,648, and 0. A value of `0` indicates that dispatch latency is infinite. Nullable. | +| `max_memory` | **int** | The amount of memory allocated to the session for event buffering. The default value is 4 MB. Nullable. | +| `max_event_size` | **int** | The amount of memory set aside for events that don't fit in event session buffers. If `max_event_size` exceeds the calculated buffer size, two additional buffers of `max_event_size` are allocated to the event session. Nullable. | +| `memory_partition_mode` | **nchar(1)** | The location in memory where event buffers are created. The default partition mode is `G`. Not nullable. `memory_partition_mode` is one of:

`G` - `NONE`
`C` - `PER_CPU`
`N` - `PER_NODE` | +| `memory_partition_mode_desc` | **sysname** | The default is `NONE`. Not nullable. Can be one of the following values:

`NONE`. A single set of buffers are created within a SQL Server instance.

`PER_CPU`. A set of buffers is created for each CPU.

`PER_NODE`. A set of buffers is created for each non-uniform memory access (NUMA) node. | +| `track_causality` | **bit** | Enable or disable causality tracking. If set to `1` (`ON`), tracking is enabled and related events on different server connections can be correlated. The default setting is `0` (`OFF`). Not nullable. | +| `startup_state` | **bit** | Value determines whether or not session is started automatically when the server starts. The default is `0`. Not nullable. Can be one of:

`0` (`OFF`). The session doesn't start when the server starts.

`1` (`ON`). The event session starts when the server starts. | + ## Permissions -For SQL Server 2019 (15.x) and previous versions, requires VIEW SERVER STATE permission on the server. -For SQL Server 2022 (16.x) and later versions, requires VIEW SERVER PERFORMANCE STATE permission on the server. - -## Next steps +[!INCLUDE [sssql19-md](../../includes/sssql19-md.md)] and previous versions require `VIEW SERVER STATE` permission on the server. + +[!INCLUDE [sssql22-md](../../includes/sssql22-md.md)] and later versions require `VIEW SERVER PERFORMANCE STATE` permission on the server. -Learn more about related concepts in the following articles: +## Related content -- [Catalog Views (Transact-SQL)](../../relational-databases/system-catalog-views/catalog-views-transact-sql.md) -- [Extended Events Catalog Views (Transact-SQL)](../../relational-databases/system-catalog-views/extended-events-catalog-views-transact-sql.md) -- [Extended Events](../../relational-databases/extended-events/extended-events.md) +- [System catalog views (Transact-SQL)](catalog-views-transact-sql.md) +- [Extended Events Catalog Views (Transact-SQL)](extended-events-catalog-views-transact-sql.md) +- [Extended Events overview](../extended-events/extended-events.md) From 64efb84cbd0a30c2d0dfb2ac835cac56491ec8e8 Mon Sep 17 00:00:00 2001 From: Randolph West MSFT <97149825+rwestMSFT@users.noreply.github.com> Date: Thu, 31 Oct 2024 11:19:52 -0600 Subject: [PATCH 5/6] [SCOPED] XEvents are not xEvents --- azure-sql/database/analyze-prevent-deadlocks.md | 4 ++-- azure-sql/managed-instance/backup-activity-monitor.md | 2 +- docs/machine-learning/concepts/extensibility-framework.md | 2 +- .../back-up-and-restore-of-sql-server-databases.md | 2 +- .../performance/intelligent-query-processing-details.md | 2 +- .../performance/performance-dashboard.md | 2 +- .../performance/query-profiling-infrastructure.md | 8 ++++---- .../query-processing-architecture-guide.md | 6 +++--- docs/sql-server/sql-server-2016-release-notes.md | 4 ++-- 9 files changed, 16 insertions(+), 16 deletions(-) diff --git a/azure-sql/database/analyze-prevent-deadlocks.md b/azure-sql/database/analyze-prevent-deadlocks.md index ec339a829f5..3958f880a54 100644 --- a/azure-sql/database/analyze-prevent-deadlocks.md +++ b/azure-sql/database/analyze-prevent-deadlocks.md @@ -331,7 +331,7 @@ Different methods are available to obtain deadlock information for the ring buff # [Ring buffer target](#tab/ring-buffer) -If you set up an XEvents session writing to the ring buffer, you can query deadlock information with the following Transact-SQL. Before running the query, replace the value of `@tracename` with the name of your xEvents session. +If you set up an XEvents session writing to the ring buffer, you can query deadlock information with the following Transact-SQL. Before running the query, replace the value of `@tracename` with the name of your XEvents session. ```sql DECLARE @tracename sysname = N'deadlocks'; @@ -371,7 +371,7 @@ Downloading files from the Azure portal is recommended because this method does If an Extended Events session is currently running and writing to an event file target, the blob container being written to will have a **Lease state** of *Leased* in the Azure portal. The size will be the maximum size of the file. To download a smaller file, you may wish to stop and restart the Extended Events session before downloading files. This will cause the file to change its **Lease state** to *Available*, and the file size will be the space used by events in the file. -To stop and restart an XEvents session, connect to your database and run the following Transact-SQL. Before running the code, replace the name of the xEvents session with the appropriate value. +To stop and restart an XEvents session, connect to your database and run the following Transact-SQL. Before running the code, replace the name of the XEvents session with the appropriate value. ```sql ALTER EVENT SESSION [deadlocks_eventfile] ON DATABASE diff --git a/azure-sql/managed-instance/backup-activity-monitor.md b/azure-sql/managed-instance/backup-activity-monitor.md index 9394b7e4bee..0f016337d5e 100644 --- a/azure-sql/managed-instance/backup-activity-monitor.md +++ b/azure-sql/managed-instance/backup-activity-monitor.md @@ -120,7 +120,7 @@ SELECT * FROM b The following screenshot shows an example of the output of the above query: -![Screenshot of the xEvent output](./media/backup-activity-monitor/present-xevents-output.png) +![Screenshot of the XEvent output](./media/backup-activity-monitor/present-xevents-output.png) In this example, five databases were automatically backed up over the course of 2 hours and 30 minutes, and there are 130 entries in the XEvent session. diff --git a/docs/machine-learning/concepts/extensibility-framework.md b/docs/machine-learning/concepts/extensibility-framework.md index 2ce1b754e2b..8d78eabcc6e 100644 --- a/docs/machine-learning/concepts/extensibility-framework.md +++ b/docs/machine-learning/concepts/extensibility-framework.md @@ -91,7 +91,7 @@ BxlServer uses SQL Satellite for these tasks: SQL Satellite uses a custom data format that is optimized for fast data transfer between SQL Server and external script languages. It performs type conversions and defines the schemas of the input and output datasets during communications between SQL Server and the external script runtime. -The SQL Satellite can be monitored by using Windows extended events (xEvents). For more information, see [Extended Events for SQL Server Machine Learning Services](../../machine-learning/administration/extended-events.md). +The SQL Satellite can be monitored by using Windows extended events (XEvents). For more information, see [Extended Events for SQL Server Machine Learning Services](../../machine-learning/administration/extended-events.md). ## Communication channels between components diff --git a/docs/relational-databases/backup-restore/back-up-and-restore-of-sql-server-databases.md b/docs/relational-databases/backup-restore/back-up-and-restore-of-sql-server-databases.md index 06dcd67c2dd..15bd3d479f5 100644 --- a/docs/relational-databases/backup-restore/back-up-and-restore-of-sql-server-databases.md +++ b/docs/relational-databases/backup-restore/back-up-and-restore-of-sql-server-databases.md @@ -168,7 +168,7 @@ We recommend that you document your backup and restore procedures and keep a cop We also recommend that you maintain an operations manual for each database. This operations manual should document the location of the backups, backup device names (if any), and the amount of time that is required to restore the test backups. -## Monitor progress with xEvent +## Monitor progress with XEvent Backup and restore operations can take a considerable amount of time due to the size of a database and the complexity of the operations involved. When issues arise with either operation, you can use the **backup_restore_progress_trace** extended event to monitor progress live. For more information about extended events, see [extended events](../extended-events/extended-events.md). diff --git a/docs/relational-databases/performance/intelligent-query-processing-details.md b/docs/relational-databases/performance/intelligent-query-processing-details.md index 9279c2d41a9..16a1815b709 100644 --- a/docs/relational-databases/performance/intelligent-query-processing-details.md +++ b/docs/relational-databases/performance/intelligent-query-processing-details.md @@ -101,7 +101,7 @@ You can see usage attributes in the actual query execution plan: You can also track interleaved execution occurrences via the following extended events: -| xEvent | Description | +| XEvent | Description | | ---- | --- | | `interleaved_exec_status` | This event fires when interleaved execution is occurring. | | `interleaved_exec_stats_update` | This event describes the cardinality estimates updated by interleaved execution. | diff --git a/docs/relational-databases/performance/performance-dashboard.md b/docs/relational-databases/performance/performance-dashboard.md index 83678701a23..71d62f987c6 100644 --- a/docs/relational-databases/performance/performance-dashboard.md +++ b/docs/relational-databases/performance/performance-dashboard.md @@ -41,7 +41,7 @@ The Performance dashboard is divided into the following sections and sub-reports - Expensive Queries - Miscellaneous Information - Active Traces - - Active xEvent Sessions + - Active XEvent Sessions - Databases - Missing Indexes diff --git a/docs/relational-databases/performance/query-profiling-infrastructure.md b/docs/relational-databases/performance/query-profiling-infrastructure.md index 6649ca31005..6e6ed31e2a1 100644 --- a/docs/relational-databases/performance/query-profiling-infrastructure.md +++ b/docs/relational-databases/performance/query-profiling-infrastructure.md @@ -169,10 +169,10 @@ The following table summarizes the actions to enable either standard profiling o |Scope|Standard Profiling|Lightweight Profiling| |---------------|---------------|---------------| -|Global|xEvent session with the `query_post_execution_showplan` XE; Starting with [!INCLUDE[ssSQL11](../../includes/sssql11-md.md)]|Trace Flag 7412; Starting with [!INCLUDE[sssql16-md](../../includes/sssql16-md.md)] SP1| -|Global|SQL Trace and SQL Server Profiler with the `Showplan XML` trace event; Starting with SQL Server 2000|xEvent session with the `query_thread_profile` XE; Starting with [!INCLUDE[ssSQL14](../../includes/sssql14-md.md)] SP2| -|Global|-|xEvent session with the `query_post_execution_plan_profile` XE; Starting with [!INCLUDE[ssSQL17](../../includes/sssql17-md.md)] CU14 and [!INCLUDE[sql-server-2019](../../includes/sssql19-md.md)]| -|Session|Use `SET STATISTICS XML ON`; Starting with SQL Server 2000|Use the `QUERY_PLAN_PROFILE` query hint together with an xEvent session with the `query_plan_profile` XE; Starting with [!INCLUDE[sssql16-md](../../includes/sssql16-md.md)] SP2 CU3 and [!INCLUDE[ssSQL17](../../includes/sssql17-md.md)] CU11| +|Global|XEvent session with the `query_post_execution_showplan` XE; Starting with [!INCLUDE[ssSQL11](../../includes/sssql11-md.md)]|Trace Flag 7412; Starting with [!INCLUDE[sssql16-md](../../includes/sssql16-md.md)] SP1| +|Global|SQL Trace and SQL Server Profiler with the `Showplan XML` trace event; Starting with SQL Server 2000|XEvent session with the `query_thread_profile` XE; Starting with [!INCLUDE[ssSQL14](../../includes/sssql14-md.md)] SP2| +|Global|-|XEvent session with the `query_post_execution_plan_profile` XE; Starting with [!INCLUDE[ssSQL17](../../includes/sssql17-md.md)] CU14 and [!INCLUDE[sql-server-2019](../../includes/sssql19-md.md)]| +|Session|Use `SET STATISTICS XML ON`; Starting with SQL Server 2000|Use the `QUERY_PLAN_PROFILE` query hint together with an XEvent session with the `query_plan_profile` XE; Starting with [!INCLUDE[sssql16-md](../../includes/sssql16-md.md)] SP2 CU3 and [!INCLUDE[ssSQL17](../../includes/sssql17-md.md)] CU11| |Session|Use `SET STATISTICS PROFILE ON`; Starting with SQL Server 2000|-| |Session|Click the [Live Query Statistics](../../relational-databases/performance/live-query-statistics.md) button in SSMS; Starting with [!INCLUDE[ssSQL14](../../includes/sssql14-md.md)] SP2|-| diff --git a/docs/relational-databases/query-processing-architecture-guide.md b/docs/relational-databases/query-processing-architecture-guide.md index f9047638b75..c7f7b1a38d9 100644 --- a/docs/relational-databases/query-processing-architecture-guide.md +++ b/docs/relational-databases/query-processing-architecture-guide.md @@ -752,9 +752,9 @@ In [!INCLUDE [ssNoVersion](../includes/ssnoversion-md.md)] versions prior to 200 Statement-level recompilation benefits performance because, in most cases, a small number of statements causes recompilations and their associated penalties, in terms of CPU time and locks. These penalties are therefore avoided for the other statements in the batch that don't have to be recompiled. -The `sql_statement_recompile` extended event (xEvent) reports statement-level recompilations. This xEvent occurs when a statement-level recompilation is required by any kind of batch. This includes stored procedures, triggers, ad hoc batches and queries. Batches can be submitted through several interfaces, including `sp_executesql`, dynamic SQL, Prepare methods or Execute methods. +The `sql_statement_recompile` extended event (XEvent) reports statement-level recompilations. This XEvent occurs when a statement-level recompilation is required by any kind of batch. This includes stored procedures, triggers, ad hoc batches and queries. Batches can be submitted through several interfaces, including `sp_executesql`, dynamic SQL, Prepare methods or Execute methods. -The `recompile_cause` column of `sql_statement_recompile` xEvent contains an integer code that indicates the reason for the recompilation. The following table contains the possible reasons: +The `recompile_cause` column of `sql_statement_recompile` XEvent contains an integer code that indicates the reason for the recompilation. The following table contains the possible reasons: :::row::: :::column::: @@ -822,7 +822,7 @@ The `recompile_cause` column of `sql_statement_recompile` xEvent contains an int :::row-end::: > [!NOTE] -> In [!INCLUDE [ssNoVersion](../includes/ssnoversion-md.md)] versions where xEvents aren't available, then the [!INCLUDE [ssNoVersion](../includes/ssnoversion-md.md)] Profiler [SP:Recompile](../relational-databases/event-classes/sp-recompile-event-class.md) trace event can be used for the same purpose of reporting statement-level recompilations. +> In [!INCLUDE [ssNoVersion](../includes/ssnoversion-md.md)] versions where XEvents aren't available, then the [!INCLUDE [ssNoVersion](../includes/ssnoversion-md.md)] Profiler [SP:Recompile](../relational-databases/event-classes/sp-recompile-event-class.md) trace event can be used for the same purpose of reporting statement-level recompilations. > > The trace event `SQL:StmtRecompile` also reports statement-level recompilations, and this trace event can also be used to track and debug recompilations. > diff --git a/docs/sql-server/sql-server-2016-release-notes.md b/docs/sql-server/sql-server-2016-release-notes.md index 5dd523f7ad7..5a7d5be088f 100644 --- a/docs/sql-server/sql-server-2016-release-notes.md +++ b/docs/sql-server/sql-server-2016-release-notes.md @@ -156,7 +156,7 @@ Supportability and diagnostics related improvements included in [!INCLUDE[sssql1 |Service Broker (SSB) support for DBCC CLONEDATABASE | Enhanced DBCC CLONEDATABASE command to allow scripting of SSB objects. | | |New DMV to monitor TempDB version store space usage | A new sys.dm_tran_version_store_space_usage DMV is introduced in [!INCLUDE[sssql16-md](../includes/sssql16-md.md)] SP2 to allow monitoring TempDB for version store usage. DBAs can now proactively plan TempDB sizing based on the version store usage requirement per database, without any performance overhead when running it on production servers. | | |Full Dumps support for Replication Agents | Today if replication agents encounter a unhandled exception, the default is to create a mini dump of the exception symptoms. This makes troubleshooting unhandled exception issues very difficult. Through this change we are introducing a new Registry key, which would allow to create a full dump for Replication Agents. | | -|Extended Events enhancement for read routing failure for an Availability Group | Before, the read_only_rout_fail xEvent fired if there was a routing list present, but none of the servers in the routing list were available for connections. [!INCLUDE[sssql16-md](../includes/sssql16-md.md)] SP2 includes additional information to assist with troubleshooting, and also expand on the code points where this xEvent gets fired. | | +|Extended Events enhancement for read routing failure for an Availability Group | Before, the read_only_rout_fail XEvent fired if there was a routing list present, but none of the servers in the routing list were available for connections. [!INCLUDE[sssql16-md](../includes/sssql16-md.md)] SP2 includes additional information to assist with troubleshooting, and also expand on the code points where this XEvent gets fired. | | |New DMV to monitor the transaction log | Added a new DMV sys.dm_db_log_stats that returns summary level attributes and information about transaction log files of databases. | | |New DMV to monitor VLF information | A new DMV sys.dm_db_log_info is introduced in [!INCLUDE[sssql16-md](../includes/sssql16-md.md)] SP2 to expose the VLF information similar to DBCC LOGINFO to monitor, alert and avert potential T-Log issues experienced by customers. | | |Processor Information in sys.dm_os_sys_info| New columns added to the sys.dm_os_sys_info DMV to expose the processor related information, such as socket_count, and cores_per_numa. | | @@ -173,7 +173,7 @@ Supportability and diagnostics related improvements included in [!INCLUDE[sssql1 |Proper handling of Service Broker with Availability group failover | In the current implementation when Service Broker is enabled on an Availability Group Databases, during an AG failover all Service broker connections which originated on the Primary Replica are left open. This improvement targets to close all such open connections during an AG failover. | | |Improved parallelism waits troubleshooting | by adding a new [CXCONSUMER](/archive/blogs/sql_server_team/making-parallelism-waits-actionable) wait. | | |Improved consistency between DMVs for same information | The sys.dm_exec_session_wait_stats DMV now tracks CXPACKET and CXCONSUMER waits consistently with the sys.dm_os_wait_stats DMV. | | -|Improved troubleshooting of intra-query parallelism deadlocks | A new exchange_spill Extended Event to report the number of pages written to TempDB during a parallelism operator spill, in the xEvent field name worktable_physical_writes.| | +|Improved troubleshooting of intra-query parallelism deadlocks | A new exchange_spill Extended Event to report the number of pages written to TempDB during a parallelism operator spill, in the XEvent field name worktable_physical_writes.| | | |The spills columns in the sys.dm_exec_query_stats, sys.dm_exec_procedure_stats, and sys.dm_exec_trigger_stats DMVs (such as total_spills) now also include the data spilled by parallelism operators.| | | |The XML deadlock graph is improved for parallelism deadlock scenarios, with more attributes added to the exchangeEvent resource.| | | |The XML deadlock graph is improved for deadlocks involving batch-mode operators, with more attributes added to the SyncPoint resource.| | From 72879634518f9d77e8b3c03ffba9dd3f3ded3f69 Mon Sep 17 00:00:00 2001 From: Randolph West MSFT <97149825+rwestMSFT@users.noreply.github.com> Date: Thu, 31 Oct 2024 13:15:38 -0600 Subject: [PATCH 6/6] Fix link to Full-Text Search upgrade and refresh (UUF 334937) --- ...ver-using-the-installation-wizard-setup.md | 236 +++++++++-------- ...-a-sql-server-failover-cluster-instance.md | 244 +++++++++--------- 2 files changed, 237 insertions(+), 243 deletions(-) diff --git a/docs/database-engine/install-windows/upgrade-sql-server-using-the-installation-wizard-setup.md b/docs/database-engine/install-windows/upgrade-sql-server-using-the-installation-wizard-setup.md index d81ac43c47c..824e5ec20f0 100644 --- a/docs/database-engine/install-windows/upgrade-sql-server-using-the-installation-wizard-setup.md +++ b/docs/database-engine/install-windows/upgrade-sql-server-using-the-installation-wizard-setup.md @@ -3,11 +3,12 @@ title: "Upgrade: Installation Wizard (Setup)" description: The SQL Server Installation Wizard provides a single feature tree for an in-place upgrade of SQL Server components to the latest version of SQL Server. author: rwestMSFT ms.author: randolphwest -ms.date: "12/13/2019" +ms.date: 10/31/2024 ms.service: sql ms.subservice: install ms.topic: conceptual -ms.custom: intro-installation +ms.custom: + - intro-installation helpviewer_keywords: - "upgrading Database Engine" - "Database Engine [SQL Server], upgrading" @@ -17,123 +18,118 @@ monikerRange: ">=sql-server-2016" [!INCLUDE [SQL Server -Windows Only](../../includes/applies-to-version/sql-windows-only.md)] -The [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] Installation Wizard provides a single feature tree for an in-place upgrade of [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] components to the latest version of [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)]. - ->[!WARNING] ->When you upgrade [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)], the previous version of [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] will be overwritten and will no longer exist on your computer. +The [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)] Installation Wizard provides a single feature tree for an in-place upgrade of [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)] components to the latest version of [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)]. + +> [!WARNING] +> When you upgrade [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)], the previous version of [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)] is overwritten, and no longer exists on your computer. > ->Before upgrading, back up SQL Server databases and other objects associated with the previous SQL Server instance. - -> [!CAUTION] -> For many production and some development environments, a new installation upgrade or a rolling upgrade is more appropriate than an in-place upgrade. For more information regarding upgrade methods, see: -> * [Choose a Database Engine Upgrade Method](../../database-engine/install-windows/choose-a-database-engine-upgrade-method.md) -> * [Upgrade Data Quality Services](../../database-engine/install-windows/upgrade-data-quality-services.md) -> * [Upgrade Integration Services](../../integration-services/install-windows/upgrade-integration-services.md) -> * [Upgrade Master Data Services](../../database-engine/install-windows/upgrade-master-data-services.md) -> * [Upgrade and Migrate Reporting Services](../../reporting-services/install-windows/upgrade-and-migrate-reporting-services.md) -> * [Upgrade Analysis Services](../../database-engine/install-windows/upgrade-analysis-services.md) -> * [Upgrade Power Pivot for SharePoint](../../database-engine/install-windows/upgrade-power-pivot-for-sharepoint.md). - -## Prerequisites -You must run Setup as an administrator. If you install [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] from a remote share, you must use a domain account that has read and execute permissions on the remote share, and is a local administrator. - +> Before upgrading, back up SQL Server databases and other objects associated with the previous SQL Server instance. + +For many production and some development environments, a new installation upgrade or a rolling upgrade is more appropriate than an in-place upgrade. For more information regarding upgrade methods, see: + +- [Choose a Database Engine upgrade method](choose-a-database-engine-upgrade-method.md) +- [Upgrade Data Quality Services](upgrade-data-quality-services.md) +- [Upgrade Integration Services](../../integration-services/install-windows/upgrade-integration-services.md) +- [Upgrade Master Data Services](upgrade-master-data-services.md) +- [Upgrade and migrate Reporting Services](../../reporting-services/install-windows/upgrade-and-migrate-reporting-services.md) +- [Upgrade Analysis Services](upgrade-analysis-services.md) +- [Upgrade Power Pivot for SharePoint](upgrade-power-pivot-for-sharepoint.md). + +## Prerequisites + +You must run Setup as an administrator. If you install [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)] from a remote share, you must use a domain account that has read and execute permissions on the remote share, and is a local administrator. + > [!WARNING] -> Be aware that you cannot change the features to be upgraded, and you cannot add features during the upgrade operation. For more information about how to add features to an upgraded instance of [!INCLUDE[ssnoversion](../../includes/ssnoversion-md.md)] after the upgrade operation is complete, see [Add Features to an Instance of SQL Server (Setup)](./add-features-to-an-instance-of-sql-server-setup.md). - - If you are upgrading the [!INCLUDE[ssDE](../../includes/ssde-md.md)], review [Plan and Test the Database Engine Upgrade Plan](../../database-engine/install-windows/plan-and-test-the-database-engine-upgrade-plan.md) and then perform the following tasks, as appropriate for your environment: - -- Back up all [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] database files from the instance to be upgraded, so that you can restore them, if it is required. - -- Run the appropriate Database Console Commands (DBCC) on databases to be upgraded to ensure that they are in a consistent state. - -- Estimate the disk space that is required to upgrade SQL Server components, in addition to user databases. For disk space that is required by SQL Server components, see [Hardware and Software Requirements for Installing SQL Server](../../sql-server/install/hardware-and-software-requirements-for-installing-sql-server.md). - -- Ensure that existing SQL Server system databases - master, model, msdb, and tempdb - are configured to autogrow, and ensure that they have sufficient hard disk space. - -- Ensure that all database servers have logon information in the master database. This is important for restoring a database, as system logon information resides in master. - -- Disable all startup stored procedures, as the upgrade process will stop and start services on the SQL Server instance being upgraded. Stored procedures processed at startup time might block the upgrade process. - -- When upgrading instances of [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] where [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] Agent is enlisted in MSX/TSX relationships, upgrade target servers before you upgrade master servers. If you upgrade master servers before target servers, [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] Agent will not be able to connect to master instances of [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)]. - -- Quit all applications, including all services that have SQL Server dependencies. Upgrade might fail if local applications are connected to the instance being upgraded. - -- Make sure that Replication is current and then stop Replication. - For detailed steps for performing a rolling upgrade in a replicated environment, see [Upgrade Replicated Databases](../../database-engine/install-windows/upgrade-replicated-databases.md). - -## Procedure - -### To upgrade [!INCLUDE[ssNoversion](../../includes/ssnoversion-md.md)] - -1. Insert the [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] installation media, and from the root folder, double-click Setup.exe. To install from a network share, move to the root folder on the share, and then double-click Setup.exe. - -2. The Installation Wizard starts the [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] Installation Center. To upgrade an existing instance of [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)], click **Installation** in the left-hand navigation area, and then click **Upgrade from...** previous versions of [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)]. - -3. On the Product Key page, click an option to indicate whether you are upgrading to a free edition of [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)], or whether you have a PID key for a production version of the product. For more information, see [Editions and supported features of SQL Server 2022](../../sql-server/editions-and-components-of-sql-server-2022.md) and [Supported version and edition upgrades (SQL Server 2022)](supported-version-and-edition-upgrades-2022.md). - -4. On the License Terms page, review the license agreement and, if you agree, select the **I accept the license terms** check box, and then click **Next**. To help improve [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)], you can also enable the feature usage option and send reports to [!INCLUDE[msCoName](../../includes/msconame-md.md)]. - -5. In the Global Rules window, the setup procedure will automatically advance to the Product Updates window if there are no rule errors. - -6. The [!INCLUDE[msCoName](../../includes/msconame-md.md)] Update page will appear next if the [!INCLUDE[msCoName](../../includes/msconame-md.md)] Update check box in Control Panel\All Control Panel Items\Windows Update\Change settings is not checked. Putting a check in the [!INCLUDE[msCoName](../../includes/msconame-md.md)] Update page will change the computer settings to include the latest updates when you scan for Windows Update. - -7. On the Product Updates page, the latest available [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] product updates are displayed. If you don't want to include the updates, clear the **Include [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] product updates** check box. If no product updates are discovered, [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] Setup does not display this page and auto advances to the **Install Setup Files** page. - -8. On the Install Setup Files page, Setup provides the progress of downloading, extracting, and installing the Setup files. If an update for [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] Setup is found, and is specified to be included, that update will also be installed. - -9. In the Upgrade Rules window, the setup procedure will automatically advance to the Select instance window if there are no rule errors. - -10. On the Select Instance page, specify the instance of [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] to upgrade. To upgrade Management tools and shared features, select **Upgrade shared features only**. - -11. On the Select Features page, the features to upgrade will be preselected. A description for each component group appears in the right pane after you select the feature name. - - The prerequisites for the selected features are displayed on the right-hand pane. [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] Setup will install the prerequisite that are not already installed during the installation step described later in this procedure. - - > [!NOTE] - > If you have opted to upgrade the shared features by selecting **\** on the **Select Instance** page, all the shared features are preselected on the Feature Selection page. All the shared components are upgraded at the same time. - -12. On the Instance Configuration page, specify the Instance ID for the instance of [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)]. - - **Instance ID** - By default, the instance name is used as the Instance ID. This is used to identify installation directories and registry keys for your instance of [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)]. This is the case for default instances and named instances. For a default instance, the instance name and instance ID would be MSSQLSERVER. To use a non-default instance ID, provide a value for the **Instance ID** textbox. - - All [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] service packs and upgrades will apply to every component of an instance of [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)]. - - **Installed instances** - The grid will show instances of [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] that are on the computer where Setup is running. If a default instance is already installed on the computer, you must install a named instance of [!INCLUDE[ssnoversion](../../includes/ssnoversion-md.md)]. - -13. Work flow for the rest of this article depends on the features that you have specified for your installation. You might not see all the pages, depending on your selections. - -14. On the Server Configuration - Service Accounts page, the default service accounts are displayed for [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] services. The actual services that are configured on this page depend on the features that you are upgrading. - - Authentication and login information will be carried forward from the previous instance of [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)]. You can assign the same login account to all [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] services, or you can configure each service account individually. You can also specify whether services start automatically, are started manually, or are disabled. [!INCLUDE[msCoName](../../includes/msconame-md.md)] recommends that you configure service accounts individually so that [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] services are granted the minimum permissions they have to have to complete their tasks. For more information, see [Configure Windows Service Accounts and Permissions](../../database-engine/configure-windows/configure-windows-service-accounts-and-permissions.md). - - To specify the same login account for all service accounts in this instance of [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)], provide credentials in the fields at the bottom of the page. - - **Security Note** [!INCLUDE[ssNoteStrongPass](../../includes/ssnotestrongpass-md.md)] - - When you are finished specifying login information for [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] services, click **Next**. - -15. On the Full-Text Search Upgrade Options page, specify the upgrade options for the databases being upgraded. For more information, see [Full-Text Search Upgrade Options](./install-sql-server.md). - -16. The Feature Rules window will automatically advance if all rules pass. - -17. The Ready to Upgrade page displays a tree view of installation options that were specified during Setup. To continue, click **Install**. [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] Setup will first install the required prerequisites for the selected features followed by the feature installation. - -18. During installation, the progress page provides status so that you can monitor installation progress as Setup continues. - -19. After installation, the Complete page provides a link to the summary log file for the installation and other important notes. To complete the [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] installation process, click **Close**. - -20. If you are instructed to restart the computer, do so now. It is important to read the message from the Installation Wizard when you have finished with Setup. For more information about Setup log files, see [View and Read SQL Server Setup Log Files](../../database-engine/install-windows/view-and-read-sql-server-setup-log-files.md). - -## Next Steps - After you upgrade to [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)], complete the following tasks: - -- **Register your servers** - Upgrade removes registry settings for the previous instance of [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)]. After you upgrade, you must reregister your servers. - -- **Update statistics** - To help optimize query performance, we recommend that you update statistics on all databases following upgrade. Use the **sp_updatestats** stored procedure to update statistics in user-defined tables in [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] databases. - -- **Configure your new [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] installation** - To reduce the attackable surface area of a system, [!INCLUDE[ssNoVersion](../../includes/ssnoversion-md.md)] selectively installs and enables key services and features. For more information about surface area configuration, see the readme file for this release. - -## See Also - [Upgrade SQL Server](../../database-engine/install-windows/upgrade-sql-server.md) - [Backward Compatibility_deleted](/previous-versions/sql/sql-server-2016/cc280407(v=sql.130)) - +> Be aware that you can't change the features to be upgraded, and you can't add features during the upgrade operation. For more information about how to add features to an upgraded instance of [!INCLUDE [ssnoversion](../../includes/ssnoversion-md.md)] after the upgrade operation is complete, see [Add Features to an Instance of SQL Server (Setup)](add-features-to-an-instance-of-sql-server-setup.md). + +If you're upgrading the [!INCLUDE [ssDE](../../includes/ssde-md.md)], review [Plan and test the Database Engine upgrade plan](plan-and-test-the-database-engine-upgrade-plan.md) and then perform the following tasks, as appropriate for your environment: + +- Back up all [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)] database files from the instance to be upgraded, so that you can restore them, if it's required. + +- Run the appropriate Database Console Commands (DBCC) on databases to be upgraded to ensure that they are in a consistent state. + +- Estimate the disk space that is required to upgrade SQL Server components, in addition to user databases. For disk space that is required by SQL Server components, see [SQL Server 2016 and 2017: Hardware and software requirements](../../sql-server/install/hardware-and-software-requirements-for-installing-sql-server.md). + +- Ensure that existing SQL Server system databases - master, model, `msdb`, and `tempdb` - are configured to autogrow, and ensure that they have sufficient hard disk space. + +- Ensure that all database servers have logon information in the `master` database. This is important for restoring a database, as system logon information resides in master. + +- Disable all startup stored procedures, as the upgrade process stops and starts services on the SQL Server instance being upgraded. Stored procedures processed at startup time might block the upgrade process. + +- When upgrading instances of [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)] where [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)] Agent is enlisted in MSX/TSX relationships, upgrade target servers before you upgrade master servers. If you upgrade master servers before target servers, [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)] Agent isn't able to connect to master instances of [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)]. + +- Quit all applications, including all services that have SQL Server dependencies. Upgrade might fail if local applications are connected to the instance being upgraded. + +- Make sure that Replication is current and then stop Replication. + For detailed steps for performing a rolling upgrade in a replicated environment, see [Upgrade or patch replicated databases](upgrade-replicated-databases.md). + +## Procedure + + + +### Upgrade [!INCLUDE [ssNoversion](../../includes/ssnoversion-md.md)] + +1. Insert the [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)] installation media, and from the root folder, double-click Setup.exe. To install from a network share, move to the root folder on the share, and then double-click Setup.exe. + +1. The Installation Wizard starts the [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)] Installation Center. To upgrade an existing instance of [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)], select **Installation** in the left-hand navigation area, and then select **Upgrade from...** previous versions of [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)]. + +1. On the Product Key page, select an option to indicate whether you're upgrading to a free edition of [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)], or whether you have a PID key for a production version of the product. For more information, see [Editions and supported features of SQL Server 2022](../../sql-server/editions-and-components-of-sql-server-2022.md) and [Supported version and edition upgrades (SQL Server 2022)](supported-version-and-edition-upgrades-2022.md). + +1. On the License Terms page, review the license agreement and, if you agree, select the **I accept the license terms** check box, and then select **Next**. To help improve [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)], you can also enable the feature usage option and send reports to [!INCLUDE [msCoName](../../includes/msconame-md.md)]. + +1. In the Global Rules window, the setup procedure automatically advances to the Product Updates window if there are no rule errors. + +1. The [!INCLUDE [msCoName](../../includes/msconame-md.md)] Update page appears next if the [!INCLUDE [msCoName](../../includes/msconame-md.md)] Update check box in Control Panel\All Control Panel Items\Windows Update\Change settings isn't checked. Putting a check in the [!INCLUDE [msCoName](../../includes/msconame-md.md)] Update page changes the computer settings to include the latest updates when you scan for Windows Update. + +1. On the Product Updates page, the latest available [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)] product updates are displayed. If you don't want to include the updates, clear the **Include [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)] product updates** check box. If no product updates are discovered, [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)] Setup doesn't display this page and auto advances to the **Install Setup Files** page. + +1. On the Install Setup Files page, Setup provides the progress of downloading, extracting, and installing the Setup files. If an update for [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)] Setup is found, and is specified to be included, that update is also installed. + +1. In the Upgrade Rules window, the setup procedure automatically advances to the Select instance window if there are no rule errors. + +1. On the Select Instance page, specify the instance of [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)] to upgrade. To upgrade Management tools and shared features, select **Upgrade shared features only**. + +1. On the Select Features page, the features to upgrade are preselected. A description for each component group appears in the right pane after you select the feature name. + + The prerequisites for the selected features are displayed on the right-hand pane. [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)] Setup installs the prerequisites that aren't already installed during the installation step described later in this procedure. + + > [!NOTE] + > If you have opted to upgrade the shared features by selecting **\** on the **Select Instance** page, all the shared features are preselected on the Feature Selection page. All the shared components are upgraded at the same time. + +1. On the Instance Configuration page, specify the Instance ID for the instance of [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)]. + + **Instance ID** - By default, the instance name is used as the Instance ID. This is used to identify installation directories and registry keys for your instance of [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)]. This is the case for default instances and named instances. For a default instance, the instance name and instance ID would be MSSQLSERVER. To use a non-default instance ID, provide a value for the **Instance ID** textbox. + + All [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)] service packs and upgrades apply to every component of an instance of [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)]. + + **Installed instances** - The grid shows instances of [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)] that are on the computer where Setup is running. If a default instance is already installed on the computer, you must install a named instance of [!INCLUDE [ssnoversion](../../includes/ssnoversion-md.md)]. + +1. Work flow for the rest of this article depends on the features that you have specified for your installation. You might not see all the pages, depending on your selections. + +1. On the Server Configuration - Service Accounts page, the default service accounts are displayed for [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)] services. The actual services that are configured on this page depend on the features that you're upgrading. + + Authentication and login information is carried forward from the previous instance of [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)]. You can assign the same login account to all [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)] services, or you can configure each service account individually. You can also specify whether services start automatically, are started manually, or are disabled. [!INCLUDE [msCoName](../../includes/msconame-md.md)] recommends that you configure service accounts individually so that [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)] services are granted the minimum permissions they have to complete their tasks. For more information, see [Configure Windows service accounts and permissions](../configure-windows/configure-windows-service-accounts-and-permissions.md). + + To specify the same login account for all service accounts in this instance of [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)], provide credentials in the fields at the bottom of the page. + + > [!CAUTION] + > [!INCLUDE [ssNoteStrongPass](../../includes/ssnotestrongpass-md.md)] + + When you're finished specifying login information for [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)] services, select **Next**. + +1. On the Full-Text Search Upgrade Options page, specify the upgrade options for the databases being upgraded. For more information, see [Upgrade Full-Text Search](../../relational-databases/search/upgrade-full-text-search.md). + +1. The Feature Rules window automatically advances if all rules pass. + +1. The Ready to Upgrade page displays a tree view of installation options that were specified during Setup. To continue, select **Install**. [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)] Setup first installs the required prerequisites for the selected features, followed by the feature installation. + +1. During installation, the progress page provides status so that you can monitor installation progress as Setup continues. + +1. After installation, the Complete page provides a link to the summary log file for the installation and other important notes. To complete the [!INCLUDE [ssNoVersion](../../includes/ssnoversion-md.md)] installation process, select **Close**. + +1. If you're instructed to restart the computer, do so now. It's important to read the message from the Installation Wizard when you have finished with Setup. For more information about Setup log files, see [View and Read SQL Server Setup Log Files](view-and-read-sql-server-setup-log-files.md). + +## Related content + +- [Upgrade SQL Server](upgrade-sql-server.md) +- [Backward Compatibility_deleted](/previous-versions/sql/sql-server-2016/cc280407(v=sql.130)) diff --git a/docs/sql-server/failover-clusters/windows/upgrade-a-sql-server-failover-cluster-instance.md b/docs/sql-server/failover-clusters/windows/upgrade-a-sql-server-failover-cluster-instance.md index 8b0e9e46dc2..2c670a1d9c2 100644 --- a/docs/sql-server/failover-clusters/windows/upgrade-a-sql-server-failover-cluster-instance.md +++ b/docs/sql-server/failover-clusters/windows/upgrade-a-sql-server-failover-cluster-instance.md @@ -3,7 +3,8 @@ title: "Upgrade a failover cluster instance" description: "Steps to upgrade a SQL Server Always On failover cluster instance using the installation media. Learn about rolling upgrades and upgrading a multi-subnet cluster." author: MashaMSFT ms.author: mathoma -ms.date: "11/21/2019" +ms.reviewer: randolphwest +ms.date: 10/31/2024 ms.service: sql ms.subservice: failover-cluster-instance ms.topic: conceptual @@ -13,126 +14,123 @@ helpviewer_keywords: - "failover clustering [SQL Server], upgrading" --- -# Upgrade a failover cluster instance +# Upgrade a failover cluster instance + [!INCLUDE [SQL Server](../../../includes/applies-to-version/sqlserver.md)] - [!INCLUDE[ssNoVersion](../../../includes/ssnoversion-md.md)] supports upgrading a [!INCLUDE[ssNoVersion](../../../includes/ssnoversion-md.md)] failover cluster to a new version of [!INCLUDE[ssNoVersion](../../../includes/ssnoversion-md.md)], to a new [!INCLUDE[ssNoVersion](../../../includes/ssnoversion-md.md)] service pack or cumulative update, or when installing to a new Windows service pack or cumulative update separately on all failover cluster nodes, with downtime limited to a single manual failover (or two manual failovers if failing back to the original primary). - - - Upgrading the Windows Server operating system of a node containing a failover cluster instance is not supported for operating systems before [!INCLUDE[winserver2012r2-md](../../../includes/winserver2012r2-md.md)]. To upgrade a Windows Server failover cluster node running on [!INCLUDE[winserver2012r2-md](../../../includes/winserver2012r2-md.md)] or above, see [Perform a rolling upgrade or update](#perform-a-rolling-upgrade-or-update). - - Support details are as follows: - -- [!INCLUDE[ssNoVersion](../../../includes/ssnoversion-md.md)] upgrade is supported both through the user interface and from the command prompt. You can run upgrade from the command prompt on each failover cluster node, or by using the [!INCLUDE[ssNoVersion](../../../includes/ssnoversion-md.md)] setup UI to upgrade each cluster node. For more information, see: - - - Install a new [!INCLUDE[ssNoVersion](../../../includes/ssnoversion-md.md)] failover cluster instance - - [Install SQL Server from the Command Prompt](../../../database-engine/install-windows/install-sql-server-from-the-command-prompt.md) - -- The following scenarios are not supported as part of a [!INCLUDE[ssNoVersion](../../../includes/ssnoversion-md.md)] upgrade: - - - You cannot upgrade from a stand-alone instance of [!INCLUDE[ssNoVersion](../../../includes/ssnoversion-md.md)] to a failover cluster instance. - - - You cannot add features to a failover cluster instance. For example, you cannot add the [!INCLUDE[ssDE](../../../includes/ssde-md.md)] to an existing [!INCLUDE[ssASnoversion](../../../includes/ssasnoversion-md.md)]-only failover cluster instance. - - - You cannot downgrade a failover cluster instance to a stand-alone instance on any node of the Windows Server failover cluster. - - - Changing the edition of the failover cluster instance is limited to certain scenarios. For more information, see [Supported Version and Edition Upgrades](../../../database-engine/install-windows/supported-version-and-edition-upgrades.md). - -- During the failover cluster instance upgrade, downtime is limited to failover time and the time that is required for upgrade scripts to run. If you follow the failover cluster instance rolling upgrade process below and meet all prerequisites on all nodes before you begin the upgrade process, your downtime is minimal. Upgrading [!INCLUDE[ssNoVersion](../../../includes/ssnoversion-md.md)] when memory-optimized tables are in use will take some extra time. For more information, see [Plan and Test the Database Engine Upgrade Plan](../../../database-engine/install-windows/plan-and-test-the-database-engine-upgrade-plan.md). - -## Prerequisites - Before you begin, review the following important information: - -- [Supported Version and Edition Upgrades](../../../database-engine/install-windows/supported-version-and-edition-upgrades.md): Verify that you can upgrade to your desired version of [!INCLUDE[ssnoversion](../../../includes/ssnoversion-md.md)] from your version of the Windows operating system and version of [!INCLUDE[ssNoVersion](../../../includes/ssnoversion-md.md)]. For example, you cannot upgrade directly from a SQL Server 2005 failover clustering instance to [!INCLUDE [sssql14-md](../../../includes/sssql14-md.md)] or upgrade a failover cluster instance running on [!INCLUDE[winserver2003-md](../../../includes/winserver2003-md.md)]. - -- [Choose a Database Engine Upgrade Method](../../../database-engine/install-windows/choose-a-database-engine-upgrade-method.md): Select the appropriate upgrade method and steps based on your review of supported version and edition upgrades and also based on other components installed in your environment to upgrade components in the correct order. - -- [Plan and Test the Database Engine Upgrade Plan](../../../database-engine/install-windows/plan-and-test-the-database-engine-upgrade-plan.md): Review the release notes and known upgrade issues, the pre-upgrade checklist, and develop and test the upgrade plan. - -- [Hardware and Software Requirements for Installing SQL Server](../../../sql-server/install/hardware-and-software-requirements-for-installing-sql-server.md): Review the software requirements for installing [!INCLUDE[ssnoversion](../../../includes/ssnoversion-md.md)]. If additional software is required, install it on each node before you begin the upgrade process to minimize any downtime. - -## Perform a rolling upgrade or update - To upgrade a [!INCLUDE[ssNoVersion](../../../includes/ssnoversion-md.md)] failover cluster instance, use [!INCLUDE[ssNoVersion](../../../includes/ssnoversion-md.md)] setup to upgrade each node participating in the failover cluster instance, one at a time, starting with the passive nodes. As you upgrade each node, it is left out of the possible owners of the failover cluster instance. If there is an unexpected failover, the upgraded nodes do not participate in the failover until Windows Server failover cluster role ownership is moved to an upgraded node by setup. - - By default, [!INCLUDE[ssNoVersion](../../../includes/ssnoversion-md.md)] setup automatically determines when to fail over to an upgraded node. This depends on the total number of nodes in the failover cluster instance and the number of nodes that have already been upgraded. When half of the nodes or more have already been upgraded, [!INCLUDE[ssNoVersion](../../../includes/ssnoversion-md.md)] setup causes a failover to an upgraded node when you perform upgrade on the next node. Upon failover to an upgraded node, the cluster group is moved to an upgraded node. All the upgraded nodes are put in the possible owners list and all the nodes that are not yet upgraded are removed from the possible owners list. As you upgrade each remaining node, it is added to the possible owners of the failover cluster instance. - - This process results in downtime limited to one failover time and database upgrade script execution time during the whole failover cluster upgrade. - - To control the failover behavior of cluster nodes during the upgrade process, run the upgrade operation at the command prompt and use the /FAILOVERCLUSTERROLLOWNERSHIP parameter. For more information, see [Install SQL Server from the Command Prompt](../../../database-engine/install-windows/install-sql-server-from-the-command-prompt.md). - - ## Upgrade with installation media - -1. From the [!INCLUDE[ssNoVersion](../../../includes/ssnoversion-md.md)] installation media for the edition that matches the edition you are upgrading, double-click setup.exe in the root folder. You may be asked to install the prerequisites, if they are not previously installed. - -2. After prerequisites are installed, the Installation Wizard starts the [!INCLUDE[ssNoVersion](../../../includes/ssnoversion-md.md)] Installation Center. To upgrade an existing instance of [!INCLUDE[ssNoVersion](../../../includes/ssnoversion-md.md)], select your instance. - -3. If [!INCLUDE[ssNoVersion](../../../includes/ssnoversion-md.md)] setup support files are required, [!INCLUDE[ssNoVersion](../../../includes/ssnoversion-md.md)] setup installs them. If you are instructed to restart your computer, restart before you continue. - -4. The System Configuration Checker runs a discovery operation on your computer. To continue, select **OK**. - -5. On the Product Key page, enter the PID key for the new version edition that matches the edition of the old product version. For example, to upgrade an Enterprise failover cluster, you must supply a PID key for [!INCLUDE[ssEnterprise](../../../includes/ssenterprise-md.md)]. Click **Next** to continue. Be aware that the PID key that you use for a failover cluster upgrade must be consistent across all failover cluster nodes in the same [!INCLUDE[ssNoVersion](../../../includes/ssnoversion-md.md)] instance. - -6. On the License Terms page, read the license agreement, and then select the check box to accept the license terms and conditions. To help improve [!INCLUDE[ssNoVersion](../../../includes/ssnoversion-md.md)], you can also enable the feature usage option and send reports to [!INCLUDE[msCoName](../../../includes/msconame-md.md)]. **Click Next to continue**. To end Setup, click **Cancel**. - -7. On the Select Instance page, specify the [!INCLUDE[ssNoVersion](../../../includes/ssnoversion-md.md)] instance to upgrade. **Click Next to continue**. - -8. On the Feature Selection page, the features to upgrade are preselected. A description for each component group appears in the right pane after you select the feature name. Be aware that you cannot change the features to be upgraded, and you cannot add features during the upgrade operation. To add features to an upgraded instance of [!INCLUDE[ssSQL14](../../../includes/sssql14-md.md)] after the upgrade operation is complete, see [Add Features to an Instance of SQL Server 2016 (Setup)](../../../database-engine/install-windows/add-features-to-an-instance-of-sql-server-setup.md). - - The prerequisites for the selected features are displayed on the right-hand pane. SQL Server Setup will install the prerequisite that are not already installed during the installation step described later in this procedure. To save time, you should pre-install these prerequisites on each node. - -9. On the Instance Configuration page, fields are automatically populated from the old instance. You can choose to specify the new InstanceID value. - - **Instance ID** - By default, the instance name is used as the Instance ID. This is used to identify installation directories and registry keys for your instance of [!INCLUDE[ssNoVersion](../../../includes/ssnoversion-md.md)]. This is the case for default instances and named instances. For a default instance, the instance name and instance ID would be MSSQLSERVER. To use a nondefault instance ID, select the **Instance ID** check box and provide a value. If you override the default value, you must specify the same Instance ID for the instance being upgraded on all the failover cluster nodes. The Instance ID for the upgraded instance must match across the nodes. - - **Detected instances and features** - The grid shows instances of [!INCLUDE[ssNoVersion](../../../includes/ssnoversion-md.md)] that are on the computer where setup is running. **Click Next to continue**. - -10. The Disk Space Requirements page calculates the required disk space for the features that you specify, and compares requirements to the available disk space on the computer where Setup is running. - -11. On the Full-Text Search Upgrade page, specify the upgrade options for the databases being upgraded. For more information, see [Full-Text Search Upgrade Options](../../../database-engine/install-windows/install-sql-server.md). - -12. On the **Error Reporting** page, specify the information that you want to send to [!INCLUDE[msCoName](../../../includes/msconame-md.md)] that will help improve [!INCLUDE[ssNoVersion](../../../includes/ssnoversion-md.md)]. By default, options for error reporting is enabled. - -13. The System Configuration Checker runs one more set of rules to validate your computer configuration with the [!INCLUDE[ssNoVersion](../../../includes/ssnoversion-md.md)] features that you have specified, before the upgrade operation begins. - -14. The Cluster Upgrade Report page displays the list of nodes in the failover cluster instance and the instance version information for [!INCLUDE[ssNoVersion](../../../includes/ssnoversion-md.md)] components on each node. It displays the database script status and replication script status. In addition, it also displays informational messages on what will occur when you click **Next**. Depending on the number of failover cluster nodes that have already been upgraded and total number of nodes, setup displays the failover behavior that happens when you click **Next**. It also warns about potential unnecessary downtime if you have not installed the prerequisites already. - -15. The Ready to Upgrade page displays a tree view of installation options that were specified during Setup. To continue, click **Upgrade**. [!INCLUDE[ssNoVersion](../../../includes/ssnoversion-md.md)] Setup will first install the required prerequisites for the selected features followed by the feature installation. - -16. During upgrade, the Progress page provides status so that you can monitor the upgrade progress on the current node as Setup continues. - -17. After the upgrade of the current node, the Cluster Upgrade Report page displays an upgrade status information for all the failover cluster nodes, features on each failover cluster node, and their version information. Confirm the version information that is displayed and continue with the upgrade of the remaining nodes. If the failover to upgraded nodes occurred, this is also apparent on the status page. You can also check in the Windows Cluster administrator tool to confirm. - -18. After upgrade, the Complete page provides a link to the summary log file for the installation and other important notes. To complete the [!INCLUDE[ssNoVersion](../../../includes/ssnoversion-md.md)] installation process, click **Close**. - -19. If you are instructed to restart the computer, do so now. It is important to read the message from the Installation Wizard when you have finished with Setup. For more information about Setup log files, see [View and Read SQL Server Setup Log Files](../../../database-engine/install-windows/view-and-read-sql-server-setup-log-files.md). - -20. To complete the upgrade process, repeat these steps on all the other nodes of the [!INCLUDE[ssNoVersion](../../../includes/ssnoversion-md.md)] failover cluster instance. - -## Upgrade a multi-subnet failover cluster instance - -Follow these steps to upgrade your Always On failover cluster instance in a multi-subnet environment. - -### To upgrade to a [!INCLUDE[ssNoVersion](../../../includes/ssnoversion-md.md)] multi-subnet failover cluster instance (Existing [!INCLUDE[ssNoVersion](../../../includes/ssnoversion-md.md)] cluster is a non multi-subnet cluster). - -1. Follow the steps above to upgrade your failover cluster instance. - -2. To add a new node on a different subnet using the AddNode Setup action and confirm the IP address resource dependency to OR on the **Cluster Network Configuration** page. For more information, see [Add or Remove Nodes in an Always On failover cluster instance (Setup)](../install/add-or-remove-nodes-in-a-sql-server-failover-cluster-setup.md). - -### To upgrade a multi-subnet failover cluster instance currently using Stretch VLAN to use multi-subnet. - -1. Follow the steps above to upgrade your cluster. - -2. Change the network settings to move the remote node to a different subnet. - -3. Using Failover Cluster Manager or PowerShell, add a new IP address for the new subnet to set the IP address resource dependency to OR. - -## Next Steps - After you upgrade, complete the following tasks: - -- [Complete the Database Engine Upgrade](../../../database-engine/install-windows/complete-the-database-engine-upgrade.md) - -- [Change the Database Compatibility Mode and Use the Query Store](../../../database-engine/install-windows/change-the-database-compatibility-mode-and-use-the-query-store.md) - -- [Take Advantage of New SQL Server 2016 Features](../../what-s-new-in-sql-server-2017.md) - - - + +[!INCLUDE [ssNoVersion](../../../includes/ssnoversion-md.md)] supports upgrading a failover cluster to a new version of [!INCLUDE [ssNoVersion](../../../includes/ssnoversion-md.md)], to a new [!INCLUDE [ssNoVersion](../../../includes/ssnoversion-md.md)] service pack or cumulative update, or when installing to a new Windows service pack or cumulative update separately on all failover cluster nodes, with downtime limited to a single manual failover (or two manual failovers if failing back to the original primary). + +Upgrading the Windows Server operating system of a node containing a failover cluster instance isn't supported for operating systems before [!INCLUDE [winserver2012r2-md](../../../includes/winserver2012r2-md.md)]. To upgrade a Windows Server failover cluster node running on [!INCLUDE [winserver2012r2-md](../../../includes/winserver2012r2-md.md)] or later versions, see [Perform a rolling upgrade or update](#perform-a-rolling-upgrade-or-update). + +Support details are as follows: + +- [!INCLUDE [ssNoVersion](../../../includes/ssnoversion-md.md)] upgrade is supported both through the user interface and from the command prompt. You can run upgrade from the command prompt on each failover cluster node, or by using the [!INCLUDE [ssNoVersion](../../../includes/ssnoversion-md.md)] setup UI to upgrade each cluster node. For more information, see: + +- Install a new [!INCLUDE [ssNoVersion](../../../includes/ssnoversion-md.md)] failover cluster instance +- [Install and configure SQL Server on Windows from the command prompt](../../../database-engine/install-windows/install-sql-server-from-the-command-prompt.md) + +- The following scenarios aren't supported as part of a [!INCLUDE [ssNoVersion](../../../includes/ssnoversion-md.md)] upgrade: + + - You can't upgrade from a stand-alone instance of [!INCLUDE [ssNoVersion](../../../includes/ssnoversion-md.md)] to a failover cluster instance. + + - You can't add features to a failover cluster instance. For example, you can't add the [!INCLUDE [ssDE](../../../includes/ssde-md.md)] to an existing [!INCLUDE [ssASnoversion](../../../includes/ssasnoversion-md.md)]-only failover cluster instance. + + - You can't downgrade a failover cluster instance to a stand-alone instance on any node of the Windows Server failover cluster. + + - Changing the edition of the failover cluster instance is limited to certain scenarios. For more information, see [Supported version & edition upgrades (SQL Server 2016)](../../../database-engine/install-windows/supported-version-and-edition-upgrades.md). + +- During the failover cluster instance upgrade, downtime is limited to failover time and the time that is required for upgrade scripts to run. If you follow this failover cluster instance rolling upgrade process, and meet all prerequisites on all nodes before you begin the upgrade process, your downtime is minimal. Upgrading [!INCLUDE [ssNoVersion](../../../includes/ssnoversion-md.md)] when memory-optimized tables are in use takes some extra time. For more information, see [Plan and test the Database Engine upgrade plan](../../../database-engine/install-windows/plan-and-test-the-database-engine-upgrade-plan.md). + +## Prerequisites + +Before you begin, review the following important information: + +- [Supported version & edition upgrades (SQL Server 2016)](../../../database-engine/install-windows/supported-version-and-edition-upgrades.md): Verify that you can upgrade to your desired version of [!INCLUDE [ssnoversion](../../../includes/ssnoversion-md.md)] from your version of the Windows operating system and version of [!INCLUDE [ssNoVersion](../../../includes/ssnoversion-md.md)]. For example, you can't upgrade directly from a SQL Server 2005 failover clustering instance to [!INCLUDE [sssql14-md](../../../includes/sssql14-md.md)] or upgrade a failover cluster instance running on [!INCLUDE [winserver2003-md](../../../includes/winserver2003-md.md)]. + +- [Choose a Database Engine upgrade method](../../../database-engine/install-windows/choose-a-database-engine-upgrade-method.md): Select the appropriate upgrade method and steps based on your review of supported version and edition upgrades, and also based on other components installed in your environment, to upgrade components in the correct order. + +- [Plan and test the Database Engine upgrade plan](../../../database-engine/install-windows/plan-and-test-the-database-engine-upgrade-plan.md): Review the release notes and known upgrade issues, the pre-upgrade checklist, and develop and test the upgrade plan. + +- [SQL Server 2016 and 2017: Hardware and software requirements](../../install/hardware-and-software-requirements-for-installing-sql-server.md): Review the software requirements for installing [!INCLUDE [ssnoversion](../../../includes/ssnoversion-md.md)]. If extra software is required, install it on each node before you begin the upgrade process to minimize any downtime. + +## Perform a rolling upgrade or update + +To upgrade a [!INCLUDE [ssNoVersion](../../../includes/ssnoversion-md.md)] failover cluster instance, use [!INCLUDE [ssNoVersion](../../../includes/ssnoversion-md.md)] setup to upgrade each node participating in the failover cluster instance, one at a time, starting with the passive nodes. As you upgrade each node, that node is left out of the possible owners of the failover cluster instance. If there's an unexpected failover, the upgraded nodes don't participate in the failover until Windows Server failover cluster role ownership is moved to an upgraded node by setup. + +By default, [!INCLUDE [ssNoVersion](../../../includes/ssnoversion-md.md)] setup automatically determines when to fail over to an upgraded node. This depends on the total number of nodes in the failover cluster instance and the number of nodes that are already upgraded. When half of the nodes or more are already upgraded, [!INCLUDE [ssNoVersion](../../../includes/ssnoversion-md.md)] setup causes a failover to an upgraded node when you perform upgrade on the next node. Upon failover to an upgraded node, the cluster group is moved to an upgraded node. All the upgraded nodes are put in the possible owners list and all the nodes that aren't yet upgraded are removed from the possible owners list. As you upgrade each remaining node, it's added to the possible owners of the failover cluster instance. + +This process results in downtime limited to one failover time and database upgrade script execution time during the whole failover cluster upgrade. + +To control the failover behavior of cluster nodes during the upgrade process, run the upgrade operation at the command prompt and use the /FAILOVERCLUSTERROLLOWNERSHIP parameter. For more information, see [Install and configure SQL Server on Windows from the command prompt](../../../database-engine/install-windows/install-sql-server-from-the-command-prompt.md). + +## Upgrade with installation media + +1. From the [!INCLUDE [ssNoVersion](../../../includes/ssnoversion-md.md)] installation media for the edition that matches the edition you're upgrading, double-click setup.exe in the root folder. You might be asked to install the prerequisites, if they aren't previously installed. + +1. After prerequisites are installed, the Installation Wizard starts the [!INCLUDE [ssNoVersion](../../../includes/ssnoversion-md.md)] Installation Center. To upgrade an existing instance of [!INCLUDE [ssNoVersion](../../../includes/ssnoversion-md.md)], select your instance. + +1. If [!INCLUDE [ssNoVersion](../../../includes/ssnoversion-md.md)] setup support files are required, [!INCLUDE [ssNoVersion](../../../includes/ssnoversion-md.md)] setup installs them. If you're instructed to restart your computer, restart before you continue. + +1. The System Configuration Checker runs a discovery operation on your computer. To continue, select **OK**. + +1. On the Product Key page, enter the PID key for the new version edition that matches the edition of the old product version. For example, to upgrade an Enterprise failover cluster, you must supply a PID key for [!INCLUDE [ssEnterprise](../../../includes/ssenterprise-md.md)]. Select **Next** to continue. The PID key that you use for a failover cluster upgrade must be consistent across all failover cluster nodes in the same [!INCLUDE [ssNoVersion](../../../includes/ssnoversion-md.md)] instance. + +1. On the License Terms page, read the license agreement, and then select the check box to accept the license terms and conditions. To help improve [!INCLUDE [ssNoVersion](../../../includes/ssnoversion-md.md)], you can also enable the feature usage option and send reports to [!INCLUDE [msCoName](../../../includes/msconame-md.md)]. **Click Next to continue**. To end Setup, select **Cancel**. + +1. On the Select Instance page, specify the [!INCLUDE [ssNoVersion](../../../includes/ssnoversion-md.md)] instance to upgrade. **Click Next to continue**. + +1. On the Feature Selection page, the features to upgrade are preselected. A description for each component group appears in the right pane after you select the feature name. You can't change the features to be upgraded, and you can't add features during the upgrade operation. To add features to an upgraded instance of [!INCLUDE [ssSQL14](../../../includes/sssql14-md.md)] after the upgrade operation is complete, see [Add Features to an Instance of SQL Server (Setup)](../../../database-engine/install-windows/add-features-to-an-instance-of-sql-server-setup.md). + + The prerequisites for the selected features are displayed on the right-hand pane. SQL Server Setup installs the prerequisites that aren't already installed during the installation step described later in this procedure. To save time, you should preinstall these prerequisites on each node. + +1. On the Instance Configuration page, fields are automatically populated from the old instance. You can choose to specify the new InstanceID value. + + **Instance ID** - By default, the instance name is used as the Instance ID. This is used to identify installation directories and registry keys for your instance of [!INCLUDE [ssNoVersion](../../../includes/ssnoversion-md.md)]. This is the case for default instances and named instances. For a default instance, the instance name and instance ID would be MSSQLSERVER. To use a nondefault instance ID, select the **Instance ID** check box and provide a value. If you override the default value, you must specify the same Instance ID for the instance being upgraded on all the failover cluster nodes. The Instance ID for the upgraded instance must match across the nodes. + + **Detected instances and features** - The grid shows instances of [!INCLUDE [ssNoVersion](../../../includes/ssnoversion-md.md)] that are on the computer where setup is running. **Click Next to continue**. + +1. The Disk Space Requirements page calculates the required disk space for the features that you specify, and compares requirements to the available disk space on the computer where Setup is running. + +1. On the Full-Text Search Upgrade page, specify the upgrade options for the databases being upgraded. For more information, see [Upgrade Full-Text Search](../../../relational-databases/search/upgrade-full-text-search.md). + +1. On the **Error Reporting** page, specify the information that you want to send to [!INCLUDE [msCoName](../../../includes/msconame-md.md)] that help improve [!INCLUDE [ssNoVersion](../../../includes/ssnoversion-md.md)]. By default, the option for error reporting is enabled. + +1. The System Configuration Checker runs one more set of rules to validate your computer configuration with the [!INCLUDE [ssNoVersion](../../../includes/ssnoversion-md.md)] features that you specified, before the upgrade operation begins. + +1. The Cluster Upgrade Report page displays the list of nodes in the failover cluster instance and the instance version information for [!INCLUDE [ssNoVersion](../../../includes/ssnoversion-md.md)] components on each node. It displays the database script status and replication script status. In addition, it also displays informational messages on what will occur when you select **Next**. Depending on the number of failover cluster nodes that are already upgraded and total number of nodes, setup displays the failover behavior that happens when you select **Next**. It also warns about potential unnecessary downtime if you haven't installed the prerequisites already. + +1. The Ready to Upgrade page displays a tree view of installation options that were specified during Setup. To continue, select **Upgrade**. [!INCLUDE [ssNoVersion](../../../includes/ssnoversion-md.md)] Setup first installs the required prerequisites for the selected features followed by the feature installation. + +1. During upgrade, the Progress page provides status so that you can monitor the upgrade progress on the current node as Setup continues. + +1. After the upgrade of the current node, the Cluster Upgrade Report page displays an upgrade status information for all the failover cluster nodes, features on each failover cluster node, and their version information. Confirm the version information that is displayed and continue with the upgrade of the remaining nodes. If the failover to upgraded nodes occurred, this is also apparent on the status page. You can also check in the Windows Cluster administrator tool to confirm. + +1. After upgrade, the Complete page provides a link to the summary log file for the installation and other important notes. To complete the [!INCLUDE [ssNoVersion](../../../includes/ssnoversion-md.md)] installation process, select **Close**. + +1. If you're instructed to restart the computer, do so now. It's important to read the message from the Installation Wizard when you finish with Setup. For more information about Setup log files, see [View and Read SQL Server Setup Log Files](../../../database-engine/install-windows/view-and-read-sql-server-setup-log-files.md). + +1. To complete the upgrade process, repeat these steps on all the other nodes of the [!INCLUDE [ssNoVersion](../../../includes/ssnoversion-md.md)] failover cluster instance. + +## Upgrade a multi-subnet failover cluster instance + +Follow these steps to upgrade your Always On failover cluster instance in a multi-subnet environment. + +### Upgrade to a SQL Server multi-subnet failover cluster instance (existing SQL Server cluster is a non multi-subnet cluster) + +1. Follow the previous steps to upgrade your failover cluster instance. + +1. To add a new node on a different subnet using the AddNode Setup action and confirm the IP address resource dependency to OR on the **Cluster Network Configuration** page. For more information, see [Add or remove nodes in a failover cluster instance (Setup)](../install/add-or-remove-nodes-in-a-sql-server-failover-cluster-setup.md). + +### Upgrade a multi-subnet failover cluster instance currently using Stretch VLAN to use multi-subnet + +1. Follow the previous steps to upgrade your cluster. + +1. Change the network settings to move the remote node to a different subnet. + +1. Using Failover Cluster Manager or PowerShell, add a new IP address for the new subnet to set the IP address resource dependency to OR. + +## Related content + +- [Complete the Database Engine Upgrade](../../../database-engine/install-windows/complete-the-database-engine-upgrade.md) +- [Change the database compatibility level and use the Query Store](../../../database-engine/install-windows/change-the-database-compatibility-mode-and-use-the-query-store.md) +- [What's new in SQL Server 2017](../../what-s-new-in-sql-server-2017.md)