Azure Documentation

Implementing High Availability for Azure Database for MySQL

This tutorial guides you through setting up and managing high availability (HA) for your Azure Database for MySQL instances. Ensuring your database remains accessible even during disruptions is critical for business continuity.

Understanding High Availability in Azure MySQL

Azure Database for MySQL offers different HA configurations to meet your resilience needs. The default configuration for Flexible Server provides automatic failover capabilities. Let's explore how to leverage this.

Prerequisites

  • An Azure subscription.
  • An existing Azure Database for MySQL Flexible Server instance. If you don't have one, follow the Create Server tutorial.
  • Sufficient permissions to manage Azure resources.

Configuring Zone-Redundant HA (Flexible Server)

For enhanced availability across different Azure availability zones, Azure Database for MySQL Flexible Server offers zone-redundant HA. This configuration replicates your data synchronously to a standby replica in a different zone, ensuring minimal downtime during zone failures.

Note: Zone-redundant HA is a feature of Azure Database for MySQL Flexible Server. Single Server deployments have different HA mechanisms.
1

Navigate to your Flexible Server Instance

In the Azure portal, search for and select your Azure Database for MySQL Flexible Server instance.

2

Access High Availability Settings

In the server menu, under Settings, click on High availability.

3

Enable Zone-Redundant HA

Under the High availability section, you will see an option to configure HA. Select Zone-redundant HA. You can choose the Availability zone for your standby replica. Azure recommends selecting a different zone than your primary server for optimal resilience.

Click Save to apply the configuration.

4

Monitor Provisioning

Azure will begin provisioning the standby replica and configuring replication. This process can take several minutes. You can monitor the status in the Notifications pane or on the High availability page.

Understanding Automatic Failover

Once zone-redundant HA is configured, Azure automatically manages failover. If the primary server or its availability zone becomes unavailable, Azure will automatically initiate a failover to the standby replica. This process is designed to be quick, minimizing application downtime.

Important: While failover is automatic, applications connecting to the database should be designed to handle temporary connection interruptions. Implement retry logic in your application to gracefully reconnect after a failover.

Testing High Availability

It's crucial to test your HA setup to ensure it performs as expected. You can simulate a failover scenario by restarting the primary server or by temporarily disabling network access to the primary zone (if feasible in a testing environment).

1

Simulate Failover

On the High availability page, you will find an option to Simulate failover. Click this button to initiate a manual failover test.

2

Monitor Failover Process

Observe the failover process in the Azure portal. Your applications should experience a brief interruption during the failover.

3

Verify Connectivity

After the failover is complete, verify that your applications can connect to the database server. The server name (connection string) remains the same.

Managing HA Configurations

You can disable HA or change the HA mode at any time through the High availability settings in the Azure portal.

Note: Disabling HA will remove the standby replica and may result in a brief period of unavailability for the primary server during the reconfiguration.

Conclusion

Implementing high availability for your Azure Database for MySQL Flexible Server is a straightforward process that significantly enhances the resilience of your database workloads. By configuring zone-redundant HA and understanding the automatic failover process, you can ensure your applications remain available and your data is protected.

Continue exploring other Azure MySQL features in our tutorials section.