Share via


Créer et gérer des réplicas en lecture à partir d’Azure CLI ou de l’API REST

S’APPLIQUE À : Azure Database pour PostgreSQL – Serveur unique versions

Important

Azure Database pour PostgreSQL - Serveur unique est en voie de mise hors service. Nous vous recommandons vivement de procéder à une mise à niveau vers un serveur flexible Azure Database pour PostgreSQL. Pour plus d’informations sur la migration vers le Serveur flexible Azure Database pour PostgreSQL, consultez l’article Qu’arrive-t-il au Serveur unique Azure Database pour PostgreSQL ?.

Dans cet article, vous allez apprendre à créer et à gérer des réplicas en lecture dans Azure Database pour PostgreSQL à partir d’Azure CLI et de l’API REST. Pour en savoir plus sur les réplicas en lecture, consultez vue d’ensemble.

Prise en charge de la réplication Azure

Les réplicas en lecture et le décodage logique dépendent du journal WAL de Postgres pour obtenir des informations. Ces deux fonctionnalités ont besoin de différents niveaux de journalisation à partir de Postgres. Le décodage logique nécessite un niveau de journalisation plus élevé que les réplicas en lecture.

Pour configurer le niveau de journalisation approprié, utilisez le paramètre de prise en charge de la réplication Azure. La prise en charge de la réplication Azure propose trois options de paramétrage :

  • Désactivé : place le moins d’informations dans le journal WAL. Ce paramètre n’est pas disponible sur la plupart des serveurs Azure Database pour PostgreSQL.
  • Réplica : plus de détails que l’option Désactivé. Il s’agit du niveau minimal de journalisation nécessaire pour que les réplicas en lecture fonctionnent. Il s’agit du paramètre par défaut sur la plupart des serveurs.
  • Logique : plus de détails que l’option Réplica. Il s’agit du niveau minimal de journalisation pour que le décodage logique fonctionne. Les réplicas en lecture fonctionnent également avec ce paramètre.

Notes

Lors du déploiement de réplicas de lecture pour des charges de travail principales gourmandes en écriture intenses persistantes, le retard de réplication peut continuer à s’allonger et ne jamais pouvoir se réaligner sur le principal. Cela peut également augmenter l’utilisation du stockage sur le serveur principal, car les fichiers WAL ne sont pas supprimés tant qu’ils ne sont pas reçus au niveau du réplica.

Azure CLI

Vous pouvez créer et gérer des réplicas en lecture à l’aide d’Azure CLI.

Prérequis

Préparer le serveur principal

  1. Vérifiez la valeur de azure.replication_support du serveur principal. Il doit s’agir au moins de RÉPLICA pour que les réplicas en lecture fonctionnent.

    az postgres server configuration show --resource-group myresourcegroup --server-name mydemoserver --name azure.replication_support
    
  2. Si la valeur de azure.replication_support n’est pas au moins RÉPLICA, définissez-la.

    az postgres server configuration set --resource-group myresourcegroup --server-name mydemoserver --name azure.replication_support --value REPLICA
    
  3. Redémarrez le serveur pour appliquer les modifications.

    az postgres server restart --name mydemoserver --resource-group myresourcegroup
    

Créer un réplica en lecture

La commande az postgres server replica create exige les paramètres suivants :

Paramètre Valeur d'exemple Description
resource-group myResourceGroup Groupe de ressources dans lequel le serveur réplica sera créé.
name mydemoserver-replica Nom du nouveau serveur réplica créé.
source-server mydemoserver Nom ou ID de ressource du serveur principal existant à partir duquel effectuer la réplication. Utilisez l’ID de ressource si vous souhaitez que le réplica et les groupes de ressources du serveur principal soient différents.

Dans l’exemple CLI ci-dessous, le réplica est créé dans la même région que le principal.

az postgres server replica create --name mydemoserver-replica --source-server mydemoserver --resource-group myresourcegroup

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 postgres server replica create --name mydemoserver-replica --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.

