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
-
Dans Google Cloud Console, accédez à la page Instances Cloud SQL.
- Sélectionnez Créer une instance.
- Sélectionnez le moteur de base de données.
- Dans la section Choisir la disponibilité régionale et zonale, sélectionnez Zones multiples (disponibilité élevée).
- Développez Spécifier des zones.
- Sélectionnez les zones principale et secondaire. Les conditions suivantes s'appliquent lorsque la zone secondaire est utilisée lors de la création ou de la modification de l'instance :
- Les zones sont définies par défaut sur
Any
pour la zone principale et surAny (different from primary)
pour la zone secondaire.
Si les zones principale et secondaire sont spécifiées, elles doivent être distinctes l'une de l'autre.
- Les zones sont définies par défaut sur
- Cliquez sur Enregistrer.
Vous êtes alors redirigé vers la page d'instance primaire lors de la mise à jour de l'instance.
gcloud
- Créez l'instance régionale :
gcloud sql instances create REGIONAL_INSTANCE_NAME \ --availability-type=REGIONAL \ --database-version=SQLSERVER_2017_STANDARD \ --cpu=NUMBER_CPUS \ --memory=MEMORY_SIZE
- Configurez l'utilisateur root :
gcloud sql users set-password root no-host \ --instance=REGIONAL_INSTANCE_NAME \ --password=PASSWORD
Terraform
Pour créer une instance à haute disponibilité, utilisez une ressource Terraform.
Appliquer les modifications
Pour appliquer votre configuration Terraform dans un projet Google Cloud, suivez les procédures des sections suivantes.
Préparer Cloud Shell
- Lancez Cloud Shell.
-
Définissez le projet Google Cloud par défaut dans lequel vous souhaitez appliquer vos configurations Terraform.
Vous n'avez besoin d'exécuter cette commande qu'une seule fois par projet et vous pouvez l'exécuter dans n'importe quel répertoire.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Les variables d'environnement sont remplacées si vous définissez des valeurs explicites dans le fichier de configuration Terraform.
Préparer le répertoire
Chaque fichier de configuration Terraform doit avoir son propre répertoire (également appelé module racine).
-
Dans Cloud Shell, créez un répertoire et un nouveau fichier dans ce répertoire. Le nom du fichier doit comporter l'extension
.tf
, par exemplemain.tf
. Dans ce tutoriel, le fichier est appelémain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Si vous suivez un tutoriel, vous pouvez copier l'exemple de code dans chaque section ou étape.
Copiez l'exemple de code dans le fichier
main.tf
que vous venez de créer.Vous pouvez également copier le code depuis GitHub. Cela est recommandé lorsque l'extrait Terraform fait partie d'une solution de bout en bout.
- Examinez et modifiez les exemples de paramètres à appliquer à votre environnement.
- Enregistrez les modifications.
-
Initialisez Terraform. Cette opération n'est à effectuer qu'une seule fois par répertoire.
terraform init
Vous pouvez également utiliser la dernière version du fournisseur Google en incluant l'option
-upgrade
:terraform init -upgrade
Appliquer les modifications
-
Examinez la configuration et vérifiez que les ressources que Terraform va créer ou mettre à jour correspondent à vos attentes :
terraform plan
Corrigez les modifications de la configuration si nécessaire.
-
Appliquez la configuration Terraform en exécutant la commande suivante et en saisissant
yes
lorsque vous y êtes invité :terraform apply
Attendez que Terraform affiche le message "Apply completed!" (Application terminée).
- Ouvrez votre projet Google Cloud pour afficher les résultats. Dans la console Google Cloud, accédez à vos ressources dans l'interface utilisateur pour vous assurer que Terraform les a créées ou mises à jour.
Supprimer les modifications
Pour supprimer vos modifications, procédez comme suit :
- Pour désactiver la protection contre la suppression, définissez l'argument
deletion_protection
surfalse
dans le fichier de configuration Terraform.deletion_protection = "false"
- Appliquez la configuration Terraform mise à jour en exécutant la commande suivante et en saisissant
yes
lorsque vous y êtes invité :terraform apply
-
Supprimez les ressources précédemment appliquées à votre configuration Terraform en exécutant la commande suivante et en saisissant
yes
à la requête :terraform destroy
REST v1
Pour obtenir la liste complète des paramètres pour cette requête, consultez la page instances:insert.Créez l'instance régionale.
-
Avant d'utiliser les données de requête, 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://sqladmin.googleapis.com/v1/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 }, "availabilityType": "REGIONAL" } }
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
- 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, 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://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users?host=%25&name=sqlserver'
Corps JSON de la requête :
{ "name": "sqlserver", "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.
REST v1beta4
Pour obtenir la liste complète des paramètres pour cette requête, consultez la page instances:insert.Créez l'instance régionale.
-
Avant d'utiliser les données de requête, 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://sqladmin.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 }, "availabilityType": "REGIONAL" } }
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
- 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, 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://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users?host=%25&name=sqlserver'
Corps JSON de la requête :
{ "name": "sqlserver", "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
Vous pouvez configurer la haute disponibilité d'une instance Cloud SQL en utilisant la console Google Cloud, gcloud CLI ou l'API.
Console
Pour configurer la haute disponibilité pour une instance, procédez comme suit :
-
Dans Google Cloud Console, accédez à la page Instances Cloud SQL.
- Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
- Cliquez sur Modifier.
- 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.
- Cliquez sur Enregistrer.
gcloud
Pour configurer une instance comme instance à haute disponibilité régionale, utilisez la commande gcloud sql instances patch
:
gcloud sql instances patch INSTANCE_NAME \ --availability-type REGIONAL
Remplacez INSTANCE_NAME par le nom de l'instance Cloud SQL que vous configurez pour la haute disponibilité.
REST v1
Pour configurer une instance en tant qu'instance régionale à haute disponibilité, procédez comme suit :
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : ID ou numéro de projet du projet Google Cloud contenant l'instance.
- INSTANCE_NAME : nom de l'instance que vous configurez pour la haute disponibilité.
Méthode HTTP et URL :
PATCH https://sqladmin.googleapis.com/v1/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.
REST v1beta4
Pour configurer une instance en tant qu'instance régionale à haute disponibilité, procédez comme suit :
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : ID ou numéro de projet du projet Google Cloud contenant l'instance.
- INSTANCE_NAME : nom de l'instance que vous configurez pour la haute disponibilité.
Méthode HTTP et URL :
PATCH https://sqladmin.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.
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.
Console
-
Dans Google Cloud Console, accédez à la page Instances Cloud SQL.
- Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
- Cliquez sur Basculement.
- Dans la boîte de dialogue Déclencher manuellement un basculement, saisissez l'ID de votre instance dans le champ de texte, puis cliquez sur Déclencher le basculement.
gcloud
Initiez le basculement comme suit :
gcloud sql instances failover PRIMARY_INSTANCE_NAME
REST v1
- Décrivez l'instance principale pour obtenir la valeur du champ
settingsVersion
.Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : ID ou numéro de projet du projet Google Cloud contenant l'instance.
- INSTANCE_NAME : nom de l'instance que vous configurez pour la haute disponibilité.
Méthode HTTP et URL :
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
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": "SQLSERVER_2019_STANDARD" }
- Initiez le basculement comme suit :
Avant d'utiliser les données de requête, 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://sqladmin.googleapis.com/v1/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 :
REST v1beta4
- Décrivez l'instance principale pour obtenir la valeur du champ
settingsVersion
.Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : ID ou numéro de projet du projet Google Cloud contenant l'instance.
- INSTANCE_NAME : nom de l'instance que vous configurez pour la haute disponibilité.
Méthode HTTP et URL :
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME
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": "SQLSERVER_2019_STANDARD" }
- Initiez le basculement comme suit :
Avant d'utiliser les données de requête, 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://sqladmin.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 configuration de haute disponibilité d'une instance
Pour vérifier la haute disponibilité d'une instance et afficher les zones dans lesquelles elle est exécutée, procédez comme suit :
Console
-
Dans Google Cloud Console, accédez à la page Instances Cloud SQL.
- Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
- Vérifiez que les paramètres de haute disponibilité suivants s'affichent dans la section Configuration :
- Disponibilité élevée (régional)
- Emplacement : affiche la zone principale actuelle de l'instance.
gcloud
gcloud sql instances describe INSTANCE_NAME
Le résultat indique que la valeur de availabilityType
est définie sur REGIONAL
.
Les champs gceZone
et secondaryGceZone
indiquent les zones principale et secondaire actuelles de l'instance.
REST v1
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://sqladmin.googleapis.com/v1/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": "SQLSERVER_2019_STANDARD" }
Le résultat indique que la valeur de availabilityType
est définie sur REGIONAL
.
Les champs gceZone
et secondaryGceZone
indiquent les zones principale et secondaire actuelles de l'instance.
REST v1beta4
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://sqladmin.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": "SQLSERVER_2017_STANDARD", }
Le résultat indique que la valeur de availabilityType
est définie sur REGIONAL
.
Les champs gceZone
et secondaryGceZone
indiquent les zones principale et secondaire actuelles de l'instance.
Modifier les zones d'une instance à haute disponibilité
La modification d'une zone (ou des deux zones) d'une instance à haute disponibilité existante, entraîne un temps d'arrêt de quelques minutes pendant la reconfiguration de l'instance. Pour connaître les zones principale et secondaire actuelles dans lesquelles l'instance à haute disponibilité est en cours d'exécution, consultez la page Vérifier la configuration de la haute disponibilité d'une instance.
Pour modifier les zones d'une instance à haute disponibilité, procédez comme suit :
Console
-
Dans Google Cloud Console, accédez à la page Instances Cloud SQL.
- Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
- Cliquez sur Modifier.
- Dans la section Sélectionner la disponibilité régionale et zonale, développez Spécifier des zones et sélectionnez de nouvelles zones. Les zones sont définies par défaut sur
Any
pour la zone principale et surAny (different from primary)
pour la zone secondaire. Les restrictions suivantes s'appliquent :- Vous pouvez spécifier la zone principale uniquement, ou les zones principale et secondaire.
- Si les zones principale et secondaire sont spécifiées, elles doivent être distinctes l'une de l'autre.
- Cliquez sur Enregistrer.
Vous êtes alors redirigé vers la page d'instance primaire lors de la mise à jour de l'instance.
gcloud
Modifiez la zone dans laquelle l'instance est en cours d'exécution :
gcloud sql instances patch INSTANCE_NAME \ --zone=PRIMARY_ZONE --secondary-zone=SECONDARY_ZONE
Le paramètre --secondary-zone
est facultatif. Si vous l'omettez, Cloud SQL sélectionne une zone disponible différente de la zone principale.
Les restrictions suivantes s'appliquent :
- Les zones doivent être des zones valides appartenant à la même région que l'instance Cloud SQL.
- Si la zone secondaire est spécifiée, elle doit être différente de la zone principale.
REST v1
Modifiez les zones de l'instance régionale :
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
- PRIMARY_ZONE : zone principale
- SECONDARY_ZONE : zone secondaire
Méthode HTTP et URL :
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
Corps JSON de la requête :
{ "settings": {"locationPreference": {"zone": "PRIMARY_ZONE", "secondaryZone": "SECONDARY_ZONE"}} }
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.
Le paramètre
secondaryZone
est facultatif. Si vous l'omettez, Cloud SQL sélectionne une zone disponible différente de la zone principale.Les restrictions suivantes s'appliquent :
- Les zones doivent être valides.
- Toutes les zones que vous choisissez doivent appartenir à la même région que l'instance Cloud SQL.
REST v1beta4
Modifiez les zones de l'instance régionale :
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
- PRIMARY_ZONE : zone principale
- SECONDARY_ZONE : zone secondaire
Méthode HTTP et URL :
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME
Corps JSON de la requête :
{ "settings": {"locationPreference": {"zone": "PRIMARY_ZONE", "secondaryZone": "SECONDARY_ZONE"}} }
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.
Le paramètre
secondaryZone
est facultatif. Si vous l'omettez, Cloud SQL sélectionne une zone disponible différente de la zone principale.Les restrictions suivantes s'appliquent :
- Les zones doivent être valides.
- Toutes les zones que vous choisissez doivent appartenir à la même région que l'instance Cloud SQL.
Désactiver la haute disponibilité pour une instance
Vous pouvez désactiver la haute disponibilité d'une instance Cloud SQL en utilisant la console Google Cloud, gcloud CLI ou l'API.
Console
Pour désactiver la haute disponibilité pour une instance, procédez comme suit :
-
Dans Google Cloud Console, accédez à la page Instances Cloud SQL.
- Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
- Cliquez sur Modifier.
- Cliquez sur Sauvegardes automatiques.
- Dans la section Disponibilité, cliquez sur Zone unique.
- Cliquez sur Enregistrer. Cette modification nécessite le redémarrage de l'instance.
- Lorsque la boîte de dialogue s'affiche, cliquez sur Enregistrer et redémarrer.
gcloud
Pour désactiver la haute disponibilité pour une instance, utilisez la commande gcloud sql instances patch
:
gcloud sql instances patch INSTANCE_NAME \ --availability-type ZONAL
Remplacez INSTANCE_NAME par le nom de l'instance Cloud SQL pour laquelle vous désactivez la haute disponibilité.
REST v1
Pour basculer le type de disponibilité de l'instance sur ZONAL
, utilisez la méthode instances:patch
. Cette méthode désactive la haute disponibilité pour l'instance.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : ID ou numéro de projet du projet Google Cloud contenant l'instance.
- INSTANCE_NAME : nom de l'instance pour laquelle vous désactivez la haute disponibilité.
Méthode HTTP et URL :
PATCH https://sqladmin.googleapis.com/v1/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.
REST v1beta4
Pour basculer le type de disponibilité de l'instance sur ZONAL
, utilisez la méthode instances:patch
. Cette méthode désactive la haute disponibilité pour l'instance.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- PROJECT_ID : ID ou numéro de projet du projet Google Cloud contenant l'instance.
- INSTANCE_NAME : nom de l'instance pour laquelle vous désactivez la haute disponibilité.
Méthode HTTP et URL :
PATCH https://sqladmin.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.
Résoudre les problèmes
Problème | Dépannage |
---|---|
Vous ne trouvez pas les métriques d'un basculement manuel. | Seuls les basculements automatiques sont pris en compte dans les métriques. |
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é. | La taille de la machine de l'instance est insuffisante pour la charge.
Modifiez l'instance en augmentant la taille de la machine afin d'obtenir plus de processeurs et de mémoire. |
É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.
- En savoir plus sur Google Cloud Observability.