Gérer les périodes de maintenance des clusters AlloyDB pour PostgreSQL

La configuration d'intervalles de maintenance et de périodes de refus vous permet de contrôler quand les mises à jour automatiques se produisent sur vos clusters AlloyDB pour PostgreSQL afin d'éviter les perturbations pendant les heures de pointe. Sur les clusters principaux et secondaires, vous pouvez définir, afficher ou effacer des intervalles de maintenance, surveiller les événements de maintenance planifiés à venir, et configurer ou supprimer des périodes de refus. Vous pouvez également activer les notifications par e-mail pour les événements de maintenance planifiés.

Pour en savoir plus sur le fonctionnement de la maintenance, consultez Présentation de la maintenance. Vous pouvez également apprendre à gérer les mises à jour de maintenance AlloyDB à l'aide d'un cluster de préproduction.

Avant de commencer

Pour vous assurer que la maintenance et les mises à jour peuvent créer des emplacements de réplication temporaires pour la synchronisation d'état, assurez-vous que le nombre total d'emplacements de réplication est inférieur d'au moins un à la limite max_wal_senders. Pour en savoir plus sur la configuration de cette option, consultez Configurer vos instances sources.

Définir un intervalle de maintenance sur un cluster

Console

  1. Accédez à la page Clusters.

    accéder aux clusters

  2. Cliquez sur un cluster dans la colonne Nom de la ressource.

  3. Sur la page Vue d'ensemble, dans Maintenance, cliquez sur Modifier.

  4. Dans Intervalle de maintenance, sélectionnez le jour de la semaine pour cet intervalle de maintenance.

    L'option par défaut est N'importe quelle fenêtre. Lorsque vous créez un cluster, cet intervalle de maintenance par défaut lui est attribué.

  5. Sélectionnez l'heure de la journée pour cet intervalle de maintenance.

  6. Cliquez sur Mettre à jour pour enregistrer les modifications.

gcloud

Pour utiliser la gcloud CLI, vous pouvez installer et initialiser la Google Cloud CLI, ou utiliser Cloud Shell.

Pour définir un intervalle de maintenance sur un cluster, exécutez la commande gcloud alloydb clusters update avec les options --maintenance-window-day et --maintenance-window-hour :

gcloud alloydb clusters update CLUSTER_ID \
  --region LOCATION_ID \
  --maintenance-window-day DAY_OF_WEEK \
  --maintenance-window-hour HOUR_OF_DAY

Remplacez les éléments suivants :

  • CLUSTER_ID : cluster sur lequel définir l'intervalle de maintenance.

  • LOCATION_ID : région Google Cloud dans laquelle se trouve ce cluster, par exemple us-central1.

  • DAY_OF_WEEK : jour de la semaine, dans le fuseau horaire UTC (temps universel coordonné), pour cet intervalle de maintenance. Les valeurs valides sont MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY et SUNDAY.

    La valeur par défaut est Toutes les fenêtres. Lorsque vous créez un cluster, cet intervalle de maintenance par défaut lui est attribué.

  • HOUR_OF_DAY : entier compris entre 0 et 23 représentant l'heure de la journée, dans le fuseau horaire UTC, pour cet intervalle de maintenance.

Si vous modifiez le paramètre d'intervalle de maintenance alors que la maintenance du cluster est déjà en cours ou planifiée, ces modifications ne prennent effet qu'une fois la maintenance en cours ou planifiée terminée.

Effacer un intervalle de maintenance

Console

  1. Accédez à la page Clusters.

    accéder aux clusters

  2. Cliquez sur un cluster dans la colonne Nom de la ressource.

  3. Sur la page Vue d'ensemble, dans Maintenance, cliquez sur Modifier.

  4. Dans Intervalle de maintenance, sélectionnez N'importe quel intervalle.

  5. Cliquez sur Mettre à jour pour enregistrer les modifications.

gcloud

Pour utiliser la gcloud CLI, vous pouvez installer et initialiser la Google Cloud CLI, ou utiliser Cloud Shell.

