October DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsSlow PC?RecommendedPC slow today? Run a repair scan before it gets worseResolve common Windows issues and optimize system performance.Scan NowOctober DealsAmazon USDeal season is back - check today's better picksAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk3 min

SQL Server AG Secondaries Not Load Balancing? Check This Routing-List Step

The likely missed step is grouping the intended replicas with nested parentheses in the current primary’s READ_ONLY_ROUTING_LIST. Then verify routing URLs, listener access, and client read-only intent.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

If read-only connections are not spreading across your SQL Server Always On availability group (AG) secondaries, check the primary replica’s READ_ONLY_ROUTING_LIST. The replicas meant to share incoming connections must be grouped with nested parentheses, such as (('Secondary1','Secondary2'), 'Secondary3'). The nested group is the load-balanced set; the remaining entry is a fallback. A flat list specifies routing order, not that load-balanced group.

Why aren’t my AG secondaries load balancing?

Read-only routing and load balancing are related but separate configuration steps. A readable secondary does not automatically receive application traffic: clients must connect through the AG listener and request read-only intent, and the current primary must have a routing list that identifies eligible destinations.

As an Amazon Associate I earn from qualifying purchases.

Microsoft documents load balancing read-intent requests across readable secondary replicas beginning with SQL Server 2016 (13.x). Its CREATE AVAILABILITY GROUP documentation describes the nested-parentheses syntax. This balances qualifying connection requests across the configured group—not individual queries or guaranteed CPU, throughput, or work volume.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

How to configure read-only routing and its load-balanced group

Read-only routing has two pieces: a routing URL on each replica that can receive routed connections, and a routing list on each replica that may become primary. Microsoft recommends setting the URL before configuring the routing list. See the read-only routing configuration guidance for the full procedure and version-specific syntax.

1. Set routing URLs on eligible destinations

Configure READ_ONLY_ROUTING_URL for each replica intended to receive routed connections. The URL is effective when that replica is in the secondary role. Include only replicas that can host readable secondaries and have the required URL configured.

2. Set a routing list for every possible primary

Configure READ_ONLY_ROUTING_LIST for each replica that may act as primary. The list controls where read-intent connections go while that replica is primary. If the local replica is included as a fallback, Microsoft recommends placing it last.

3. Nest the replicas that should share connections

Put replicas intended to receive a load-balanced share inside one nested group. For example, in (('Secondary1','Secondary2'), 'Secondary3'), the first two replicas form the group; the ungrouped replica is a fallback in routing-list order. A simple flat list does not mark a load-balanced group.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Verify the whole client-to-secondary path

Work through these checks before treating uneven application behavior as a load-balancing defect:

  1. Confirm the AG has a listener and at least one secondary configured to accept read-only connections.
  2. Check each destination’s READ_ONLY_ROUTING_URL and each possible primary’s READ_ONLY_ROUTING_LIST. Confirm the intended load-balanced replicas are grouped with nested parentheses.
  3. Confirm the client uses TCP, connects to the AG listener, names a database in the AG, and sets ApplicationIntent=ReadOnly. Verify that the client provider supports this property. Microsoft recommends MultiSubnetFailover=True; for distributed network name listeners, its troubleshooting guidance specifically calls out provider support for that option.
  4. Verify that the primary’s routing list contains only instances hosting readable secondaries. Check replica access settings, routing URLs, and listener state if routing still fails.

Microsoft’s Always On configuration troubleshooting guidance includes this query for replica properties:

SELECT replica_id,
       replica_server_name,
       secondary_role_allow_connections_desc,
       read_only_routing_url
FROM sys.availability_replicas;

To inspect the configured routing list, query sys.availability_read_only_routing_lists. These catalog checks can reveal configuration mismatches; they do not verify what intent a client sent or prove that connections are evenly distributed.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

What load balancing does—and does not—promise

Microsoft describes read-scale forwarding in round-robin terms, while the routing syntax identifies a load-balanced group. The relevant unit is the qualifying read-intent connection request. Do not infer from that behavior that queries, CPU usage, throughput, or total work will be divided equally: routing configuration alone makes no such guarantee.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

For background on read-scale workloads and readable secondary behavior, see Microsoft’s readable secondary replicas documentation.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Windows Errors? Fix Them Before They SpreadFree repair scan
Crashes, No Sound, or Screen Glitches?Free driver scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.