Si vous n’avez pas affecté au paramètre azure.replication_support la valeur REPLICA sur un serveur principal à usage général ou à mémoire optimisée, et que vous avez redémarré le serveur, vous recevez une erreur. Effectuez ces deux étapes avant de créer un réplica.

Important

Consultez la section de considérations relatives à la vue d’ensemble de réplica en lecture.

Avant de modifier un paramètre du serveur principal, remplacez la valeur du paramètre du réplica par une valeur supérieure ou égale. Vous garantissez ainsi l’alignement du réplica sur les changements apportés au serveur primaire.

Lister les réplicas

Vous pouvez afficher la liste des réplicas d’un serveur principal en utilisant la commande az postgres server replica list.

az postgres server replica list --server-name mydemoserver --resource-group myresourcegroup 

Arrêter la réplication vers un serveur réplica

Vous pouvez arrêter la réplication entre un serveur principal et un réplica en lecture à l’aide de la commande az postgres server replica stop.

Une fois que vous avez arrêté la réplication entre un serveur principal et un réplica en lecture, vous ne pouvez plus l’annuler. 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.

az postgres server replica stop --name mydemoserver-replica --resource-group myresourcegroup 

Supprimer un serveur principal ou réplica

Pour supprimer un serveur principal ou réplica, vous utilisez la commande az postgres server delete.

Quand vous supprimez un serveur principal, 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.

az postgres server delete --name myserver --resource-group myresourcegroup

API REST

Vous pouvez créer et gérer des réplicas en lecture à l’aide de l’API REST Azure.

Préparer le serveur principal

  1. Vérifiez la valeur de azure.replication_support du serveur principal. Il doit s’agir au moins de RÉPLICA pour que les réplicas en lecture fonctionnent.

    GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{masterServerName}/configurations/azure.replication_support?api-version=2017-12-01
    
  2. Si la valeur de azure.replication_support n’est pas au moins RÉPLICA, définissez-la.

    PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{masterServerName}/configurations/azure.replication_support?api-version=2017-12-01
    
    {
     "properties": {
     "value": "replica"
     }
    }
    
  3. Redémarrez le serveur pour appliquer les modifications.

    POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{masterServerName}/restart?api-version=2017-12-01
    

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.DBforPostgreSQL/servers/{replicaName}?api-version=2017-12-01
{
  "location": "southeastasia",
  "properties": {
    "createMode": "Replica",
    "sourceServerId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/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.

Si vous n’avez pas affecté au paramètre azure.replication_support la valeur REPLICA sur un serveur principal à usage général ou à mémoire optimisée, et que vous avez redémarré le serveur, vous recevez une erreur. Effectuez ces deux étapes avant de créer un réplica.

Le réplica doit être créé en utilisant les mêmes paramètres de calcul et de stockage que le serveur principal. Une fois le réplica créé, vous pouvez changer plusieurs paramètres indépendamment du serveur principal : génération de calcul, vCores, stockage et période de conservation de la sauvegarde. 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 principal, remplacez la valeur du paramètre du réplica par une valeur supérieure ou égale. Vous garantissez ainsi l’alignement du réplica sur les changements apportés au serveur primaire.

Lister les réplicas

Vous pouvez afficher la liste des réplicas d’un serveur principal à l’aide de l’API de liste de réplicas :

GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/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 principal 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 principal et un réplica en lecture, vous ne pouvez plus l’annuler. 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.DBforPostgreSQL/servers/{replicaServerName}?api-version=2017-12-01
{
  "properties": {
    "replicationRole":"None"  
   }
}

Supprimer un serveur principal ou réplica

Pour supprimer un serveur principal ou réplica, vous devez utiliser l’API de suppression :

Quand vous supprimez un serveur principal, 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.DBforPostgreSQL/servers/{serverName}?api-version=2017-12-01

Étapes suivantes