Rechercher et définir des intervalles de maintenance

Cette page contient des procédures permettant de rechercher et de définir des intervalles de maintenance pour les instances Cloud SQL. Pour savoir comment et pourquoi Cloud SQL effectue des opérations de maintenance, consultez la page Présentation de la maintenance des instances Cloud SQL.

Avant de commencer

  1. Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
  2. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  3. Vérifiez que la facturation est activée pour votre projet Google Cloud.

  4. Installez Google Cloud CLI.
  5. Pour initialiser gcloudCLI, exécutez la commande suivante :

    gcloud init
  6. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  7. Vérifiez que la facturation est activée pour votre projet Google Cloud.

  8. Installez Google Cloud CLI.
  9. Pour initialiser gcloudCLI, exécutez la commande suivante :

    gcloud init

Définir un intervalle souhaité pour les opérations de maintenance sur une instance

Console

  1. Dans Google Cloud Console, accédez à la page Instances Cloud SQL.

    Accéder à la page Instances Cloud SQL

  2. Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
  3. Dans la section Maintenance, cliquez sur Modifier les préférences de maintenance.
  4. Dans la section Options de configuration, ouvrez Maintenance.
  5. Configurez les options ci-dessous :
    • Intervalle souhaité. Définissez la plage de jours et d'heures pendant laquelle des mises à jour peuvent être effectuées sur cette instance.
    • Ordre des mises à jour. Définissez l'ordre de mise à jour de cette instance, en fonction des mises à jour des autres instances. Définissez la planification sur À n'importe quel moment, Avant ou Plus tard. Les instances utilisant le paramètre Avant reçoivent des mises à jour jusqu'à une semaine avant les instances utilisant le paramètre Plus tard, si l'on compare des instances qui se trouvent au même emplacement.

gcloud

Avant d'utiliser la commande gcloud ci-dessous, effectuez les remplacements suivants :

  • instance-id : instance à replanifier.
  • day : jour auquel vous souhaitez que la maintenance soit effectuée. Définissez ce paramètre sur SUN, MON, TUE, WED, THU, FRI ou SAT.
  • hour : heure de la journée pour l'intervalle de maintenance, dans le fuseau horaire UTC (0-23).
gcloud sql instances patch instance-id \
--maintenance-window-day=day \
--maintenance-window-hour=hour
    
Pour plus d'informations, consultez la page sur gcloud sql instances patch.

Si vous modifiez le paramètre d'intervalle de maintenance alors que la maintenance de l'instance est déjà en cours ou planifiée, ces modifications ne prennent pas effet immédiatement. Ces modifications seront reflétées dans les futurs événements de maintenance.

Si vous avez activé les notifications de maintenance, Cloud SQL vous envoie des notifications après la planification de maintenance d'une instance, avec la date et l'heure exactes de la maintenance. Cloud SQL envoie ces notifications en fonction de l'ordre de maintenance des paramètres de mise à jour de votre instance, comme suit :

  • Si l'ordre des paramètres de mise à jour est défini sur Earlier, Cloud SQL envoie les notifications de maintenance au moins une semaine à l'avance.
  • Si l'ordre des paramètres de mise à jour est défini sur Later, Cloud SQL envoie des notifications de maintenance au moins deux semaines à l'avance.

Activer les notifications de maintenance

Avant d'activer les notifications de maintenance, vous devez définir un intervalle souhaité pour les opérations de maintenance sur une instance.

  1. Accédez à la page Communication. Accéder à la page Communication
  2. Sur la ligne Cloud SQL, Intervalle de maintenance, cochez la case d'option E-mail pour la définir sur ACTIVÉ.

Chaque utilisateur devant recevoir des notifications doit activer lui-même l'option.

Rechercher des notifications de maintenance dans Google Cloud Console

Vous pouvez consulter les notifications de maintenance à plusieurs endroits dans Google Cloud Console :

  • Dans le tableau de bord ACTIVITÉ, recherchez les instances marquées avec Maintenance SQL.
    Accéder au tableau de bord Activité

  • Lorsqu'une opération de maintenance est programmée pour une instance, la date de maintenance est indiquée sur la page Instances, dans la colonne Maintenance. La colonne Maintenance est généralement masquée, mais elle s'affiche automatiquement lorsqu'une opération de maintenance est programmée. Vous pouvez également sélectionner Maintenance dans le menu Options d'affichage des colonnes L'icône des options d'affichage des colonnes est constituée de trois lignes. si vous souhaitez que la colonne Maintenance soit toujours affichée.

  • Vous pouvez également sélectionner une instance pour accéder à la page Détails de l'instance. Si une opération de maintenance est programmée pour cette instance, un message s'affiche dans le volet Maintenance.
    Accéder à la page Instances Cloud SQL

Rechercher des intervalles de maintenance programmés à l'aide de l'API

gcloud