Pour supprimer l'intervalle de maintenance d'un cluster, exécutez la commande gcloud alloydb clusters update avec l'option --maintenance-window-any :

gcloud alloydb clusters update CLUSTER_ID \
  --region LOCATION_ID \
  --maintenance-window-any

Remplacez les éléments suivants :

  • CLUSTER_ID : cluster sur lequel définir l'intervalle de maintenance.

  • LOCATION_ID : région Google Cloud dans laquelle se trouve ce cluster, par exemple us-central1.

Afficher l'intervalle de maintenance d'un cluster

Console

  1. Accédez à la page Clusters.

    accéder aux clusters

  2. Cliquez sur un cluster dans la colonne Nom de la ressource.

  3. Sur la page Vue d'ensemble, dans Maintenance, affichez les détails de l'intervalle de maintenance de votre cluster.

gcloud

Pour utiliser la gcloud CLI, vous pouvez installer et initialiser la Google Cloud CLI, ou utiliser Cloud Shell.

Pour examiner l'intervalle de maintenance actuel sur un cluster, exécutez la commande gcloud alloydb clusters describe :

gcloud alloydb clusters describe CLUSTER_ID \
  --region LOCATION_ID

Remplacez les éléments suivants :

  • CLUSTER_ID : cluster sur lequel définir l'intervalle de maintenance.

  • LOCATION_ID : région Google Cloud dans laquelle se trouve ce cluster, par exemple us-central1.

Si un intervalle de maintenance est défini pour le cluster, le résultat de la commande inclut des lignes semblables aux suivantes :

maintenanceUpdatePolicy:
  maintenanceWindows:
  - day: TUESDAY
    startTime:
      hours: 23

Si la sortie n'inclut pas de section maintenanceUpdatePolicy, cela signifie qu'aucun intervalle de maintenance n'est défini pour le cluster.

Afficher les opérations de maintenance à venir sur un cluster

Console

  1. Accédez à la page Clusters.

    accéder aux clusters

  2. Recherchez votre cluster, puis consultez la colonne Maintenance pour obtenir des informations sur l'intervalle de maintenance à venir.

gcloud

Pour utiliser la gcloud CLI, vous pouvez installer et initialiser la Google Cloud CLI, ou utiliser Cloud Shell.

Pour afficher la maintenance planifiée à venir pour un cluster pour lequel un intervalle de maintenance est défini, exécutez la commande gcloud alloydb clusters describe :

gcloud alloydb clusters describe CLUSTER_ID \
  --region LOCATION_ID

Remplacez les éléments suivants :

  • CLUSTER_ID : cluster sur lequel définir l'intervalle de maintenance.

  • LOCATION_ID : région Google Cloud dans laquelle se trouve ce cluster, par exemple us-central1.

Si un événement de maintenance est planifié pour le cluster, le résultat de la commande inclut des lignes semblables aux suivantes :

maintenanceSchedule:
  startTime: 2024-07-03T09:46:40Z

Le code temporel au format UTC spécifie le moment auquel AlloyDB prévoit de commencer à mettre à jour le logiciel système de tous les nœuds de ce cluster.

Activer les notifications de maintenance

Les notifications de maintenance sont désactivées par défaut. Lorsque vous choisissez de recevoir des notifications par e-mail concernant les événements de maintenance AlloyDB à venir, tenez compte des points suivants :

  • Vous recevez une notification automatique concernant l'événement dès qu'il est planifié. Les événements de maintenance sont planifiés au moins une semaine à l'avance.
  • Les notifications de maintenance sont activées au niveau du projet Google Cloud . Vous ne pouvez pas choisir d'être informé d'un sous-ensemble de clusters dans un projet.
  • Vous ne pouvez activer les notifications que pour vous-même. Chaque utilisateur doit activer lui-même l'option pour recevoir des notifications de maintenance.

Pour en savoir plus, consultez Présentation de la maintenance.

