Azure SQL PaaS Failover Scenario and Cost

ElenaMarlowe-3376 65 Reputation points
2025-06-07T14:01:43.5833333+00:00

Hi,

I have a few questions regarding Azure SQL PaaS failover, pricing, and integration with private endpoint:

  1. If I configure a Failover Group that contains 10 SQL databases, will the entire failover group automatically failover if only one of the databases in the group becomes unavailable? Or does automatic failover only happen if the entire SQL server (or all databases) are unavailable?
  2. I understand that Failover Group supports auto-failover, but it seems that this only applies when the failover is Microsoft-managed, which might take up to an hour or more depending on the outage. If I’m using a custom-managed failover, is there a way to enable automatic failover behavior in that context? Would I need to set up any custom metrics, alerts, or automation (e.g., with Azure Monitor and Logic Apps) to support this kind of proactive failover?
  3. If my SQL databases are all in an elastic pool. After I provision a secondary elastic pool in the secondary region, and enable geo-replication for each database, will the cost of the geo-secondary databases be based solely on the secondary elastic pool's pricing tier, with no additional per-database cost?
  4. Is there any extra charge specific to the Failover Group itself (other than the cost of the geo-secondary databases)?
  5. If I have SQL servers configured with private endpoints, and I’ve already created a secondary SQL server in another region and linked both SQL servers to the same private DNS zone, are there any additional steps required to prepare for failover? After failover, do I need to manually update any connection strings or DNS records, since I know failover group will automatically update connection string, but how about SQL server itself with private endpoint?
  6. Are there any best practices for failover testing in such a setup (e.g., temporarily failing over and validating connectivity via private endpoint)

Thank you!

Azure SQL Database
{count} vote

1 answer

Sort by: Most helpful
  1. Shraddha Pore 445 Reputation points Microsoft External Staff Moderator
    2025-06-07T18:05:14.1233333+00:00

    Hi ElenaMarlowe-3376, Thank you so much for your question. Below is the research you can consider for your queries.

    Q1. When you set up an Azure SQL Failover Group, automatic failover applies to the entire group, not to individual databases. That means if just one database in the group goes down, it won’t trigger a failover. The system is designed to fail over only when the whole SQL server is unavailable. This approach helps ensure all databases in the group stay consistent and available together. If you need more granular control for instance, automatic failover of a single database you’d want to look at configuring auto-failover groups on a per-database basis. This allows each database to switch over independently, maintaining high availability without waiting on the whole server.

    You can refer documentation. Also, Documentation

    Q2. Custom-Managed Failover and Enabling Automatic Behaviour:

    If you're handling failover yourself (a custom-managed approach), Azure doesn’t offer built-in automatic failover capabilities for individual databases. But you can still build an automated solution using Azure’s monitoring and automation tools. Start by setting up Azure Monitor to keep an eye on your databases. Then, configure alerts to notify you of issues like if a database goes offline. From there, tools like Azure Logic Apps or Azure Automation can be used to trigger the failover process automatically. It takes a bit more setup but gives you full control over how and when failover happens.

    • Monitoring - Azure Monitor / Log Analytics
    • Alerts - on metrics or logs like connection errors, CPU, DTU
    • Automation - Logic Apps, Functions, or Automation Runbooks
    • Failover Trigger - CLI/API

    You can refer Documentation

    Q3. Costs for Geo-Secondary Databases in Elastic Pools:

    If your databases are in an elastic pool and you enable geo-replication, pricing is tied to the service tier of the secondary elastic pool—not the individual databases. So, you won’t be charged separately for each geo-secondary database as long as they’re part of the pool. Secondary active geo-replication databases are priced at 100 percent of primary database prices. Secondary active geo-replication databases are priced at 100 percent of primary database prices. Also note that The cost of geo-replication traffic between the primary and the online secondary is included in the cost of the online secondary. So In essence, for Replicated Databases, you can calculate these costs as the same as the primary database in Azure pricing calculator

    Q4. Extra Charges for Using Failover Groups:

    There’s no additional fee just for setting up a Failover Group itself. You’re mainly paying for the underlying resources your databases and the elastic pools they live in. That said, using features like active geo-replication or auto-failover across regions does come with added costs, depending on the number of databases you replicate and where they’re located. It’s worth reviewing Azure's pricing documentation if you're planning for large-scale DR setups.

    Q5. Using Private Endpoints with SQL and Preparing for Failover:

    If you’re using Private Endpoints with your SQL servers and you’ve already set up a secondary SQL server in a different region, and both are connected to the same private DNS zone, you’re mostly covered. Here are a few things to double-check:

    • DNS Configuration: Make sure your private DNS zone is correctly set up so that your app always connects to the correct private IP regardless of region.
    • Connection Strings: When using failover groups, the failover process will automatically update the listener endpoint in your connection string to point to the new primary.
    • Manual Steps: If you're not using failover groups or if you're accessing the server by its actual name (not via the listener), you may need to manually adjust DNS or connection strings post-failover.

    Running a few tests can help confirm that your setup works as expected when switching regions.

    You can refer Documentation

    Q6. Failover Testing Best Practices: Testing is critical. Don’t wait for a real disaster to find out something’s not configured properly. Here are some practical tips:

    • Test Regularly: Schedule routine failover tests—both planned and unplanned—to catch issues early.
    • Monitor Everything: Use Azure Monitor and Log Analytics to keep tabs on performance and availability.
    • Automate Where Possible: The less you have to do manually during a failover, the better. Automate what you can.
    • Keep Documentation Updated: Make sure your team knows exactly what to do in a failover scenario. Keep your runbooks current.

    You can refer Documentation

    I hope this clarifies your all doubts!

    Please do not forget to click "Accept the Answer” and Yes wherever the information provided helps you, this can be beneficial to other community members. If you have any other questions or still running into more issues, let me know in the comments and I would be happy to help you.

    2 people found this answer helpful.

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.