Skip to content

Commit b7572d5

Browse files
Merge pull request #36567 from MicrosoftDocs/main
Auto Publish – main to live - 2026-02-05 23:30 UTC
2 parents 9a1af62 + cdb0e03 commit b7572d5

19 files changed

Lines changed: 416 additions & 342 deletions

azure-sql/virtual-machines/windows/availability-group-manually-configure-multi-subnet-multiple-regions.md

Lines changed: 66 additions & 66 deletions
Large diffs are not rendered by default.

azure-sql/virtual-machines/windows/availability-group-manually-configure-multiple-regions.md

Lines changed: 84 additions & 84 deletions
Large diffs are not rendered by default.
Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,35 @@
11
---
2-
title: "Use contained databases with availability groups"
2+
title: "Use Contained Databases with Availability Groups"
33
description: "Learn about the using a contained database with Always On availability groups in SQL Server 2019 (15.x)."
44
author: MashaMSFT
55
ms.author: mathoma
6-
ms.date: "05/17/2016"
6+
ms.reviewer: randolphwest
7+
ms.date: 02/04/2026
78
ms.service: sql
89
ms.subservice: availability-groups
910
ms.topic: how-to
1011
helpviewer_keywords:
1112
- "Availability Groups [SQL Server], interoperability"
1213
- "contained database, AlwaysOnAvailabilityGroups"
14+
- "contained database, Always On Availability Groups"
1315
---
14-
# Use contained databases with Always On availability groups
16+
# Use contained databases with Always On availability groups
17+
1518
[!INCLUDE [SQL Server](../../../includes/applies-to-version/sqlserver.md)]
1619