Pour recevoir une notification automatique par e-mail chaque fois qu'un événement de maintenance est planifié ou annulé pour un cluster dont l'intervalle de maintenance est défini, procédez comme suit à l'aide de la console Google Cloud  :

  1. Accédez à la page Clusters.

    accéder aux clusters

  2. Cliquez sur un cluster dans la colonne Nom de la ressource.

  3. Sur la page Vue d'ensemble, dans Maintenance, cliquez sur Modifier sur la ligne Notifications:.

  4. Cliquez sur Communication.

  5. Sur la ligne AlloyDB, Intervalle de maintenance, sélectionnez le bouton d'activation/de désactivation dans la colonne E-mail.

Configurer une période de refus de maintenance

Pour empêcher les opérations de maintenance pendant une période spécifique, vous pouvez configurer une période de refus de maintenance. Vous pouvez définir un refus de maintenance sur un cluster exécutant la dernière version d'AlloyDB. Une période de refus de maintenance peut durer de un à 30 jours.

Les clusters avec des instances sur des versions antérieures ne sont pas toujours compatibles avec la définition de périodes de refus. Si vous devez définir une période de refus sur un cluster qui n'est pas suffisamment à jour, vous pouvez effectuer une maintenance en libre-service pour mettre à jour votre cluster.

Les périodes de refus existantes ne bloquent pas la maintenance en libre-service.

Définir des périodes de refus de maintenance

Pour configurer une période de refus de maintenance, définissez sa date de début, sa date de fin, ainsi que l'heure de début et de fin de l'intervalle.

Les dates de début et de fin doivent être au format suivant :

  • YYYY-MM-DD : indique une date spécifique.

Les dates de début et de fin, ainsi que l'heure, sont indiquées dans le fuseau horaire UTC.

gcloud

Pour utiliser la gcloud CLI, vous pouvez installer et initialiser la Google Cloud CLI, ou utiliser Cloud Shell.

Pour ajouter une période de refus de maintenance à un cluster AlloyDB, exécutez la commande gcloud alloydb clusters update avec les options --deny-maintenance-period-start-date, --deny-maintenance-period-end-date et --deny-maintenance-period-time :

gcloud alloydb clusters update CLUSTER_ID \
   --region LOCATION_ID \
   --deny-maintenance-period-start-date START_DATE \
   --deny-maintenance-period-end-date END_DATE \
   --deny-maintenance-period-time TIME

Remplacez les éléments suivants :

  • CLUSTER_ID : cluster à configurer pour la période sans maintenance.
  • LOCATION_ID : région Google Cloud dans laquelle se trouve ce cluster, par exemple us-central1.
  • START_DATE : date de début de la période sans maintenance au format UTC YYYY-MM-DD.
  • END_DATE : fin de la période sans maintenance au format UTC YYYY-MM-DD.
  • TIME : heure de la période sans maintenance au format UTC HH:MM. Les heures sont représentées au format 24 heures, où les valeurs sont comprises entre 00:00 et 23:59 (par exemple, 16:45).

REST v1

Cet exemple ajoute une période de refus de maintenance à un cluster existant. Pour obtenir la liste complète des paramètres de cet appel, consultez Méthode : projects.locations.clusters.patch.

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

  • CLUSTER_ID : cluster à configurer pour la période sans maintenance.
  • PROJECT_ID : ID du projet dans lequel le cluster est placé.
  • LOCATION_ID : région Google Cloud dans laquelle se trouve ce cluster, par exemple us-central1.
  • START_YEAR : année de début de la période sans maintenance, au format YYYY.
  • START_MONTH : mois de début de la période sans maintenance, au format MM. Le zéro initial pour les mois à un chiffre est facultatif. Par exemple, 2 et 02 sont tous deux valides pour février.
  • START_DAY : jour de début de la période sans maintenance au format DD. Le zéro initial pour les jours à un chiffre est facultatif. Par exemple, 1 et 01 sont tous deux valides pour le premier jour du mois.
  • END_YEAR : année de fin de la période sans maintenance, au format YYYY.
  • END_MONTH : mois de fin de la période sans maintenance, au format MM.
  • END_DAY : jour de fin de la période sans maintenance, au format DD.
  • HOURS : heure de la période sans maintenance au format 24 heures (par exemple, 16). Un zéro non significatif pour les heures à un chiffre est facultatif. Par exemple, 2 et 02 sont tous deux valides.
  • MINUTES : minute de la période sans maintenance qui accepte les valeurs comprises entre 0 et 59, par exemple 45. Le zéro initial pour les minutes à un seul chiffre est facultatif : 7 et 07 sont valides.

