Comment créer et gérer des réplicas en lecture dans Azure Database pour MySQL à l’aide d’Azure CLI et de l’API REST
S’APPLIQUE À : Azure Database pour MySQL – Serveur unique
Important
Le serveur unique Azure Database pour MySQL est en voie de mise hors service. Nous vous conseillons vivement de procéder à une mise à niveau vers Azure Database pour MySQL – Serveur flexible. Pour obtenir plus d’informations sur la migration vers Azure Database pour MySQL – Serveur flexible, consultez Qu’en est-il du Serveur unique Azure Database pour MySQL ?
Dans cet article, vous allez apprendre à créer et à gérer des réplicas en lecture dans le service Azure Database pour MySQL à l’aide d’Azure CLI et de l’API REST. Pour en savoir plus sur les réplicas en lecture, consultez vue d’ensemble.
Azure CLI
Vous pouvez créer et gérer des réplicas en lecture à l’aide d’Azure CLI.
Prérequis
- Installation d’Azure CLI 2.0
- Un serveur Azure Database pour MySQL qui sera utilisé comme serveur source.
Important
La fonctionnalité de réplica en lecture est disponible uniquement pour les serveurs Azure Database pour MySQL dans les niveaux tarifaires Usage général ou Mémoire optimisée. Vérifiez que le serveur source se trouve dans l’un de ces niveaux tarifaires.
Créer un réplica en lecture
Important
Si votre serveur source n’a pas de serveurs de réplication existants, le serveur source peut nécessiter un redémarrage pour se préparer à la réplication en fonction du stockage utilisé (v1/v2). Veuillez envisager le redémarrage du serveur et effectuer cette opération pendant les heures creuses. Pour plus d’informations, consultez Redémarrage du Serveur Source.
Si le GTID est activé sur un serveur primaire (gtid_mode
= ON), il sera également activé sur les réplicas nouvellement créés, et ceux-ci utiliseront la réplication basée sur GTID. Pour en savoir plus, reportez-vous à Identificateur de transaction global (GTID)
Un serveur réplica en lecture peut être créé en utilisant la commande suivante :
az mysql server replica create --name mydemoreplicaserver --source-server mydemoserver --resource-group myresourcegroup
La commande az mysql server replica create
requiert les paramètres suivants :
Paramètre | Exemple de valeur | Description |
---|---|---|
resource-group | myResourceGroup | Groupe de ressources dans lequel le serveur réplica sera créé. |
name | mydemoreplicaserver | Nom du nouveau serveur réplica créé. |
source-server | mydemoserver | Nom ou ID du serveur source à partir duquel la réplication doit être effectuée. |
Pour créer un réplica en lecture entre régions, utilisez le paramètre --location
. L’exemple CLI ci-dessous crée le réplica dans la région USA Ouest.
az mysql server replica create --name mydemoreplicaserver --source-server mydemoserver --resource-group myresourcegroup --location westus
Notes
Pour en savoir plus sur les régions dans lesquelles vous pouvez créer un réplica, consultez l’article Concepts relatifs aux réplicas en lecture.
Notes
- La commande
az mysql server replica create
possède un argument--sku-name
qui vous permet de spécifier le niveau tarifaire ({pricing_tier}_{compute generation}_{vCores}
) lorsque vous créez un réplica à l’aide d’Azure CLI. - Le serveur primaire et le réplica en lecture doivent avoir le même niveau tarifaire (Usage général ou À mémoire optimisée).
- La configuration du serveur réplica peut également être modifiée après sa création. Il est recommandé de maintenir la configuration du serveur réplica à des valeurs égales ou supérieures à celles du serveur source pour garantir que le réplica sera à la hauteur du serveur maître.
Répertorier les réplicas d'un serveur source
Pour afficher tous les réplicas d'un serveur source donné, exécutez la commande suivante :
az mysql server replica list --server-name mydemoserver --resource-group myresourcegroup
La commande az mysql server replica list
requiert les paramètres suivants :
Paramètre | Exemple de valeur | Description |
---|---|---|
resource-group | myResourceGroup | Groupe de ressources dans lequel le serveur réplica sera créé. |
server-name | mydemoserver | Nom ou ID du serveur source. |
Arrêter la réplication vers un serveur réplica
Important
L’arrêt de la réplication vers un serveur est irréversible. Une fois la réplication entre un serveur source et un serveur réplica arrêtée, il est impossible de revenir en arrière. Le serveur réplica devient un serveur autonome et prend désormais en charge la lecture et les écritures. Ce serveur ne peut pas être à nouveau transformé en réplica.
La réplication d'un serveur réplica en lecture peut être arrêtée en utilisant la commande suivante :
az mysql server replica stop --name mydemoreplicaserver --resource-group myresourcegroup
La commande az mysql server replica stop
requiert les paramètres suivants :
Paramètre | Exemple de valeur | Description |
---|---|---|
resource-group | myResourceGroup | Groupe de ressources où se trouve le serveur réplica. |
name | mydemoreplicaserver | Nom du serveur réplica pour lequel arrêter la réplication. |
Supprimer un serveur réplica
La suppression d’un serveur réplica en lecture peut être effectuée en exécutant la commande az mysql server delete .
az mysql server delete --resource-group myresourcegroup --name mydemoreplicaserver
Supprimer un serveur source
Important
La suppression d’un serveur source arrête la réplication vers tous les serveurs réplicas et supprime le serveur source proprement dit. Les serveurs réplicas deviennent des serveurs autonomes qui prennent désormais en charge la lecture et les écritures.
Pour supprimer un serveur source, vous pouvez exécuter la commande az mysql server delete .
az mysql server delete --resource-group myresourcegroup --name mydemoserver
API REST
Vous pouvez créer et gérer des réplicas en lecture à l’aide de l’API REST Azure.
Créer un réplica en lecture
Vous pouvez créer un réplica en lecture à l’aide de l’API de création :
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{replicaName}?api-version=2017-12-01
{
"location": "southeastasia",
"properties": {
"createMode": "Replica",
"sourceServerId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{masterServerName}"
}
}
Notes
Pour en savoir plus sur les régions dans lesquelles vous pouvez créer un réplica, consultez l’article Concepts relatifs aux réplicas en lecture.
Le réplica doit être créé en utilisant les mêmes paramètres de calcul et de stockage que le serveur maître. Une fois le réplica créé, vous pouvez changer plusieurs paramètres indépendamment du serveur source : génération de calcul, vCores, stockage et durée de conservation des sauvegardes. Le niveau tarifaire peut également être changé indépendamment, sauf vers ou depuis le niveau De base.
Important
Avant de modifier un paramètre du serveur source, remplacez la valeur du paramètre du réplica par une valeur supérieure ou égale à celle du serveur maître. Vous garantissez ainsi l’alignement du réplica sur les changements apportés au serveur maître.
Lister les réplicas
Vous pouvez afficher la liste des réplicas d'un serveur source à l'aide de l'API Lister les réplicas :
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{masterServerName}/Replicas?api-version=2017-12-01
Arrêter la réplication vers un serveur réplica
Vous pouvez arrêter la réplication entre un serveur source et un réplica en lecture à l'aide de l'API de mise à jour.
Une fois que vous avez arrêté la réplication entre un serveur source et un réplica en lecture, vous ne pouvez pas revenir en arrière. Le réplica en lecture devient un serveur autonome qui prend en charge les lectures et les écritures. Le serveur autonome ne peut pas être retransformé en réplica.
PATCH https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{masterServerName}?api-version=2017-12-01
{
"properties": {
"replicationRole":"None"
}
}
Supprimer un serveur source ou réplica
Pour supprimer un serveur source ou réplica, vous devez utiliser l'API de suppression :
Lorsque vous supprimez un serveur source, la réplication est arrêtée sur tous les réplicas en lecture. Les réplicas en lecture deviennent des serveurs autonomes qui prennent désormais en charge les lectures et les écritures.
DELETE https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{serverName}?api-version=2017-12-01
Problème connu
Il existe deux générations de stockage que les serveurs des niveaux Usage général et À mémoire optimisée utilisent : le stockage Usage général v1 (prend en charge jusqu’à 4 To) et le stockage Usage général v2 (prend en charge jusqu’à 16 To). Le serveur source et le serveur réplica doivent avoir le même type de stockage. Le stockage Usage général v2 n’étant pas disponible dans toutes les régions, veillez à choisir la région de réplica appropriée lorsque vous utilisez l’emplacement avec l’interface CLI ou l’API REST pour la création de réplica en lecture. Pour savoir comment identifier le type de stockage de votre serveur source, consultez le lien Comment puis-je déterminer le type de stockage sur lequel mon serveur s’exécute ?
Si vous choisissez une région dans laquelle vous ne pouvez pas créer de réplica en lecture pour votre serveur source, vous rencontrerez le problème suivant : le déploiement continuera à s’exécuter comme indiqué dans la figure ci-dessous, puis expirera avec l’erreur « L’opération d’approvisionnement en ressources ne s’est pas terminée dans le délai imparti » .
az mysql server replica create -n <replica-servername> -g <resource group> --location <replica-region> -s <source-servername>
/ Running . .
Étapes suivantes
- Découvrir plus en détail les réplicas en lecture