Activer et désactiver la haute disponibilité sur une instance

Cette page explique comment configurer une instance pour la haute disponibilité.

Vous pouvez configurer la haute disponibilité lors de la création d'une instance ou l'activer pour une instance existante.

Pour en savoir plus sur la haute disponibilité, consultez la page Présentation de la configuration de la haute disponibilité.

Créer une instance configurée pour la haute disponibilité

Lorsque vous créez une instance et que vous la configurez pour la haute disponibilité, Cloud SQL la crée en tant qu'instance régionale.

Pour créer une instance configurée pour 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. Créer une instance
  3. Sur la page Informations sur l'instance, sélectionnez Afficher les options de configuration.
  4. Cliquez sur Sauvegardes, restauration et haute disponibilité.
  5. Sélectionnez la case d'option Haute disponibilité (régionale).

gcloud

  1. Créez l'instance régionale :
    gcloud sql instances create [REGIONAL_INSTANCE_NAME] \
                         --availability-type=REGIONAL \
                         --database-version=[DATABASE_VERSION] \
                         --cpu=[NUMBER_CPUS] --memory=[MEMORY_SIZE]
    
    Pour obtenir la liste complète des paramètres disponibles, consultez la page de référence de la commande gcloud sql instances create.
  2. Configurez l'utilisateur racine :
    gcloud sql users set-password root no-host \
               --instance=[REGIONAL_INSTANCE_NAME]
               --password=[PASSWORD]
    

REST

Pour obtenir la liste complète des paramètres pour cette requête, consultez la page instances:insert.

Créez l'instance régionale.

  1. Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

    • project-id : ID du projet
    • instance-name : nom de l'instance
    • database-version : chaîne d'énumération de la version de base de données
    • region : région GCP
    • machine-type : type de machine

    Méthode HTTP et URL :

    POST https://www.googleapis.com/sql/v1beta4/projects/project-id/instances

    Corps JSON de la requête :

    {
      "name": "instance-name",
      "region": "region",
      "databaseVersion": "database-version",
       "settings": {
         "tier": "machine-type",
         "backupConfiguration": {
             "enabled": true,
             "pointInTimeRecoveryEnabled": true
          },
          "availabilityType": "REGIONAL"
       }
    }
    

    Pour envoyer votre requête, développez l'une des options suivantes :

    Vous devriez recevoir une réponse JSON de ce type :

  2. Une fois l'instance initialisée, mettez à jour le mot de passe racine sur l'instance :

    Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

    • project-id : ID du projet.
    • instance-id : ID de l'instance
    • password : nouveau mot de passe de l'utilisateur racine

    Méthode HTTP et URL :

    PATCH https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users?host=%25&name=postgres'

    Corps JSON de la requête :

    {
       "name": "postgres",
       "host": "nohost",
       "password": "password"}
    

    Pour envoyer votre requête, développez l'une des options suivantes :

    Vous devriez recevoir un code d'état indiquant le succès de l'opération (2xx), ainsi qu'une réponse vide.

Pour plus d'informations, consultez la section Créer des instances.

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 :

Console

La configuration de la haute disponibilité pour une instance existante provoque quelques minutes d'indisponibilité.

Pour configurer la haute disponibilité pour une instance existante, procédez comme suit :

  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 pour ouvrir la page Présentation, puis cliquez sur Modifier dans la barre de boutons.
  3. Dans la section des options de configuration Sauvegardes automatiques et haute disponibilité, sélectionnez Haute disponibilité (régionale). Il est également recommandé d'activer l'option Automatiser les sauvegardes.
  4. Cliquez sur Enregistrer.

    Vous êtes alors redirigé vers la page d'instance primaire lors de la mise à jour de l'instance.

gcloud

Attribuez le type régional à l'instance :

gcloud sql instances patch [INSTANCE_NAME] --availability-type REGIONAL

Pour plus d'informations, consultez la page sur gcloud sql instances patch.

