L'objectif d'une configuration de haute disponibilité est de réduire les temps d'arrêt lorsqu'une instance de cluster de base de données devient indisponible. Cela peut se produire lorsqu'une instance manque de mémoire. Avec la haute disponibilité, vos données restent disponibles pour les applications clientes.
Au sein d'un site, la configuration se compose d'une instance principale et d'une instance répliquée de secours. Toutes les écritures effectuées sur l'instance principale sont répliquées sur l'instance répliquée de secours avant qu'une transaction ne soit signalée comme validée. Si votre instance principale devient indisponible, GDC promeut automatiquement l'instance répliquée de secours pour qu'elle agisse en tant que nouvelle instance principale. Le trafic de l'application est ensuite réacheminé vers la nouvelle instance principale. Ce processus est appelé basculement.
Un basculement automatique démarre après trois échecs consécutifs de vérification de l'état'état sur l'instance principale, espacés de 30 secondes chacun.
GDC est compatible avec le basculement automatique et manuel. Le basculement automatique est activé par défaut, et vous pouvez le désactiver si nécessaire. Vous pouvez également déclencher manuellement un basculement à tout moment pour récupérer après une défaillance inattendue et minimiser les temps d'arrêt.
Le basculement implique le processus suivant, dans l'ordre :
GDC met l'instance principale hors connexion.
GDC transforme l'instance répliquée de secours en nouveau cluster de base de données actif.
GDC supprime le cluster de bases de données actif précédent.
GDC crée une instance répliquée de secours.
Mettre à jour un cluster existant
Vous pouvez modifier les paramètres de haute disponibilité d'un cluster de bases de données existant :
Console
Dans le menu de navigation, sélectionnez Database Service.
Dans la liste des clusters de bases de données, cliquez sur le cluster de bases de données à mettre à jour.
Sélectionnez Modifier dans la section Haute disponibilité.

Sélectionnez Activer l'instance de secours dans la même zone pour activer ou désactiver la disponibilité d'une instance de secours dans la même zone que votre cluster de base de données principal.
Cliquez sur Enregistrer.
Vérifiez que votre cluster de bases de données reflète votre mise à jour de haute disponibilité en consultant son état dans la colonne Haute disponibilité de la liste des clusters de bases de données.
gdcloud
Mettez à jour la configuration de haute disponibilité de votre cluster de bases de données :
gdcloud database clusters update CLUSTER_NAME \ --availability-type HA_TYPERemplacez les éléments suivants :
CLUSTER_NAME: nom du cluster de bases de données.HA_TYPE: niveau de haute disponibilité du cluster de bases de données. Vous pouvez définirzonalouzonal_ha. La valeurzonalest définie par défaut.
Vérifiez que votre cluster de bases de données reflète votre mise à jour de haute disponibilité :
gdcloud database clusters list
API
Mettez à jour la configuration de haute disponibilité de votre cluster de bases de données :
kubectl patch dbcluster.postgresql.dbadmin.gdc.goog DBCLUSTER_NAME \ -n USER_PROJECT \ -p '{"spec": {"availability": {"enableHighAvailability": HA_ENABLED}}}' \ --type=mergeRemplacez les variables suivantes :
DBCLUSTER_NAME: nom du cluster de bases de données.USER_PROJECT: nom du projet utilisateur dans lequel le cluster de bases de données a été créé.HA_ENABLED: niveau de haute disponibilité du cluster de bases de données. Vous pouvez définirtrueoufalse. La valeurfalseest définie par défaut.
Vérifiez que votre cluster de bases de données reflète votre mise à jour de haute disponibilité :
kubectl get dbcluster.DBENGINE_NAME.dbadmin.gdc.goog DBCLUSTER_NAME \ -n USER_PROJECT \ -o yaml
Migrer vers la dernière implémentation de haute disponibilité
Pour vérifier que votre cluster de base de données à haute disponibilité utilise la dernière implémentation, vérifiez si l'annotation dbcluster.dbadmin.goog/raasEnabled existe sur la ressource personnalisée de votre cluster de base de données à haute disponibilité. Cette annotation n'apparaîtra que sur les clusters utilisant la nouvelle implémentation. Si vous n'avez pas cette annotation, vous pouvez l'activer et migrer votre cluster en procédant comme suit :
- Vérifiez auprès de votre opérateur d'infrastructure que votre environnement GDC est mis à niveau vers la version 1.15.1 ou une version ultérieure.
- Désactivez la haute disponibilité sur votre cluster de base de données. Attendez que la condition
HAReadydisparaisse, puis réactivez la haute disponibilité. - Une fois que vous voyez
HAReady in progressouHAReady setup complete, vérifiez si la CR de votre cluster de bases de données contient l'annotationdbcluster.dbadmin.goog/raasEnabled. Si elle s'affiche, cela signifie que votre cluster de bases de données a bien été migré.
Déclencher un basculement
Si vous avez configuré la haute disponibilité pour votre cluster de bases de données, vous pouvez déclencher un basculement. Pour déclencher un basculement, procédez comme suit :
Console
Dans le menu de navigation, sélectionnez Database Service.
Dans la liste des clusters de bases de données, cliquez sur le cluster de bases de données pour lequel vous souhaitez déclencher un basculement. La haute disponibilité doit être activée sur votre cluster de bases de données pour qu'il soit éligible au basculement.
Cliquez sur Basculement.
Saisissez l'ID du cluster pour la phrase de confirmation, puis cliquez sur Basculement pour déclencher le processus de basculement.
gdcloud
Déclenchez le basculement du cluster de bases de données :
gdcloud database clusters failover CLUSTER_NAME
Remplacez CLUSTER_NAME par le nom du cluster de bases de données.
API
apiVersion: fleet.dbadmin.gdc.goog/v1
kind: Failover
metadata:
name: FAILOVER_NAME
namespace: USER_PROJECT
spec:
dbclusterRef: DBCLUSTER_NAME
Remplacez les variables suivantes :
DBCLUSTER_NAME: nom du cluster de bases de données.USER_PROJECT: nom du projet utilisateur dans lequel le cluster de bases de données a été créé.FAILOVER_NAME: nom unique du basculement, par exemplefailover-sample.
Désactiver le basculement automatique
Le basculement automatique est activé par défaut sur les clusters de bases de données à haute disponibilité.
Pour désactiver le basculement automatique, définissez enableAutoFailover sur false dans le fichier manifeste du cluster de base de données :
spec:
availability:
enableAutoFailover: false
Pour mettre à jour la configuration du basculement automatique d'un cluster de bases de données existant à l'aide de l'API, exécutez la commande suivante :
kubectl patch dbcluster.postgresql.dbadmin.gdc.goog DBCLUSTER_NAME \
-n USER_PROJECT \
-p '{"spec": {"availability": {"enableAutoFailover": AUTO_FAILOVER_ENABLED}}}' \
--type=merge
Remplacez les variables suivantes :
DBCLUSTER_NAME: nom du cluster de bases de données.USER_PROJECT: nom du projet utilisateur dans lequel le cluster de bases de données a été créé.AUTO_FAILOVER_ENABLED: paramètre de basculement automatique pour le cluster de bases de données. Vous pouvez définirtrueoufalse. La valeurtrueest définie par défaut.