Core component of SQL Server for storing, processing, and securing data
In this scenario, I would not recommend relying solely on a DNS change or attempting to reuse the existing DNN listener immediately after cutover.
The challenge is that DNN listeners publish the IP addresses of the cluster nodes in DNS. Applications that cache DNS responses or maintain long-lived connection pools may continue attempting connections to the old SQL Server 2016 AG nodes long after the cutover has occurred.
A common approach is:
- Perform the cutover to the SQL Server 2022 AG using the Distributed AG.
- Leave the SQL Server 2016 AG online temporarily.
- Configure the old environment to forward or redirect client connections to the new SQL Server 2022 listener.
- Allow cached DNS entries and existing connection pools to age out naturally.
- Decommission the old AG only after confirming that client traffic has migrated successfully.
If preserving the original listener name is a hard requirement, a more predictable solution is to place a stable network endpoint in front of the AGs, such as:
- an Azure Load Balancer,
- a DNS alias (CNAME),
- or another abstraction layer whose backend target can be changed during migration.
This avoids depending on client DNS cache expiration and reduces the impact of applications that cannot be restarted.
For environments where applications maintain long-lived pooled connections and connection strings cannot be fully inventoried, a phased migration strategy with temporary coexistence of the old and new AGs is generally the lowest-risk option. It provides a transition period during which existing sessions continue functioning while new connections are directed to the SQL Server 2022 environment.
Recommendation
Keep the SQL Server 2016 AG available for a transition period after cutover and use a redirection mechanism (DNS alias, load balancer, or network-level abstraction) rather than depending on clients promptly refreshing DNN listener records. This approach minimizes disruption for applications that cache DNS entries or maintain persistent connection pools.
Thanks.