REST

  1. Vérifiez l'instance principale pour vous assurer que les sauvegardes automatiques et la récupération à un moment précis sont activées. Ces paramètres sont requis pour les instances à haute disponibilité.

    Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

    • project-id : ID du projet.
    • instance-id : ID de l'instance.

    Méthode HTTP et URL :

    GET https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

    Pour envoyer votre requête, développez l'une des options suivantes :

    Vous devriez recevoir une réponse JSON de ce type :

    {
      "kind": "sql#instance",
      "state": "RUNNABLE",
      "databaseVersion": "MYSQL_5_7",
      "settings": {
        "authorizedGaeApplications": [],
        "tier": "db-f1-micro",
        "kind": "sql#settings",
        "pricingPlan": "PER_USE",
        "replicationType": "SYNCHRONOUS",
        "activationPolicy": "ALWAYS",
        "ipConfiguration": {
          "authorizedNetworks": [],
          "ipv4Enabled": true
        },
        "locationPreference": {
          "zone": "asia-east1-a",
          "kind": "sql#locationPreference"
        },
        "dataDiskType": "PD_SSD",
        "backupConfiguration": {
          "startTime": "08:00",
          "kind": "sql#backupConfiguration",
          "enabled": true,
          "pointInTimeRecoveryEnabled": true
        },
        "settingsVersion": "13",
        "storageAutoResizeLimit": "0",
        "storageAutoResize": true,
        "dataDiskSizeGb": "10"
      },
      "etag": "etag-id",
      "ipAddresses": [
        {
          "type": "PRIMARY",
          "ipAddress": "10.0.0.1"
        }
      ],
      "serverCaCert": {
        "kind": "sql#sslCert",
        "certSerialNumber": "0",
        "cert": "certificate-id",
        "commonName": "C=US,O=Google\\, Inc,CN=Google Cloud SQL Server CA,dnQualifier=dn-qualifier-id",
        "sha1Fingerprint": "sha-id",
        "instance": "instance-id",
        "createTime": "2019-06-28T22:46:35.052Z",
        "expirationTime": "2029-06-25T22:47:35.052Z"
      },
      "instanceType": "CLOUD_SQL_INSTANCE",
      "project": "project-id",
      "serviceAccountEmailAddress": "service-acct-id@gcp-sa-cloud-sql.iam.gserviceaccount.com",
      "backendType": "SECOND_GEN",
      "selfLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
      "connectionName": "project-id:region:instance-id",
      "name": "instance-id",
      "region": "asia-east1",
      "gceZone": "asia-east1-a"
    }
    

    Le résultat contient une section semblable à celle-ci :

      "backupConfiguration": {
        "kind": "sql#backupConfiguration",
        "startTime": "12:00",
        "enabled": true,
        "pointInTimeRecoveryEnabled": true
        }
      
  2. Si les valeurs enabled ou pointInTimeRecoveryEnabled sont définies sur false, utilisez la méthode instances:patch pour les activer. 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 pointInTimeRecoveryEnabled sur true.

    Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

    • project-id : ID du projet.
    • instance-id : ID de l'instance
    • start-time : Heure au format "HH:MM"

    Méthode HTTP et URL :

    PATCH https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

    Corps JSON de la requête :

    {
      "settings":
      {
        "backupConfiguration":
        {
          "startTime": "start-time",
          "enabled": true,
          "pointInTimeRecoveryEnabled": true
        }
      }
    }
    

    Pour envoyer votre requête, développez l'une des options suivantes :

    Vous devriez recevoir une réponse JSON de ce type :

  3. Attribuez le type régional à l'instance :

    Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

    • project-id : ID du projet
    • instance-name : nom de l'instance

    Méthode HTTP et URL :

    PATCH https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-name

    Corps JSON de la requête :

    {
      "settings": {"availabilityType": "REGIONAL" }
    }
    

    Pour envoyer votre requête, développez l'une des options suivantes :

    Vous devriez recevoir un code d'état indiquant le succès de l'opération (2xx), ainsi qu'une réponse vide.

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]

