Ancienne configuration de haute disponibilité

Cette page décrit l'ancienne configuration d'une instance MySQL pour la haute disponibilité. Dans le cadre de l'ancienne configuration, lorsqu'une instance subit un basculement, elle utilise une instance dupliquée de basculement (failover replica). La nouvelle configuration 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é.

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 Cloud Console. À la place, utilisez les commandes gcloud ou cURL.

Pour créer une instance configurée pour la haute disponibilité, procédez comme suit :

gcloud

  1. 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] \
                         --tier [MACHINE_TYPE] --enable-bin-log
    

    L'heure de début de l'intervalle de sauvegarde est au format HH:MM.

    Pour obtenir la liste complète des paramètres disponibles, consultez la page de référence Créer des instances gcloud sql.

  2. 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 type de machine (niveau) que l'instance principale. Vous pouvez modifier le type de machine de l'instance dupliquée de basculement ultérieurement, mais sa taille doit être au moins égale à celle de l'instance principale.

cURL

  1. Créez l'instance principale et son instance dupliquée de 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 '{"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
    
    Pour obtenir la liste complète des paramètres pour cette requête, consultez la page instances:insert.
  2. Une fois l'instance principale initialisée, mettez à jour son mot de passe racine comme suit :
    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'
    
    Cette modification est automatiquement appliquée à l'instance dupliquée.

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

  1. Vérifiez l'état de l'instance principale :
    gcloud sql instances describe [PRIMARY_INSTANCE_NAME]
    

    Si la propriété databaseReplicationEnabled est définie sur true, l'instance est dupliquée. Notez que vous ne pouvez pas créer d'instance dupliquée de basculement pour une instance dupliquée.

  2. Si la propriété enabled sous backupConfiguration est définie sur false, 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.

  3. Si la propriété binaryLogEnabled est définie sur false, activez les journaux binaires :
    gcloud sql instances patch --enable-bin-log [PRIMARY_INSTANCE_NAME]
    

    L'activation des journaux binaires entraîne le redémarrage de l'instance.

  4. Créez l'instance dupliquée :
    gcloud sql instances create [FAILOVER_REPLICA_NAME] \
                         --master-instance-name=[PRIMARY_INSTANCE_NAME] \
                         --replica-type=FAILOVER
    

cURL

  1. 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
    }
    
  2. Si l'élément enabled ou binaryLogEnabled est défini sur false, utilisez la méthode patch 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 sur true et startTime sur une valeur correspondant au début de l'intervalle de sauvegarde. Pour activer la journalisation binaire, définissez binaryLogEnabled sur true.

    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]
    
  3. 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 un type de machine valide pour les instances de deuxième génération et sa taille doit être au moins égale à celle du type de machine de l'instance principale.

Initier 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.

Console

  1. Accédez à la page "Instances Cloud SQL" dans Google Cloud Console.

    Accéder à la page Instances Cloud SQL

  2. Cliquez sur le nom de l'instance primaire pour ouvrir la page Détails de l'instance.
  3. Cliquez sur Basculement dans la barre de boutons.

gcloud

Initiez le basculement comme suit :

gcloud sql instances failover [PRIMARY_INSTANCE_NAME]

cURL

  1. 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]
    
  2. 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.

Configuration existante : 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 l'outil Monitoring de la suite des opérations Google Cloud dans Google Cloud Console pour être averti lorsque le délai de réplication 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 l'outil Monitoring de la suite des opérations Google Cloud, consultez la documentation de l'outil Monitoring de la suite des opérations Google Cloud.

Ancienne configuration : Définir une alerte pour une instance dupliquée de basculement spécifique

  1. Cliquez sur le logo de la suite des opérations Google Cloud dans l'angle supérieur gauche pour revenir à la page principale de l'outil Monitoring de la suite des opérations Google Cloud.
  2. Cliquez sur Créer une règle d'alerte.
  3. Saisissez un nom descriptif pour votre alerte.
  4. Sélectionnez Seuil de métriques et cliquez sur Suivant pour ouvrir l'onglet "Cible".
  5. Pour Type de ressource, sélectionnez Cloud SQL.
  6. Pour S'applique à, sélectionnez Unique, puis sélectionnez votre instance dupliquée de basculement.
  7. Cliquez sur Suivant pour ouvrir l'onglet "Configuration".
  8. Saisissez les valeurs suivantes :

    Champ Valeur
    Si métrique Secondes de retard sur le maître
    Condition Supérieur à
    Seuils 120 (ou toute valeur appropriée pour votre environnement)
    Durée 3 minutes

  9. 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 dupliquées de basculement comme suit :

  1. Accédez à la page "Instances Cloud SQL" dans Google Cloud Console.

    Accéder à la page Instances Cloud SQL

  2. Dans le menu de gauche, sélectionnez Monitoring pour ouvrir la page Monitoring de la suite des opérations Google Cloud, puis connectez-vous.
  3. Dans la barre de menu supérieure, sélectionnez Groupes > Créer.
  4. Entrez un nom descriptif pour votre groupe.
  5. Gardez la sélection Nom et Contient et saisissez le nom de la sous-chaîne.
  6. Cliquez sur Enregistrer le groupe. La page récapitulative du nouveau groupe s'ouvre.
  7. Confirmez l'inclusion des instances attendues dans le groupe.

Créez l'alerte pour le groupe d'instances dupliquées de basculement comme suit :

  1. Cliquez sur le logo de la suite des opérations Google Cloud dans l'angle supérieur gauche pour revenir à la page principale de l'outil Monitoring de la suite des opérations Google Cloud.
  2. Cliquez sur Créer une règle d'alerte.
  3. Saisissez un nom descriptif pour votre alerte de groupe.
  4. Sélectionnez Seuil de métriques et cliquez sur Suivant pour ouvrir l'onglet "Cible".
  5. Pour Type de ressource, sélectionnez Cloud SQL.
  6. Pour S'applique à, sélectionnez Groupe, puis sélectionnez votre groupe de basculement.
  7. Gardez la sélection Non-respect de la stratégie par un des membres et cliquez sur Suivant pour ouvrir l'onglet "Configuration".
  8. Saisissez les valeurs suivantes :

    Champ Valeur
    Si métrique Secondes de retard sur le maître
    Condition Supérieur à
    Seuils 120 (ou toute valeur appropriée pour votre environnement)
    Durée 3 minutes

  9. 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

  1. Accédez à la page "Instances Cloud SQL" dans Google Cloud Console.

    Accéder à la page Instances Cloud SQL

  2. Sélectionnez l'instance de basculement associée à l'instance pour laquelle vous souhaitez désactiver la haute disponibilité.
  3. Sur la page des Détails de l'instance, cliquez sur SUPPRIMER.
  4. Dans la fenêtre Supprimer l'instance dupliquée ?, retapez le nom de l'instance de basculement.
  5. Cliquez sur SUPPRIMER. La configuration de l'instance d'origine devient zonale.

gcloud

Pour plus d'informations, consultez la page sur gcloud sql instances delete.
gcloud sql instances delete [FAILOVER_REPLICA_NAME]

cURL

La requête suivante exécute la méthode instances: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