Configure a failover group for a group of databases in Azure SQL Database using the Azure CLI
Applies to: Azure SQL Database
If you don't have an Azure trail subscription, create a trial subscription before you begin.
Prerequisites
If you prefer to run CLI reference commands locally, install the Azure CLI. If you're running on Windows or macOS, consider running Azure CLI in a Docker container. For more information, see How to run the Azure CLI in a Docker container.
If you're using a local installation, sign in to the Azure CLI by using the az login command. To finish the authentication process, follow the steps displayed in your terminal. For other sign-in options, see Sign in with the Azure CLI.
When you're prompted, install the Azure CLI extension on first use. For more information about extensions, see Use extensions with the Azure CLI.
Run az version to find the version and dependent libraries that are installed. To upgrade to the latest version, run az upgrade.
Sample script
Sign in to Azure
Use the following script to sign in using a different subscription, replacing <Subscription ID>
with your Azure Subscription ID. If you don't have an Azure trail subscription, create a trial subscription before you begin.
subscription="<subscriptionId>" # add subscription here
az account set -s $subscription # ...or use 'az login'
For more information, see set active subscription or log in interactively.
Run the script
# Configure a failover group for a group of databases in Azure SQL Database
# Variable block
let "randomIdentifier=$RANDOM*$RANDOM"
location="China East 2"
resourceGroup="msdocs-azuresql-rg-$randomIdentifier"
tag="setup-geodr-and-failover-database-failover-group"
server="msdocs-azuresql-server-$randomIdentifier"
database="msdocsazuresqldb$randomIdentifier"
login="azureuser"
password="Pa$$w0rD-$randomIdentifier"
failoverGroup="msdocs-azuresql-failover-group-$randomIdentifier"
failoverLocation="China North 2"
failoverResourceGroup="msdocs-azuresql-failover-rg-$randomIdentifier"
secondaryServer="msdocs-azuresql-secondary-server-$randomIdentifier"
echo "Using resource groups $resourceGroup and $failoverResourceGroup with login: $login, password: $password..."
echo "Creating $resourceGroup in $Location and $failoverResourceGroup in $failoverLocation..."
az group create --name $resourceGroup --location "$location" --tags $tag
az group create --name $failoverResourceGroup --location "$failoverLocation"
echo "Creating $server in $location and $secondaryServer in $failoverLocation..."
az sql server create --name $server --resource-group $resourceGroup --location "$location" --admin-user $login --admin-password $password
az sql server create --name $secondaryServer --resource-group $failoverResourceGroup --location "$failoverLocation" --admin-user $login --admin-password $password
echo "Creating $database..."
az sql db create --name $database --resource-group $resourceGroup --server $server --service-objective S0
echo "Creating failover group $failoverGroup..."
az sql failover-group create --name $failoverGroup --partner-server $secondaryServer --resource-group $resourceGroup --server $server --partner-resource-group $failoverResourceGroup
echo "Initiating failover..."
az sql failover-group set-primary --name $failoverGroup --resource-group $failoverResourceGroup --server $secondaryServer
echo "Monitoring failover..."
az sql failover-group show --name $failoverGroup --resource-group $resourceGroup --server $server
echo "Removing replication on $database..."
az sql failover-group delete --name $failoverGroup --resource-group $failoverResourceGroup --server $secondaryServer
Clean up resources
Use the following command to remove the resource group and all resources associated with it using the az group delete command - unless you have an ongoing need for these resources. Some of these resources may take a while to create, as well as to delete.
az group delete --name $failoverResourceGroup -y
az group delete --name $resourceGroup
Sample reference
This script uses the following commands. Each command in the table links to command specific documentation.
Command | Description |
---|---|
az sql failover-group create | Creates a failover group. |
az sql failover-group set-primary | Set the primary of the failover group by failing over all databases from the current primary server |
az sql failover-group show | Gets a failover group |
az sql failover-group delete | Deletes a failover group |
Next steps
For more information on Azure CLI, see Azure CLI documentation.
Additional SQL Database CLI script samples can be found in the Azure SQL Database documentation.