Cette page décrit l'ancienne configuration d'une instance MySQL pour la haute disponibilité (HA).
Dans une ancienne configuration de la haute disponibilité, une instance Cloud SQL pour MySQL utilise une instance dupliquée de basculement pour ajouter la haute disponibilité à l'instance. Cette fonctionnalité n'est pas disponible dans la console Google Cloud. La configuration recommandée n'utilise pas ces instances dupliquées de basculement. mais les disques persistants régionaux de Google, qui répliquent les données au niveau du bloc de manière synchrone entre deux zones d'une région.
Pour plus d'informations sur la configuration actuelle de haute disponibilité, consultez la section Présentation de la configuration de la haute disponibilité.
Mettre à jour l'ancienne version de haute disponibilité d'une instance vers la version actuelle
Pour mettre à jour votre instance de l'ancienne configuration vers la nouvelle configuration de haute disponibilité, procédez comme suit :
- Supprimez l'instance dupliquée de basculement sur les instances MySQL que vous souhaitez mettre à jour. Pour en savoir plus, consultez Désactiver la haute disponibilité sur une instance.
- Configurez l'instance pour utiliser la version actuelle de la haute disponibilité. Pour en savoir plus, consultez Configurer la haute disponibilité d'une instance existante.
Ancienne configuration : Créer une instance configurée pour la haute disponibilité
Lorsque vous créez une instance, vous pouvez la configurer pour la haute disponibilité. Cloud SQL crée l'instance dupliquée de basculement en même temps que l'instance principale. L'ancienne fonctionnalité n'est pas disponible dans la console Google Cloud. À la place, utilisez les commandes gcloud CLI ou cURL.
Pour créer une instance configurée pour la haute disponibilité, procédez comme suit :
gcloud
- Créez l'instance principale et son instance dupliquée de basculement comme suit :
gcloud sql instances create PRIMARY_INSTANCE_NAME \ --backup-start-time=BACKUP_WINDOW_START_TIME \ --failover-replica-name=FAILOVER_REPLICA_NAME \ --cpu=CPU \ --database-version=DATABASE_VERSION \ --memory=MEMORY \ --enable-bin-log
L'heure de début de l'intervalle de sauvegarde est au format
HH:MM
.Veillez à remplacer l'espace réservé DATABASE_VERSION par MySQL 5.6 ou MySQL 5.7 (
--database-version=MYSQL_5_6
ou
--database-version=MYSQL_5_7
).Si vous ne spécifiez pas de version pour le paramètre
database-version
, MySQL 8.0 est sélectionné par défaut. L'ancienne configuration de la haute disponibilité pour MySQL n'est pas compatible avec la version 8.0.Pour obtenir la liste complète des paramètres disponibles, consultez la page de référence Créer des instances gcloud sql.
- Configurez l'utilisateur racine sur l'instance principale :
gcloud sql users set-password root --host=% \ --instance PRIMARY_INSTANCE_NAME \ --password PASSWORD
L'instance dupliquée de basculement est créée avec le même processeur et la même quantité de mémoire que l'instance principale. Vous pouvez modifier le processeur et la quantité de mémoire de l'instance dupliquée de basculement ultérieurement, mais sa taille doit être au moins égale à celle de l'instance principale.
curl
- Créez l'instance principale et son instance dupliquée de basculement comme suit :
Pour obtenir la liste complète des paramètres pour cette requête, consultez la page instances:insert.gcloud auth login ACCESS_TOKEN="$(gcloud auth print-access-token)" curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \ --header 'Content-Type: application/json' \ --data '{"name":"PRIMARY_INSTANCE_NAME", "region":"REGION", "settings": { "tier":"MACHINE_TYPE", "backupConfiguration": {"binaryLogEnabled": true, "enabled": true}}, "failoverReplica": {"name": "FAILOVER_REPLICA_NAME"}}' \ -X POST \ https://www.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances
- Une fois l'instance principale initialisée, mettez à jour son mot de passe racine comme suit :
Cette modification est automatiquement appliquée à l'instance dupliquée.gcloud auth login ACCESS_TOKEN="$(gcloud auth print-access-token)" curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \ --header 'Content-Type: application/json' \ --data '{"name": "root", "host": "%", "password": "ROOT_PASSWORD"}' \ 'https://www.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/INSTANCE_NAME/users?host=%25&name=root'
Ancienne configuration : Configurer la haute disponibilité d'une instance existante
La configuration de la haute disponibilité pour une instance existante provoque quelques minutes d'indisponibilité pendant la reconfiguration.
Pour configurer la haute disponibilité pour une instance existante, procédez comme suit :
gcloud
- Vérifiez l'état de l'instance principale :
gcloud sql instances describe PRIMARY_INSTANCE_NAME
Si la propriété
databaseReplicationEnabled
est définie surtrue
, l'instance est dupliquée. Notez que vous ne pouvez pas créer d'instance dupliquée de basculement pour une instance dupliquée. - Si la propriété
enabled
sousbackupConfiguration
est définie surfalse
, activez maintenant les sauvegardes pour l'instance principale :gcloud sql instances patch PRIMARY_INSTANCE_NAME \ --backup-start-time HH:MM
Le paramètre
backup-start-time
est indiqué au format 24 heures dans le fuseau horaire UTC±00 et spécifie le début d'un intervalle de sauvegarde de quatre heures. Les sauvegardes peuvent commencer à tout moment pendant l'intervalle de sauvegarde. - Si la propriété
binaryLogEnabled
est définie surfalse
, activez les journaux binaires :gcloud sql instances patch PRIMARY_INSTANCE_NAME \ --enable-bin-log
L'activation des journaux binaires entraîne le redémarrage de l'instance.
- Créez l'instance dupliquée :
gcloud sql instances create FAILOVER_REPLICA_NAME \ --master-instance-name=PRIMARY_INSTANCE_NAME \ --replica-type=FAILOVER
curl
- Vérifiez l'état de l'instance principale :
gcloud auth login ACCESS_TOKEN="$(gcloud auth print-access-token)" curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \ -X GET \ https://www.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/PRIMARY_INSTANCE_NAME?fields=settings
La sortie contient la valeur
backupConfiguration
, par exemple :"backupConfiguration": { "kind": "sql#backupConfiguration", "startTime": "12:00", "enabled": true, "binaryLogEnabled": true }
- Si l'élément
enabled
oubinaryLogEnabled
est défini surfalse
, utilisez la méthodepatch
de la ressource des instances pour les activer tous les deux. Spécifiez les propriétés de la configuration de sauvegarde que vous souhaitez conserver telles quelles et celles que vous souhaitez modifier.Pour activer les sauvegardes, définissez
enabled
surtrue
etstartTime
sur une valeur correspondant au début de l'intervalle de sauvegarde. Pour activer la journalisation binaire, définissezbinaryLogEnabled
surtrue
.gcloud auth login ACCESS_TOKEN="$(gcloud auth print-access-token)" curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \ --header 'Content-Type: application/json' \ --data '{"settings" : {"backupConfiguration" : {"startTime": "HH:MM", "enabled": true, "binaryLogEnabled": true}}}' \ -X PATCH \ https://www.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/PRIMARY_INSTANCE_NAME/
-
Utilisez la méthode
insert
de la ressource d'instances pour créer l'instance dupliquée de basculement.gcloud auth login ACCESS_TOKEN="$(gcloud auth print-access-token)" curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \ --header 'Content-Type: application/json' \ --data '{"name": "REPLICA_NAME", "masterInstanceName": "PRIMARY_INSTANCE_NAME", "region": "PRIMARY_IMSTANCE_REGION", "databaseVersion": "PRIMARY_DATABASE_VERSION", "replicaConfiguration": {"failoverTarget": true}, "settings": {"tier":"MACHINE_TYPE"}}' \ -X POST \ https://www.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances
MACHINE_TYPE
doit être d'une taille au moins égale au type de machine de l'instance principale.
Lancer le basculement
Tester le basculement est facultatif, mais il est recommandé de comprendre comment votre application répond en cas de basculement.
Pour en savoir plus sur les basculements, consultez la présentation du basculement.
gcloud
Initiez le basculement comme suit :
gcloud sql instances failover PRIMARY_INSTANCE_NAME
curl
- Décrivez l'instance primaire pour obtenir la valeur du champ
settingsVersion
.gcloud auth login ACCESS_TOKEN="$(gcloud auth print-access-token)" curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \ -X GET \ https://www.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/PRIMARY_INSTANCE_NAME
- Initiez le basculement comme suit :
gcloud auth login ACCESS_TOKEN="$(gcloud auth print-access-token)" curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \ --header 'Content-Type: application/json' \ --data '{"failoverContext":{"settingsVersion":"SETTINGS_VERSION"}}' \ -X POST \ https://www.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/PRIMARY_INSTANCE_NAME/failover
Lors de ce processus de quelques minutes, l'instance n'est plus disponible.
Ancienne configuration : Créer une alerte pour le délai de duplication
Le temps requis pour une opération de basculement dépend du délai de réplication lorsque le basculement est initié. Vous pouvez utiliser Cloud Monitoring dans la console Google Cloud pour vous avertir lorsque le délai de duplication dépasse un certain seuil.
Pour plus d'informations sur le délai de duplication, recherchez "seconds_behind_master" sur la page Syntaxe SHOW SLAVE STATUS de la documentation MySQL.
Pour en savoir plus sur Cloud Monitoring, consultez la documentation Cloud Monitoring.
Ancienne configuration : Définir une alerte pour une instance dupliquée de basculement spécifique
- Dans le panneau de navigation de la console Google Cloud, sélectionnez Monitoring, puis Alertes.
- Cliquez sur Créer une règle d'alerte.
- Saisissez un nom descriptif pour votre alerte.
- Sélectionnez Seuil de métriques et cliquez sur Suivant pour ouvrir l'onglet "Cible".
- Pour Type de ressource, sélectionnez Cloud SQL.
- Pour S'applique à, sélectionnez Unique, puis sélectionnez votre instance dupliquée de basculement.
- Cliquez sur Suivant pour ouvrir l'onglet "Configuration".
Saisissez les valeurs suivantes :
Champ Valeur Si métrique Secondes de retard sur le maître Condition au-dessus Seuils 120 (ou toute valeur appropriée pour votre environnement) Durée 3 minutes Sélectionnez les méthodes de notification souhaitées, puis cliquez sur Enregistrer la condition.
Ancienne configuration : Définir une alerte pour un groupe d'instances dupliquées de basculement
Si vous prévoyez de créer plusieurs instances dupliquées de basculement dans le même projet, il sera plus facile de définir l'alerte pour l'ensemble du groupe plutôt que sur chaque instance dupliquée de basculement individuellement. Pour créer un groupe à surveiller, utilisez un suffixe pour les noms d'instances dupliquées de basculement, tel que "-basculement". Assurez-vous de ne pas utiliser ce suffixe pour d'autres types d'instances Cloud SQL.
Créez votre groupe d'instances de basculement comme suit :
-
Dans Google Cloud Console, accédez à la page Monitoring.
- Dans la barre de menu supérieure, sélectionnez Groupes > Créer.
- Entrez un nom descriptif pour votre groupe.
- Gardez la sélection Nom et Contient et saisissez le nom de la sous-chaîne.
- Cliquez sur Enregistrer le groupe. La page récapitulative du nouveau groupe s'ouvre.
- Confirmez l'inclusion des instances attendues dans le groupe.
Créez l'alerte pour le groupe d'instances dupliquées de basculement comme suit :
- Dans le panneau de navigation de la console Google Cloud, sélectionnez Monitoring, puis Alertes.
- Cliquez sur Créer une règle d'alerte.
- Saisissez un nom descriptif pour votre alerte de groupe.
- Sélectionnez Seuil de métriques et cliquez sur Suivant pour ouvrir l'onglet "Cible".
- Pour Type de ressource, sélectionnez Cloud SQL.
- Pour S'applique à, sélectionnez Groupe, puis sélectionnez votre groupe de basculement.
- Gardez la sélection Non-respect de la stratégie par un des membres et cliquez sur Suivant pour ouvrir l'onglet "Configuration".
Saisissez les valeurs suivantes :
Champ Valeur Si métrique Secondes de retard sur le maître Condition au-dessus Seuils 120 (ou toute valeur appropriée pour votre environnement) Durée 3 minutes Sélectionnez les méthodes de notification souhaitées, puis cliquez sur Enregistrer la condition.
Ancienne configuration : Désactiver la haute disponibilité sur une instance
Vous devez supprimer l'instance dupliquée de basculement pour désactiver la haute disponibilité de l'instance principale.
Avant de suivre cette procédure, assurez-vous qu'aucune opération n'est en cours d'exécution sur l'instance principale.
Pour désactiver la haute disponibilité, procédez comme suit :
Console
-
Dans Google Cloud Console, accédez à la page Instances Cloud SQL.
- Sélectionnez l'instance de basculement associée à l'instance pour laquelle vous souhaitez désactiver la haute disponibilité.
- Sur la page des Détails de l'instance, cliquez sur Supprimer.
- Dans la fenêtre Supprimer l'instance dupliquée, retapez le nom de l'instance de basculement.
- Cliquez sur Supprimer. La configuration de l'instance d'origine devient zonale.
gcloud
Pour plus d'informations, consultez la page surgcloud sql instances delete
.gcloud sql instances delete FAILOVER_REPLICA_NAME
curl
La requête suivante exécute la méthodeinstances:delete
pour supprimer l'instance.gcloud auth login ACCESS_TOKEN="$(gcloud auth print-access-token)" curl --header "Authorization: Bearer ${ACCESS_TOKEN}" \ --header 'Content-Type: application/json'\ -X DELETE\ https://www.googleapis.com/sql/v1beta4/projects/PROJECT-ID/instances/INSTANCE_NAME
Étape suivante
- Apprenez-en davantage sur le fonctionnement de la configuration de la haute disponibilité.
- Testez la réponse d'une application aux pertes de connexion en redémarrant l'instance.
- Apprenez-en davantage sur la gestion des connexions de base de données.
- Obtenez davantage d'informations sur Cloud Monitoring.
- Créez des instances dupliquées avec accès en lecture pour votre instance.