Core component of SQL Server for storing, processing, and securing data
The HA replicas’ endpoint URLs must use addresses reachable from the DR node; either move those endpoints from the directly connected 192.169.100.x interfaces to routable addresses/FQDNs, or provide routing from DR to that dedicated replication network.
Your successful test from an HA node to DR verifies only one direction. Every replica must be able to reach every other replica’s database-mirroring endpoint over TCP. Because the HA private NICs are connected only to each other, the DR node normally has no path back to those endpoint addresses. That leaves the DR replica DISCONNECTED, which SSMS displays as a red X.^1^
Confirm the mismatch
- On every SQL Server instance, inspect the AG endpoint URL, actual endpoint port, state, and encryption:
SELECT replica_server_name, endpoint_url
FROM sys.availability_replicas;
SELECT name, state_desc, type_desc,
protocol_desc, encryption_algorithm_desc
FROM sys.database_mirroring_endpoints;
SELECT type_desc, ip_address, port
FROM sys.tcp_endpoints
WHERE type_desc = 'DATABASE_MIRRORING';
The URL has the form TCP://<system-address>:<port>. Its address must identify the target computer through an address reachable by the other replicas; Microsoft recommends an FQDN, while a static IP is also supported.^2^
- From the DR node, test each HA replica using the exact address and port shown in
sys.availability_replicas:
Test-NetConnection -ComputerName [IP Address] -Port 5022
Test-NetConnection -ComputerName [IP Address] -Port 5022
Replace 5022 with the actual endpoint port. These tests are expected to fail if those NICs have only a direct HA-to-HA connection.
- Also test the reverse direction—from each HA node to the DR endpoint—and verify
TcpTestSucceeded : True. Microsoft’s disconnected-replica procedure explicitly requires testing both directions.^1^
Correct the topology
Choose one design:
- Preferred for this topology: configure each HA endpoint/replica URL with the server’s routable static address or FQDN that all three nodes can reach.
- Keep the dedicated replication network: connect it through switching/routing and give the DR node a valid route to both HA endpoint addresses. Confirm that return routing and firewalls allow the endpoint TCP port.
- Add a dedicated DR replication NIC/network: use this only if that network becomes routable end-to-end; merely adding another isolated interface does not solve reachability.
A database-mirroring endpoint is shared by all AG connections for that SQL Server instance. It is not a separate endpoint per remote replica, so binding the instance’s endpoint exclusively to the isolated HA link prevents that same endpoint from accepting the DR replica’s traffic.^3^
Do not reconfigure an active endpoint casually: changing or restarting it temporarily interrupts AG traffic and can affect automatic failover.^3^ Schedule the change, update the affected replica endpoint URLs, and then repeat all six directional tests.
If bidirectional tests succeed but the X remains
Compare all three endpoints for:
-
state_desc = STARTED - The URL port matching the actual
DATABASE_MIRRORINGport - Identical compatible encryption configuration
- No other process or SQL instance owning the port
$port = 5022
Get-NetTCPConnection -LocalPort $port |
Select-Object LocalAddress, LocalPort, State, OwningProcess
Get-Process -Id (Get-NetTCPConnection -LocalPort $port |
Select-Object -First 1 -ExpandProperty OwningProcess)
Microsoft lists port conflicts, encryption mismatch, stopped/deleted endpoints, and connectivity as causes of a disconnected replica.^1^
Because all SQL Server services use the same domain account, the corresponding logins normally exist automatically in master; additional cross-account endpoint grants are generally required when replicas use different accounts.^4^ Therefore, endpoint permissions are not the leading issue here.
References