REST

  1. Décrivez l'instance primaire pour obtenir la valeur du champ settingsVersion.

    Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

    • project-id : ID du projet.
    • instance-id : ID de l'instance.

    Méthode HTTP et URL :

    GET https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

    Pour envoyer votre requête, développez l'une des options suivantes :

    Vous devriez recevoir une réponse JSON de ce type :

    {
      "kind": "sql#instance",
      "state": "RUNNABLE",
      "databaseVersion": "MYSQL_5_7",
      "settings": {
        "authorizedGaeApplications": [],
        "tier": "db-f1-micro",
        "kind": "sql#settings",
        "pricingPlan": "PER_USE",
        "replicationType": "SYNCHRONOUS",
        "activationPolicy": "ALWAYS",
        "ipConfiguration": {
          "authorizedNetworks": [],
          "ipv4Enabled": true
        },
        "locationPreference": {
          "zone": "asia-east1-a",
          "kind": "sql#locationPreference"
        },
        "dataDiskType": "PD_SSD",
        "backupConfiguration": {
          "startTime": "08:00",
          "kind": "sql#backupConfiguration",
          "enabled": true,
          "binaryLogEnabled": true
        },
        "settingsVersion": "13",
        "storageAutoResizeLimit": "0",
        "storageAutoResize": true,
        "dataDiskSizeGb": "10"
      },
      "etag": "etag-id",
      "ipAddresses": [
        {
          "type": "PRIMARY",
          "ipAddress": "10.0.0.1"
        }
      ],
      "serverCaCert": {
        "kind": "sql#sslCert",
        "certSerialNumber": "0",
        "cert": "certificate-id",
        "commonName": "C=US,O=Google\\, Inc,CN=Google Cloud SQL Server CA,dnQualifier=dn-qualifier-id",
        "sha1Fingerprint": "sha-id",
        "instance": "instance-id",
        "createTime": "2019-06-28T22:46:35.052Z",
        "expirationTime": "2029-06-25T22:47:35.052Z"
      },
      "instanceType": "CLOUD_SQL_INSTANCE",
      "project": "project-id",
      "serviceAccountEmailAddress": "service-acct-id@gcp-sa-cloud-sql.iam.gserviceaccount.com",
      "backendType": "SECOND_GEN",
      "selfLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
      "connectionName": "project-id:region:instance-id",
      "name": "instance-id",
      "region": "asia-east1",
      "gceZone": "asia-east1-a"
    }
    
  2. Initiez le basculement comme suit :

    Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

    • project-id : ID du projet
    • instance-name : nom de l'instance
    • settings-version : valeur settingsVersion de instanceInfo

    Méthode HTTP et URL :

    POST https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-name/failover

    Corps JSON de la requête :

    {
      "failoverContext":
         {
            "settingsVersion":"settings-version"
         }
    }
    

    Pour envoyer votre requête, développez l'une des options suivantes :

    Vous devriez recevoir une réponse JSON de ce type :

Lors de ce processus de quelques minutes, l'instance n'est plus disponible.

Vérifier la haute disponibilité d'une instance

Pour vérifier qu'une instance est configurée pour 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. Cliquez sur un nom d'instance pour ouvrir la page Détails de l'instance.
  3. Sous Configuration, la mention Haute disponibilité (régionale) s'affiche.

gcloud

gcloud sql instances describe [INSTANCE_NAME]
Le résultat indique que la valeur de availabilityType est définie sur REGIONAL.

REST

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • project-id : ID du projet.
  • instance-id : ID de l'instance.

Méthode HTTP et URL :

GET https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