Avant d'utiliser la commande gcloud ci-dessous, effectuez les remplacements suivants :

  • instance-id : instance à replanifier.
gcloud sql instances describe instance-id
    

Recherchez la section scheduledMaintenance dans la réponse.

REST v1

Avant d'utiliser les données de requête ci-dessous, 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": "MYSQL_8_0"
}

Recherchez la section scheduledMaintenance dans la réponse.

REST v1beta4

Avant d'utiliser les données de requête ci-dessous, 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": "MYSQL_8_0"
}

Recherchez la section scheduledMaintenance dans la réponse.

Reprogrammer une maintenance planifiée

Vous pouvez reprogrammer la maintenance à l'aide de la console Google Cloud, de gcloud ou de l'API Cloud SQL Admin.

Console

  1. Dans Google Cloud Console, accédez à la page Instances Cloud SQL.

    Accéder à la page Instances Cloud SQL

  2. Filtrez sur le terme Maintenance pour répertorier toutes les instances pour lesquelles une maintenance est programmée.
  3. Dans la colonne Maintenance, cliquez sur Reprogrammer.
  4. Dans la boîte de dialogue Reprogrammer, indiquez si vous souhaitez appliquer la maintenance immédiatement, la reprogrammer à une heure spécifique au cours de la période d'abandon de 28 jours ou reporter l'intervalle de maintenance disponible.

gcloud

Avant d'utiliser la commande gcloud ci-dessous, effectuez les remplacements suivants :

  • instance-id : instance à replanifier.
  • reschedule-type : utilisez l'une des valeurs suivantes : IMMEDIATE, NEXT_AVAILABLE_WINDOW ou SPECIFIC_TIME.

    Si vous choisissez NEXT_AVAILABLE_WINDOW, la maintenance est reprogrammée au prochain intervalle de maintenance disponible après l'heure programmée actuelle.

  • reschedule-time : si vous sélectionnez SPECIFIC_TIME pour reschedule-type, vous devez également définir cette option pour spécifier les nouveaux jour et heure de la maintenance. Utilisez le format ISO 8601, par exemple 2020-01-16T16:56:00.000Z.
gcloud sql reschedule-maintenance instance-id \
--reschedule-type=reschedule-type \
[--schedule-time=reschedule-time]
  
Pour plus d'informations, consultez la page sur gcloud sql reschedule-maintenance.

Si vous souhaitez reprogrammer la maintenance jusqu'à 28 jours au maximum, vérifiez le numéro de version de gcloud. Si le numéro de version est inférieur à 390.0.0_RC00, réinstallez gcloud.

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
  • reschedule-type : utilisez l'une des valeurs suivantes : IMMEDIATE, NEXT_AVAILABLE_WINDOW ou SPECIFIC_TIME.

    Si vous choisissez NEXT_AVAILABLE_WINDOW, la maintenance est reprogrammée au prochain intervalle de maintenance disponible.

Méthode HTTP et URL :

POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/rescheduleMaintenance

Corps JSON de la requête :

{
  "reschedule": {
    "reschedule_type": "reschedule-type"
  }
}

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

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

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "startTime": "08:00",
  "endTime": "08:01",
  "operationType": RESCHEDULE_MAINTENANCE,
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

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
  • reschedule-type : utilisez l'une des valeurs suivantes : IMMEDIATE, NEXT_AVAILABLE_WINDOW ou SPECIFIC_TIME.

    Si vous choisissez NEXT_AVAILABLE_WINDOW, la maintenance est reprogrammée au prochain intervalle de maintenance disponible.

Méthode HTTP et URL :

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/rescheduleMaintenance

Corps JSON de la requête :

{
  "reschedule": {
    "reschedule_type": "reschedule-type"
  }
}

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

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

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "startTime": "08:00",
  "endTime": "08:01",
  "operationType": RESCHEDULE_MAINTENANCE,
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

Pour découvrir comment est formée la requête sous-jacente à l'API REST pour cette tâche, consultez la page dédiée à la méthode "instances:post" dans APIs Explorer.

Configurer une période de refus de maintenance

Vous pouvez configurer à tout moment jusqu'à une période de refus de maintenance sur une instance Cloud SQL. La période de refus de maintenance prévaut sur tout intervalle de maintenance programmé. En cas de conflit entre le moment où un intervalle de maintenance et une période de refus de maintenance doivent avoir lieu, la période de refus de maintenance remplace l'intervalle de maintenance.

Vous pouvez supprimer manuellement une période de refus de maintenance, qu'elle ait eu lieu ou non.

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. Une période de refus de maintenance peut durer de un à 90 jours.

Deux formats peuvent être utilisés pour les dates de début et de fin :

  • yyyy-mm-dd : indique une date spécifique.
  • mm-dd : indique une date récurrente tous les ans.

