L'objectif d'une configuration à haute disponibilité est de réduire les temps d'arrêt lorsqu'une instance de cluster de bases 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'un réplica de secours. Toutes les écritures effectuées sur l'instance principale sont répliquées sur la réplique 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 serve de nouvelle instance principale. Le trafic des applications est ensuite réacheminé vers la nouvelle instance principale. Ce processus est appelé basculement.
Un basculement automatique se déclenche après trois échecs consécutifs de vérification de l'état'état sur l'instance principale, chacun étant espacé de 30 secondes.
GDC est compatible avec les basculements automatiques et manuels. Le basculement automatique est activé par défaut. Vous pouvez le désactiver si nécessaire. Vous pouvez également déclencher manuellement un basculement à tout moment pour vous remettre d'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 le réplica de secours en nouveau cluster de base de données actif.
GDC supprime le cluster de base de données actif précédent.
GDC crée une réplique 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 Service de base de données.
Dans la liste des clusters de bases de données, cliquez sur celui que vous souhaitez mettre à jour.
Sélectionnez Modifier Modifier dans la section Haute disponibilité.

Sélectionnez Activer le standby 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 bases de données principal.
Cliquez sur Enregistrer.
Vérifiez que votre cluster de bases de données reflète votre mise à jour de la 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 la 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 le CR de votre cluster de base de données à haute disponibilité. Cette annotation n'apparaît que sur les clusters utilisant la nouvelle implémentation. Si vous ne disposez pas de 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 ultérieure.
- Désactivez la haute disponibilité sur votre cluster de bases de données. Attendez que la condition
HAReadydisparaisse, puis réactivez la haute disponibilité. - Une fois que vous avez vu
HAReady in progressouHAReady setup complete, recherchez l'annotationdbcluster.dbadmin.goog/raasEnableddans le CR de votre cluster de bases de données. Si elle s'affiche, cela signifie que votre cluster de base 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 Service de base de données.
Dans la liste des clusters de bases de données, cliquez sur celui pour lequel vous souhaitez déclencher un basculement. Pour qu'un cluster de bases de données puisse bénéficier d'un basculement, la haute disponibilité doit être activée.
Cliquez sur Basculement.
Saisissez l'ID du cluster pour la phrase de confirmation, puis cliquez sur Basculer pour déclencher le processus de basculement.
gdcloud
Déclenchez le basculement pour le cluster de bases de données :
gdcloud database clusters failover CLUSTER_NAMERemplacez
CLUSTER_NAMEpar 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 bases 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.