{
  "kind": "sql#instance",
  "state": "RUNNABLE",
  "databaseVersion": "MYSQL_5_7",
  "settings": {
    "authorizedGaeApplications": [],
    "tier": "db-f1-micro",
    "kind": "sql#settings",
    "pricingPlan": "PER_USE",
    "replicationType": "SYNCHRONOUS",
    "activationPolicy": "ALWAYS",
    "ipConfiguration": {
      "authorizedNetworks": [],
      "ipv4Enabled": true
    },
    "locationPreference": {
      "zone": "asia-east1-a",
      "kind": "sql#locationPreference"
    },
    "dataDiskType": "PD_SSD",
    "backupConfiguration": {
      "startTime": "08:00",
      "kind": "sql#backupConfiguration",
      "enabled": true,
      "pointInTimeRecoveryEnabled": true
    },
    "settingsVersion": "13",
    "storageAutoResizeLimit": "0",
    "storageAutoResize": true,
    "dataDiskSizeGb": "10"
  },
  "etag": "etag-id",
  "ipAddresses": [
    {
      "type": "PRIMARY",
      "ipAddress": "10.0.0.1"
    }
  ],
  "serverCaCert": {
    "kind": "sql#sslCert",
    "certSerialNumber": "0",
    "cert": "certificate-id",
    "commonName": "C=US,O=Google\\, Inc,CN=Google Cloud SQL Server CA,dnQualifier=dn-qualifier-id",
    "sha1Fingerprint": "sha-id",
    "instance": "instance-id",
    "createTime": "2019-06-28T22:46:35.052Z",
    "expirationTime": "2029-06-25T22:47:35.052Z"
  },
  "instanceType": "CLOUD_SQL_INSTANCE",
  "project": "project-id",
  "serviceAccountEmailAddress": "service-acct-id@gcp-sa-cloud-sql.iam.gserviceaccount.com",
  "backendType": "SECOND_GEN",
  "selfLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "connectionName": "project-id:region:instance-id",
  "name": "instance-id",
  "region": "asia-east1",
  "gceZone": "asia-east1-a"
}

Le résultat indique que la valeur de availabilityType est définie sur REGIONAL.

Désactiver la haute disponibilité sur une instance

Avant de suivre cette procédure, assurez-vous qu'aucune opération n'est en cours d'exécution sur l'instance.

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 pour laquelle vous souhaitez désactiver la haute disponibilité.
  3. Sur la page Détails de l'instance, cliquez sur Modifier.
  4. Cliquez sur Sauvegardes automatiques.
  5. Sous Disponibilité, cliquez sur Zone unique.
  6. Cliquez sur Enregistrer. Cette modification nécessite un redémarrage de l'instance.
  7. Lorsque vous voyez la boîte de dialogue, cliquez sur ENREGISTRER ET REDÉMARRER.

gcloud

Pour plus d'informations, consultez la page sur gcloud sql instances patch.
gcloud sql instances patch [INSTANCE_NAME]
           --availability-type ZONAL

REST

La requête suivante exécute la méthode instances:patch pour redéfinir le type de disponibilité de l'instance sur "ZONAL".

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • project-id : ID du projet
  • instance-name : nom de l'instance

Méthode HTTP et URL :

PATCH https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-name

Corps JSON de la requête :

{
  "settings": {"availabilityType": "ZONAL" }
}

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir un code d'état indiquant le succès de l'opération (2xx), ainsi qu'une réponse vide.

Dépannage

Cliquez sur les liens du tableau pour en savoir plus :

Pour ce problème... Le problème peut être... Essayez ce qui suit...
Impossible de trouver les métriques pour le basculement manuel. Seuls les basculements automatiques entrent dans les métriques. ND
Utilisation du processeur et de la mémoire RAM proche de 100 % La taille de la machine de l'instance est insuffisante pour la charge. Augmentez la taille de la machine de l'instance.

Métriques introuvables pour le basculement manuel

Vous avez effectué un basculement manuel et vous ne trouvez pas l'entrée correspondante dans l'Explorateur de métriques pour le basculement automatique.

Cause possible

Seuls les basculements automatiques sont pris en compte dans les métriques. Les basculements manuels ne le sont pas.

Solutions possibles

ND


Utilisation du processeur et de la mémoire RAM proche de 100 %

L'utilisation des ressources d'instance Cloud SQL (processeur et mémoire RAM) arrive bientôt à 100 %, ce qui entraîne l'arrêt de l'instance à haute disponibilité.

Cause possible

La taille de la machine de l'instance est insuffisante pour la charge.

Solutions possibles

Modifiez l'instance en augmentant la taille de la machine afin d'obtenir plus de processeurs et de mémoire.

Étapes suivantes