Les dates de début et de fin sont au format UTC. Pour définir le fuseau horaire, ajustez l'heure de début à l'aide du champ d'heure. Par exemple, la date de début = 2020-10-10 et l'heure = 07:00:00 indique l'heure de début 2020-10-10 07:00:00 UTC (2020-10-10 00:00:00 PST)

Pour l'heure, le format est le suivant : HH:mm:SS.

  • Les heures sont comprises entre 0 et 23 (inclus).
  • Les minutes et les secondes sont comprises entre 0 et 59 (inclus).

Console

  1. Dans Google Cloud Console, accédez à la page Instances Cloud SQL.

    Accéder à la page Instances Cloud SQL

  2. Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
  3. Dans la section Maintenance, cliquez sur Modifier les préférences de maintenance.
  4. Dans la section Période de refus de maintenance, définissez les dates de début et de fin.
  5. Dans la section Options avancées, vous pouvez éventuellement sélectionner Répéter tous les ans.
  6. Cliquez sur Enregistrer.

gcloud

Avant d'utiliser la commande gcloud ci-dessous, effectuez les remplacements suivants :

  • instance-id : ID de l'instance Cloud SQL
  • start-date : date de début de l'intervalle. Par exemple, 2021-11-29.
  • end-date : date de fin de l'intervalle. Par exemple, 2021-12-02.
  • time : heure de début et de fin de l'intervalle. Par exemple, 00:00:00.
gcloud sql instances patch instance-id\
 --deny-maintenance-period-start-date=start-date \
 --deny-maintenance-period-end-date=end-date \
 --deny-maintenance-period-time=time

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
  • start-date : date de début (aaaa-mm-jj) ou (mm-jj) pour une récurrence annuelle.
  • end-date : date de fin (aaaa-mm-jj) ou (mm-jj) pour une récurrence annuelle.
  • time : heures de début et de fin (HH:mm:SS)

Méthode HTTP et URL :

POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

Corps JSON de la requête :

{
  "settings":
  {
    "denyMaintenancePeriods": [{
      "start_date": "start-date",
      "end_date": "end-date"
      "time": "time"
    }]
  }
}

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

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

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "startTime": "08:00",
  "endTime": "08:01",
  "operationType": MAINTENANCE_DENY_PERIOD,
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

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
  • start-date : date de début (aaaa-mm-jj) ou (mm-jj) pour une récurrence annuelle.
  • end-date : date de fin (aaaa-mm-jj) ou (mm-jj) pour une récurrence annuelle.
  • time : heures de début et de fin (HH:mm:SS)

Méthode HTTP et URL :

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

Corps JSON de la requête :

{
  "settings":
  {
    "denyMaintenancePeriods": [{
      "start_date": "start-date",
      "end_date": "end-date"
      "time": "time"
    }]
  }
}

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

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

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "startTime": "08:00",
  "endTime": "08:01",
  "operationType": MAINTENANCE_DENY_PERIOD,
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

Supprimer une période de refus de maintenance

Console

  1. Dans Google Cloud Console, accédez à la page Instances Cloud SQL.

    Accéder à la page Instances Cloud SQL

  2. Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
  3. Dans la section Maintenance, cliquez sur Modifier les préférences de maintenance.
  4. Dans la section Refuser la période de maintenance, cliquez sur Effacer.
  5. Cliquez sur Enregistrer.

gcloud

Avant d'utiliser la commande gcloud ci-dessous, effectuez les remplacements suivants :

  • instance-id : ID de l'instance Cloud SQL
gcloud sql instances patch instance-id \
--remove-deny-maintenance-period

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 :

POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

Corps JSON de la requête :

{
  "settings":
  {
    "denyMaintenancePeriods": []
  }
}

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

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

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "startTime": "08:00",
  "endTime": "08:01",
  "operationType": MAINTENANCE_DENY_PERIOD,
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

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 :

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

Corps JSON de la requête :

{
  "settings":
  {
    "denyMaintenancePeriods": []
  }
}

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

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

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "startTime": "08:00",
  "endTime": "08:01",
  "operationType": MAINTENANCE_DENY_PERIOD,
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

Notifications liées à un refus de la période de maintenance

Les notifications d'intervalle de maintenance ne sont pas envoyées lorsque l'heure de maintenance planifiée se situe pendant la période de refus de maintenance. Dans ce cas, les notifications sont interdites par les paramètres de la période de refus de maintenance.

Si vous modifiez les paramètres de la période de refus de maintenance pour empêcher la maintenance à une heure précédemment planifiée, l'instance Cloud SQL ignore la maintenance et envoie une notification concernant l'annulation de la maintenance. Cloud SQL envoie cette notification d'annulation chaque fois qu'une mise à jour de l'instance est programmée.

Les notifications de maintenance planifiée sont envoyées pendant la période de refus de maintenance, à condition que la maintenance ait été programmée en dehors de cette période.

Étapes suivantes