Pour ajouter une période de refus de maintenance, utilisez la requête PATCH suivante :

PATCH https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID?update_mask=maintenance_update_policy.deny_maintenance_periods

Le paramètre de requête maintenance_update_policy.deny_maintenance_periods indique à l'API de mettre à jour le champ denyMaintenancePeriods dans le bloc maintenanceUpdatePolicy.

Le corps JSON de la requête se présente comme suit :

{
 "maintenanceUpdatePolicy": {
   "denyMaintenancePeriods": [
     {
       "startDate": {
         "year": START_YEAR,
         "month": START_MONTH,
         "day": START_DAY
       },
       "endDate": {
         "year": END_YEAR,
         "month": END_MONTH,
         "day": END_DAY
       },
       "time": {
         "hours": HOURS,
         "minutes": MINUTES
       }
     }
   ]
 }
}

Refuser la maintenance à venir

Les périodes de refus de maintenance prévalent sur la maintenance planifiée. En cas de conflit de calendrier, la période de refus de maintenance remplace l'intervalle de maintenance programmé.

La définition d'une période de refus qui entre en conflit avec un événement de maintenance planifié n'annule pas immédiatement la maintenance et n'efface pas la planification. AlloyDB affiche la maintenance planifiée existante comme à venir, mais annule l'intervalle de maintenance planifié au début de l'heure planifiée.

Pour faciliter l'application des mises à jour critiques, le système n'autorise généralement pas la définition d'une période de refus permettant d'ignorer plus d'un événement de maintenance. Dans de rares cas, il peut appliquer une maintenance d'urgence en dehors des préférences de maintenance configurées.

Supprimer une période de refus de maintenance d'un cluster

Vous pouvez supprimer une période de refus de maintenance à tout moment.

gcloud

Pour utiliser la gcloud CLI, vous pouvez installer et initialiser la Google Cloud CLI, ou utiliser Cloud Shell.

Pour supprimer une période de refus de maintenance d'un cluster AlloyDB, exécutez la commande gcloud alloydb clusters update avec l'option --remove-deny-maintenance-period :

gcloud alloydb clusters update CLUSTER_ID --region LOCATION_ID  --remove-deny-maintenance-period

Remplacez les éléments suivants :

  • CLUSTER_ID : cluster duquel supprimer la période de refus de maintenance.
  • LOCATION_ID : région Google Cloud dans laquelle se trouve ce cluster, par exemple us-central1.

REST v1

Cet exemple supprime une période de refus de maintenance d'un cluster AlloyDB. Pour obtenir la liste complète des paramètres de cet appel, consultez Méthode : projects.locations.clusters.patch.

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

  • CLUSTER_ID : ID du cluster auquel vous ajoutez une période de refus de maintenance.
  • PROJECT_ID : ID du projet dans lequel le cluster est placé.
  • LOCATION_ID : région Google Cloud dans laquelle se trouve ce cluster, par exemple us-central1.

Pour supprimer une période de refus de maintenance, utilisez la requête PATCH suivante :

PATCH https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID?update_mask=maintenance_update_policy.deny_maintenance_periods

Le paramètre de requête maintenance_update_policy.deny_maintenance_periods indique à l'API de mettre à jour le champ denyMaintenancePeriods dans le bloc maintenanceUpdatePolicy.

Le corps JSON de la requête se présente comme suit :

{}

Étapes suivantes