17-
This topic contains information about the using a contained database with [!INCLUDE[ssHADR](../../../includes/sshadr-md.md)] in [!INCLUDE[ssnoversion](../../../includes/ssnoversion-md.md)].
18-
19-
## <a name="Prerequisites"></a> Prerequisites
20-
21-
- Before adding a contained database to an availability group, ensure that the **contained database authentication** server option is set to **1** on every server instance that hosts an availability replica for the availability group. For more information, see [contained database authentication Server Configuration Option](../../../database-engine/configure-windows/contained-database-authentication-server-configuration-option.md) and [Server Configuration Options &#40;SQL Server&#41;](../../../database-engine/configure-windows/server-configuration-options-sql-server.md).
22-
23-
## <a name="RelatedTasks"></a> Related Tasks
24-
25-
- [Server Configuration Options &#40;SQL Server&#41;](../../../database-engine/configure-windows/server-configuration-options-sql-server.md)
26-
27-
## See Also
28-
[Overview of Always On Availability Groups &#40;SQL Server&#41;](../../../database-engine/availability-groups/windows/overview-of-always-on-availability-groups-sql-server.md)
29-
[Contained Databases](../../../relational-databases/databases/contained-databases.md)
30-
31-
20+
This article contains information about the using a contained database with [!INCLUDE [ssHADR](../../../includes/sshadr-md.md)] in [!INCLUDE [ssnoversion](../../../includes/ssnoversion-md.md)].
21+
22+
## Prerequisites
23+
24+
Before adding a contained database to an availability group, ensure that the `contained database authentication` server configuration option is set to `1` on every server instance that hosts an availability replica for the availability group.
25+
26+
For more information, see [Server Configuration: contained database authentication](../../configure-windows/contained-database-authentication-server-configuration-option.md).
27+
28+
## Related tasks
29+
30+
- [Server configuration options](../../configure-windows/server-configuration-options-sql-server.md)
31+
32+
## Related content
33+
34+
- [What is an Always On availability group?](overview-of-always-on-availability-groups-sql-server.md)
35+
- [Contained Databases](../../../relational-databases/databases/contained-databases.md)

docs/linux/business-continuity/high-availability/configure-custom-logic.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: How to configure a SQL Server Always On availability group using cu
44
author: rwestMSFT
55
ms.author: randolphwest
66
ms.reviewer: atsingh, amitkh-msft
7-
ms.date: 01/13/2026
7+
ms.date: 02/04/2026
88
ms.service: sql
99
ms.subservice: linux
1010
ms.topic: design-pattern
@@ -47,7 +47,7 @@ This article explains how to configure a SQL Server Always On availability group
4747

4848
Create the AG. Set `CLUSTER_TYPE = EXTERNAL`. In addition, set each replica with `FAILOVER_MODE = EXTERNAL`. Depending on the environment's requirements, set `AVAILABILITY_MODE` to either `SYNCHRONOUS_COMMIT` or `ASYNCHRONOUS_COMMIT.`
4949

50-
**Paxos protocol** plays a critical role in the internal communication and configuration consistency of AlwaysOn availability groups (AGs) in SQL Server, particularly in cluster-agnostic or external cluster configurations. Paxos maintains consistency of the AG configuration across replicas, prevent split-brain scenarios, and ensures only primary is responsible for configuration updates.
50+
**Paxos protocol** plays a critical role in the internal communication and configuration consistency of Always On availability groups (AGs) in SQL Server, particularly in cluster-agnostic or external cluster configurations. Paxos maintains consistency of the AG configuration across replicas, prevent split-brain scenarios, and ensures only primary is responsible for configuration updates.
5151

5252
The following Transact-SQL script creates an AG named `ag1`. The script configures the AG replicas with `SEEDING_MODE = MANUAL`. This setting requires you to manually initialize secondary replicas with a copy of the database before adding them to the AG. Update the following script for your environment. Replace the `<node1>`, `<node2>`, and `<node3>` values with the names of the SQL Server instances that host the replicas. This AG also configures the configuration only replica `<node3>`. The configuration only replica maintains configuration information about the availability group in the `master` database but doesn't contain the user databases in the availability group. Replace the `<5022>` value with the port you set for the endpoint. Run the following Transact-SQL script on the primary SQL Server replica:
5353

@@ -199,4 +199,4 @@ To force a manual failover with data loss from primary replica N1 to secondary r
199199

200200
- [Distributed availability groups](../../../database-engine/availability-groups/windows/distributed-availability-groups.md)
201201
- [What is an Always On availability group?](../../../database-engine/availability-groups/windows/overview-of-always-on-availability-groups-sql-server.md)
202-
- [Perform a forced manual failover of an Always On availability group (SQL Server)](../../../database-engine/availability-groups/windows/perform-a-forced-manual-failover-of-an-availability-group-sql-server.md)
202+
- [Perform a forced manual failover of an Always On availability group (SQL Server)](../../../database-engine/availability-groups/windows/perform-a-forced-manual-failover-of-an-availability-group-sql-server.md)

docs/linux/sql-server-linux-replication-non-default-ports.md

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,32 @@
11
---
2-
title: "Configure Replication Snapshot Folder (Non-Default Ports)"
2+
title: "Configure Replication Snapshot Folder (Nondefault Ports)"
33
titleSuffix: SQL Server on Linux
4-
description: Learn to configure snapshot folder shares with non-default ports for SQL Server replication on Linux.
4+
description: Learn to configure snapshot folder shares with nondefault ports for SQL Server replication on Linux.
55
author: rwestMSFT
66
ms.author: randolphwest
77
ms.reviewer: vanto
88
ms.date: 01/21/2025
9+
ai-usage: ai-assisted
910
ms.service: sql
1011
ms.subservice: linux
1112
ms.topic: how-to
1213
ms.custom:
1314
- linux-related-content
1415
monikerRange: ">=sql-server-ver15 || >=sql-server-linux-ver15"
1516
---
16-
# Configure replication with non-default ports (SQL Server Linux)
17+
# Configure replication with nondefault ports (SQL Server Linux)
1718

1819
[!INCLUDE [SQL Server - Linux](../includes/applies-to-version/sql-linux.md)]
1920

2021
You can configure replication with SQL Server on Linux instances listening on any port configured with the `network.tcpport` mssql-conf setting. The port needs to be appended to the server name during configuration if the following conditions are true:
2122

2223
- Replication set-up involves an instance of SQL Server on Linux
23-
- Any instance (Windows or Linux) is listening on a non-default port.
24+
- Any instance (Windows or Linux) is listening on a nondefault port.
2425

2526
The server name of an instance can be found by running `@@SERVERNAME` on the instance. Don't use the IP address instead of the server name. Using the IP address for the publisher, distributor, or subscriber might result in an error.
2627

2728
> [!NOTE]
28-
> Creating SQL Server replication on Linux with non-default port will only work with SQL Server 2019 and above.
29+
> Creating SQL Server replication on Linux with nondefault port will only work with SQL Server 2019 and above.
2930
3031
## Examples
3132

@@ -53,6 +54,14 @@ EXEC sp_addsubscription @subscriber = 'Server2,6549' , ,
5354
EXEC sp_addsubscription @subscriber = 'Server3/MSSQL2017,6549', ,
5455
```
5556

57+
## Known issues
58+
59+
### Linked server port not updated when recreating subscription
60+
61+
When you delete and recreate a subscription with a nondefault port on the Subscriber, the system reuses the existing linked server but fails to update the port configuration. This can cause replication to fail when attempting to connect to the Subscriber.
62+
63+
For more information about this known issue, including symptoms, cause, and workaround, see [Delete a push subscription](../relational-databases/replication/delete-a-push-subscription.md#known-issue-port).
64+
5665
## Related content
5766

5867
- [SQL Server replication on Linux](sql-server-linux-replication.md)

docs/relational-databases/errors-events/mssqlserver-19407-database-engine-error.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: "MSSQLSERVER_19407"
44
author: pijocoder
55
ms.author: jopilov
66
ms.reviewer: randolphwest
7-
ms.date: 04/03/2024
7+
ms.date: 02/04/2026
88
ms.service: sql
99
ms.subservice: supportability
1010
ms.topic: "reference"
@@ -18,7 +18,7 @@ helpviewer_keywords:
1818
## Details
1919

2020
| Attribute | Value |
21-
| :--- | :--- |
21+
| --- | --- |
2222
| Product Name | SQL Server |
2323
| Event ID | 19407 |
2424
| Event Source | MSSQLSERVER |
@@ -30,7 +30,7 @@ helpviewer_keywords:
3030

3131
Error 19407 is raised in the SQL Server error log when the communication between SQL Server and the Windows Server Failover cluster is lost. Typically a corrective action occurs - a failover to another Always On node.
3232

33-
A lease is a time-based communication mechanism that takes place between the SQL Server and the Windows Server Failover Cluster (WSFC) process, specifically the RHS.EXE process. The two processes communicate with each other periodically to ensure the other process is running and responding. This communication takes place using Windows [Event objects](/windows/win32/sync/event-objects) and ensures that a failover of the AG resource doesn't occur without the knowledge of the WSFC. If one of the processes doesn't respond to the lease communication based on a predefined lease period, a lease timeout occurs. For detailed information, see [Mechanics and guidelines of lease, cluster, and health check timeouts for Always On availability groups](../../database-engine/availability-groups/windows/availability-group-lease-healthcheck-timeout.md). Also see [How It Works: SQL Server AlwaysOn Lease Timeout](https://techcommunity.microsoft.com/t5/sql-server-support-blog/how-it-works-sql-server-alwayson-lease-timeout/ba-p/317268)
33+
A lease is a time-based communication mechanism that takes place between the SQL Server and the Windows Server Failover Cluster (WSFC) process, specifically the RHS.EXE process. The two processes communicate with each other periodically to ensure the other process is running and responding. This communication takes place using Windows [Event objects](/windows/win32/sync/event-objects) and ensures that a failover of the AG resource doesn't occur without the knowledge of the WSFC. If one of the processes doesn't respond to the lease communication based on a predefined lease period, a lease timeout occurs. For detailed information, see [Mechanics and guidelines of lease, cluster, and health check timeouts for Always On availability groups](../../database-engine/availability-groups/windows/availability-group-lease-healthcheck-timeout.md). Also see [How It Works: SQL Server Always On Lease Timeout](https://techcommunity.microsoft.com/blog/sqlserversupport/how-it-works-sql-server-alwayson-lease-timeout/317268).
3434

3535
### Causes
3636

@@ -59,7 +59,7 @@ Since Windows Events are light-weight synchronization objects, there's relativel
5959

6060
1. Go to the **Performance** tab and see if CPUs are close to or at 100% utilization.
6161

62-
1. Go to the **Processes** tab and sort processes by the CPU column in descending order, by selecting on the **CPU** column.
62+
1. Go to the **Processes** tab and sort processes by the CPU column in descending order, by selecting the **CPU** column.
6363

6464
1. Identify the process that uses most CPU, and work on understanding and resolving the reason for it causing the high CPU.
6565

@@ -211,7 +211,7 @@ For more information, see [Use the Sqldumper.exe tool to generate a dump file in
211211

212212
### Check virtual machine (VM) configuration for overprovisioning
213213

214-
If you're using a virtual machine, ensure that you aren't overprovisioning or overcommitting CPUs and memory resources. Overprovisioning CPUs or memory might cause the guest OS to run out of resources and show the same problems described earlier - high CPU and low memory. Frequently if you're viewing things inside the guest OS, explaining why you're running out of computing resources is difficult, because things are happening outside of the virtual machine itself. Overcommitting resources can cause temporary halts of processing, which are likely to cause lease timeouts. For more information on how to address overcommitting, see [Troubleshooting ESX/ESXi virtual machine performance issues (2001003)](https://kb.vmware.com/s/article/2001003) and [Virtualization Overcommitting memory and how to detect it within the VM](https://techcommunity.microsoft.com/t5/running-sap-applications-on-the/virtualization-8211-overcommitting-memory-and-how-to-detect-it/ba-p/367623).
214+
If you're using a virtual machine, ensure that you aren't overprovisioning or overcommitting CPUs and memory resources. Overprovisioning CPUs or memory might cause the guest OS to run out of resources and show the same problems described earlier - high CPU and low memory. Frequently if you're viewing things inside the guest OS, explaining why you're running out of computing resources is difficult, because things are happening outside of the virtual machine itself. Overcommitting resources can cause temporary halts of processing, which are likely to cause lease timeouts. For more information on how to address overcommitting, see [Troubleshooting ESX/ESXi virtual machine performance issues (2001003)](https://kb.vmware.com/s/article/2001003) and [Virtualization - Overcommitting memory and how to detect it within the VM](https://techcommunity.microsoft.com/blog/sapapplications/virtualization-8211-overcommitting-memory-and-how-to-detect-it-within-the-vm/367623).
215215

216216
### Check for virtual machine (VM) migration or backup
217217

docs/relational-databases/errors-events/mssqlserver-19419-database-engine-error.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ title: "MSSQLSERVER_19419"
33
description: "MSSQLSERVER_19419"
44
author: pijocoder
55
ms.author: jopilov
6-
ms.date: 01/13/2023
6+
ms.reviewer: randolphwest
7+
ms.date: 02/04/2026
78
ms.service: sql
89
ms.subservice: supportability
910
ms.topic: "reference"
@@ -17,7 +18,7 @@ helpviewer_keywords:
1718
## Details
1819

1920
| Attribute | Value |
20-
| :--- | :--- |
21+
| --- | --- |
2122
| Product Name | SQL Server |
2223
| Event ID | 19419 |
2324
| Event Source | MSSQLSERVER |
@@ -30,9 +31,9 @@ helpviewer_keywords:
3031
Error 19419 is raised in the SQL Server error log when the lease worker on the SQL Server side didn't get scheduled in time to process event signal from the cluster.
3132
Specifically, SQL Server calls [WaitForMultipleObjects()](/windows/win32/api/synchapi/nf-synchapi-waitformultipleobjects) waiting for the Lease timeout event to be set in a signaled state. If the function returns WAIT_OBJECT_0, which indicates success, but by this time the lease has expired, then error 19419 is raised.
3233

33-
A lease is a time-based communication mechanism that takes place between the SQL Server and the Windows Server Failover Cluster (WSFC) process, specifically the RHS.EXE process. The two processes communicate with each other periodically to ensure the other process is running and responding. This communication takes place using Windows [Event objects](/windows/win32/sync/event-objects) and ensures that a failover of the AG resource doesn't occur without the knowledge of the WSFC. If one of the processes doesn't respond to the lease communication based on a predefined lease period, a lease timeout occurs. For detailed information, see [Lease Mechanism](../../database-engine/availability-groups/windows/availability-group-lease-healthcheck-timeout.md). Also see [How It Works: SQL Server AlwaysOn Lease Timeout](https://techcommunity.microsoft.com/t5/sql-server-support-blog/how-it-works-sql-server-alwayson-lease-timeout/ba-p/317268)
34+
A lease is a time-based communication mechanism that takes place between the SQL Server and the Windows Server Failover Cluster (WSFC) process, specifically the RHS.EXE process. The two processes communicate with each other periodically to ensure the other process is running and responding. This communication takes place using Windows [Event objects](/windows/win32/sync/event-objects) and ensures that a failover of the AG resource doesn't occur without the knowledge of the WSFC. If one of the processes doesn't respond to the lease communication based on a predefined lease period, a lease timeout occurs. For detailed information, see [Mechanics and guidelines of lease, cluster, and health check timeouts for Always On availability groups](../../database-engine/availability-groups/windows/availability-group-lease-healthcheck-timeout.md). Also see [How It Works: SQL Server Always On Lease Timeout](https://techcommunity.microsoft.com/blog/sqlserversupport/how-it-works-sql-server-alwayson-lease-timeout/317268).
3435

35-
This error is related to other lease timeout errors and provides more specific detail for error [MSSQLSERVER_19407](mssqlserver-19407-database-engine-error.md)
36+
This error is related to other lease timeout errors and provides more specific detail for error [MSSQLSERVER_19407](mssqlserver-19407-database-engine-error.md).
3637

3738
### Causes
3839

@@ -43,19 +44,18 @@ Since Windows Events are light-weight synchronization objects, there's relativel
4344
- SQL Server process not responding while generating a large memory dump
4445
- WSFC going offline (e.g due to quorum loss)
4546

46-
4747
The most common reason for error 19419 is high CPU, which causes a delay in scheduling the lease worker thread.
4848

4949
## User action
5050

5151
Check the CPU utilization on the server as SQL Server lease worker seems to be starved for CPU resources. The following PowerShell script will allow you to quickly diagnose CPU usage on the system.
5252

53-
```powershell
53+
```powershell
5454
Get-Counter -Counter "\Processor(_Total)\% Processor Time" -SampleInterval 5 -MaxSamples 30 |
5555
Select-Object -ExpandProperty CounterSamples | Select-Object TimeStamp, Path, CookedValue
5656
```
5757

58-
For detailed troubleshooting, see User action in [MSSQLSERVER_19407](mssqlserver-19407-database-engine-error.md#user-action)
58+
For detailed troubleshooting, see User action in [MSSQLSERVER_19407](mssqlserver-19407-database-engine-error.md#user-action):
5959

6060
- Troubleshoot high CPU issues
6161
- Troubleshoot low memory issues

0 commit comments

Comments
 (0)