Cette page vous explique comment gérer les instances dupliquées avec accès en lecture. Ces opérations incluent la désactivation et l'activation de la réplication, la promotion d'une instance dupliquée, la configuration de la réplication parallèle et la vérification de l'état de réplication.
Pour en savoir plus sur le fonctionnement de la réplication, consultez la page Réplication dans Cloud SQL.
Cette page s'applique aux instances dupliquées d'une instance Cloud SQL. Pour configurer une instance Cloud SQL qui agira en tant qu'éditeur pour un abonné externe, consultez la section Configurer des instances dupliquées externes.
Désactiver la réplication
La réplication est activée par défaut au démarrage d'une instance dupliquée. Toutefois, vous avez la possibilité de désactiver la réplication, par exemple à des fins de débogage ou d'analyse de l'état d'une instance. Lorsque vous êtes prêt, vous pouvez la réactiver de façon explicite. La désactivation ou la réactivation de la réplication ne redémarre pas l'instance dupliquée.
La désactivation de la réplication n'arrête pas l'instance dupliquée. Celle-ci devient une instance avec accès en lecture seule qui ne réplique plus son instance maître. Les frais liés à l'instance continuent de vous être facturés. Sur l'instance dupliquée, vous pouvez réactiver la réplication, la supprimer, ou la promouvoir en instance autonome.
Pour désactiver la réplication, procédez comme suit :
Console
-
Dans Google Cloud Console, accédez à la page Instances Cloud SQL.
- Sélectionnez une instance dupliquée en cliquant sur son nom.
- Cliquez sur Désactiver la duplication dans la barre de boutons.
- Cliquez sur OK.
gcloud
gcloud sql instances patch REPLICA_NAME \ --no-enable-database-replication
REST v1
Pour exécuter cette commande cURL dans une invite de ligne de commande, vous devez obtenir un jeton d'accès à l'aide de la commande gcloud auth print-access-token. Vous pouvez également utiliser APIs Explorer sur la page dédiée à la méthode "instances.patch" pour envoyer la requête d'API REST.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- project-id : ID du projet
- replica-name : nom de l'instance dupliquée
Méthode HTTP et URL :
PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/replica-name
Corps JSON de la requête :
{ "settings": { "databaseReplicationEnabled": "False" } }
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
REST v1beta4
Pour exécuter cette commande cURL dans une invite de ligne de commande, vous devez obtenir un jeton d'accès à l'aide de la commande gcloud auth print-access-token. Vous pouvez également utiliser APIs Explorer sur la page dédiée à la méthode "instances.patch" pour envoyer la requête d'API REST.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- project-id : ID du projet
- replica-name : nom de l'instance dupliquée
Méthode HTTP et URL :
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/replica-name
Corps JSON de la requête :
{ "settings": { "databaseReplicationEnabled": "False" } }
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
Activer la réplication
Lorsqu'une instance dupliquée ne réplique aucune donnée pendant une longue période, il lui faut plus de temps pour rattraper l'instance maître. Dans ce cas, supprimez l'instance dupliquée et créez-en une autre.
Pour activer la réplication, procédez comme suit :
Console
-
Dans Google Cloud Console, accédez à la page Instances Cloud SQL.
- Sélectionnez une instance dupliquée en cliquant sur son nom.
- Cliquez sur Activer la duplication.
- Cliquez sur OK.
gcloud
gcloud sql instances patch REPLICA_NAME \ --enable-database-replication
REST v1
Pour exécuter cette commande cURL dans une invite de ligne de commande, vous devez obtenir un jeton d'accès à l'aide de la commande gcloud auth print-access-token. Vous pouvez également utiliser APIs Explorer sur la page dédiée à la méthode "instances.patch" pour envoyer la requête d'API REST.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- project-id : ID du projet
- replica-name : nom de l'instance dupliquée
Méthode HTTP et URL :
PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/replica-name
Corps JSON de la requête :
{ "settings": { "databaseReplicationEnabled": "True" } }
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
REST v1beta4
Pour exécuter cette commande cURL dans une invite de ligne de commande, vous devez obtenir un jeton d'accès à l'aide de la commande gcloud auth print-access-token. Vous pouvez également utiliser APIs Explorer sur la page dédiée à la méthode "instances.patch" pour envoyer la requête d'API REST.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- project-id : ID du projet
- replica-name : nom de l'instance dupliquée
Méthode HTTP et URL :
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/replica-name
Corps JSON de la requête :
{ "settings": { "databaseReplicationEnabled": "True" } }
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
Promouvoir une instance dupliquée
La promotion d'une instance dupliquée avec accès en lecture entraîne l'arrêt de la réplication et la transformation de l'instance en instance principale Cloud SQL autonome avec accès en lecture et écriture.
Lorsque elles sont promues, les instances dupliquées avec accès en lecture sont automatiquement configurées avec des sauvegardes, mais elles ne sont pas configurées en tant qu'instances à haute disponibilité. Vous pouvez activer la haute disponibilité après leur promotion, comme vous le feriez avec n'importe quelle instance non dupliquée. La configuration d'une instance dupliquée avec accès en lecture pour la haute disponibilité s'effectue de la même manière que pour une instance principale. Découvrez comment configurer l'instance pour la haute disponibilité.
Si l'instance principale est toujours disponible et traite les requêtes des clients, vous devez effectuer les opérations suivantes avant de promouvoir une instance dupliquée avec accès en lecture :
- Arrêtez toutes les opérations en écriture sur l'instance principale.
- Vérifiez l'état de duplication de l'instance dupliquée. Pour ce faire, vous pouvez utiliser le tableau de bord de groupe de disponibilité permanente Always On dans SQL Server Management Studio (SSMS).
- Assurez-vous que l'instance dupliquée est en cours de réplication, puis vérifiez le délai de réplication, par exemple celui indiqué par la métrique
seconds_behind_master
.
Sinon, il est possible que certaines des transactions validées sur l'instance principale soient manquantes dans l'instance nouvellement promue.
Pour promouvoir une instance dupliquée en instance autonome, procédez comme suit :
Console
-
Dans Google Cloud Console, accédez à la page Instances Cloud SQL.
- Sélectionnez une instance dupliquée en cliquant sur son nom.
- Cliquez sur Promouvoir une instance dupliquée.
- Cliquez sur OK.
gcloud
gcloud sql instances promote-replica REPLICA_NAME
REST v1
Pour exécuter cette commande cURL dans une invite de ligne de commande, vous devez obtenir un jeton d'accès à l'aide de la commande gcloud auth print-access-token. Vous pouvez également utiliser APIs Explorer sur la page dédiée à la méthode "instances.promoteReplica" pour envoyer la requête d'API REST.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- project-id : ID du projet
- replica-name : nom de l'instance dupliquée
Méthode HTTP et URL :
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/replica-name/promoteReplica
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
REST v1beta4
Pour exécuter cette commande cURL dans une invite de ligne de commande, vous devez obtenir un jeton d'accès à l'aide de la commande gcloud auth print-access-token. Vous pouvez également utiliser APIs Explorer sur la page dédiée à la méthode "instances.promoteReplica" pour envoyer la requête d'API REST.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- project-id : ID du projet
- replica-name : nom de l'instance dupliquée
Méthode HTTP et URL :
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/replica-name/promoteReplica
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
Vérifiez que l'instance promue est configurée correctement. Envisagez en particulier de configurer la haute disponibilité de l'instance si nécessaire.
Vérifier l'état de la duplication
Actuellement, vous devez utiliser des requêtes T-SQL ou SSMS pour surveiller l'état de la réplication. Pour en savoir plus, consultez les ressources suivantes :- Outils permettant de surveiller les groupes de disponibilité Always On
- Utiliser le tableau de bord du groupe de disponibilité Always On
Résoudre les problèmes
Problème | Dépannage |
---|---|
L'instance répliquée avec accès en lecture n'a pas commencé à se répliquer lors de la création. | Les fichiers journaux indiquent probablement une erreur plus spécifique. Inspectez les journaux dans Cloud Logging pour rechercher l'erreur en question. |
Impossible de créer l'instance dupliquée avec accès en lecture : erreur invalidFlagValue. | L'un des indicateurs de la requête n'est pas valide. Il peut s'agir d'une option que vous avez explicitement définie ou d'une option définie sur une valeur par défaut.
Tout d'abord, vérifiez que la valeur de l'option Si l'option |
Impossible de créer l'instance dupliquée avec accès en lecture : erreur inconnue. | Les fichiers journaux indiquent probablement une erreur plus spécifique.
Inspectez les journaux dans Cloud Logging pour rechercher l'erreur en question.
Si l'erreur est : |
Le disque est saturé. | Le disque de l'instance principale peut arriver à saturation lors de la création de l'instance dupliquée. Modifiez l'instance principale en augmentant la taille du disque. |
L'instance dupliquée utilise trop de mémoire. | L'instance dupliquée met en cache les opérations de lecture souvent demandées dans une mémoire temporaire, ce qui peut l'amener à utiliser plus de mémoire que l'instance principale.
Redémarrez l'instance dupliquée afin de récupérer l'espace de mémoire temporaire. |
La duplication s'est arrêtée. | La limite de stockage maximale a été atteinte et l'augmentation automatique de l'espace de stockage n'est pas activée.
Modifiez l'instance pour activer |
Le délai de duplication est systématiquement long. | La charge d'écriture est trop élevée pour que l'instance dupliquée puisse la traiter. Le délai de duplication s'allonge lorsque le thread SQL d'une instance dupliquée ne parvient pas à suivre le thread d'E/S. Certains types de requêtes ou de charges de travail peuvent allonger le délai de duplication de manière temporaire ou permanente pour un schéma donné. Voici quelques causes typiques affectant le délai de duplication :
Voici quelques solutions possibles :
|
La création d'une instance dupliquée échoue avec un délai d'expiration. | Les transactions non validées de longue durée sur l'instance principale peuvent entraîner l'échec de la création d'une instance dupliquée avec accès en lecture.
Recréez l'instance dupliquée après avoir arrêté toutes les requêtes en cours d'exécution. |
Étape suivante
- Apprenez à créer une instance dupliquée avec accès en lecture.
- Découvrez les prérequis et les bonnes pratiques qui s'appliquent à la réplication.