Sauvegarder des instances Cloud SQL dans un coffre de sauvegarde

Cette page explique comment sauvegarder des instances Cloud SQL dans un coffre de sauvegarde, qui offre une immuabilité et une conservation forcée.

Dans la console Google Cloud , vous pouvez sauvegarder des instances Cloud SQL dans un coffre de sauvegarde en appliquant des plans de sauvegarde. Vous pouvez effectuer une sauvegarde de l'une des deux manières suivantes. Les deux méthodes vous permettent de stocker vos sauvegardes de manière sécurisée dans un coffre de sauvegarde, ce qui vous offre un moyen fiable de récupérer vos instances Cloud SQL en cas de perte de données ou d'autres événements inattendus.

  • Sauvegardes planifiées : sauvegardez automatiquement les instances Cloud SQL à des intervalles spécifiques, par exemple tous les jours, toutes les semaines, tous les mois ou tous les ans.
  • Sauvegardes à la demande. Vous pouvez créer des sauvegardes à la demande chaque fois que nécessaire. Les sauvegardes à la demande sont utiles pour créer des sauvegardes avant d'apporter des modifications importantes à vos bases de données ou pour la protection ponctuelle des données.

Avant de commencer

  1. Activez l'API Backup and DR là où se trouvent les instances Cloud SQL.

    Activer l'API

  2. Créer un coffre de sauvegarde.

  3. Créer un plan de sauvegarde.

  4. Attribuez des rôles et des autorisations IAM à l'utilisateur de sauvegarde.

  5. Accordez l'accès au coffre de sauvegarde dans le projet Cloud SQL.

  6. Configurez l'analyse de l'observabilité sur votre bucket pour surveiller les jobs de sauvegarde Backup and DR.

  7. Pour les instances avec CMEK : si l'instance Cloud SQL source est protégée par une clé de chiffrement gérée par le client (CMEK), vous devez attribuer le rôle Identity and Access Management roles/cloudkms.cryptoKeyEncrypterDecrypter à l'agent de service Backup and DR. Cette autorisation est requise sur la clé Cloud Key Management Service utilisée par l'instance Cloud SQL source.

    L'agent de service Backup and DR se trouve dans le projet où se trouve le coffre de sauvegarde. Attribuez ce rôle au compte de service avant d'essayer de protéger les instances Cloud SQL utilisant CMEK.

Rôles et autorisations IAM pour l'utilisateur de sauvegarde

Pour obtenir les autorisations nécessaires pour configurer des sauvegardes planifiées ou exécuter des sauvegardes à la demande, demandez à votre administrateur de vous accorder les rôles IAM suivants sur votre projet de coffre de sauvegarde :

Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Ces rôles prédéfinis contiennent les autorisations requises pour configurer des sauvegardes planifiées ou exécuter des sauvegardes à la demande. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour configurer des sauvegardes planifiées ou exécuter des sauvegardes à la demande :

  • backupdr.backupPlans.list
  • backupdr.backupPlanAssociations.createForCloudSqlInstance
  • backupdr.backupPlanAssociations.fetchForCloudSqlInstance
  • backupdr.backupPlanAssociations.updateForCloudSqlInstance
  • backupdr.backupPlanAssociations.list
  • backupdr.backupPlanAssociations.getForCloudSqlInstance
  • backupdr.backupPlanAssociations.triggerBackupForCloudSqlInstance
  • backupdr.backupPlanAssociations.deleteForCloudSqlInstance
  • backupdr.backupPlans.useForCloudSqlInstance
  • backupdr.locations.list
  • backupdr.operations.get
  • cloudasset.assets.searchAllResources

Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

Autorisations dynamiques requises pour chaque appel d'API

Le tableau suivant liste les autorisations dynamiques requises pour chaque appel d'API :

Ressource Action à effectuer sur la ressource Autorisations requises pour chaque appel d'API Projet auquel attribuer l'autorisation
Coffre de sauvegarde Créer un coffre de sauvegarde backupdr.backupVaults.create Projet administrateur
Supprimer le coffre de sauvegarde backupdr.backupVaults.delete Projet administrateur
Mettre à jour le coffre de sauvegarde backupdr.backupVaults.update Projet administrateur
Lister les coffres de sauvegarde backupdr.backupVaults.list Projet administrateur
Obtenir un coffre de sauvegarde backupdr.backupVaults.get Projet administrateur
Plan de sauvegarde Créer un plan de sauvegarde backupdr.backupPlans.create Projet administrateur
Supprimer le plan de sauvegarde backupdr.backupPlans.delete Projet administrateur
Obtenir un plan de sauvegarde backupdr.backupPlans.get Projet administrateur
Lister les plans de sauvegarde backupdr.backupPlans.list Projet administrateur
Mettre à jour le plan de sauvegarde backupdr.backupPlans.update Projet administrateur
Obtenir la révision d'un plan de sauvegarde backupdr.backupPlanRevisions.get Projet administrateur
Lister les révisions de plan de sauvegarde backupdr.backupPlanRevisions.list Projet administrateur
Créer une révision de plan de sauvegarde backupdrproducer.backupPlanRevisions.create Projet administrateur
Supprimer la révision du plan de sauvegarde backupdrproducer.backupPlanRevisions.delete Projet administrateur
Associations de plans de sauvegarde Créer une association de plan de sauvegarde cloudsql.instances.updateBackupDrConfig
backupdr.backupPlanAssociations.createForCloudSqlInstance
backupdr.backupPlans.useForCloudSqlInstance
Projet de charge de travail
Projet de charge de travail
Projet administrateur
Supprimer l'association de plan de sauvegarde backupdr.backupPlanAssociations.deleteForCloudSqlInstance
cloudsql.instances.updateBackupDrConfig
Projet de charge de travail
Projet de charge de travail
Déclencher une sauvegarde à la demande sur l'association de plan de sauvegarde backupdr.backupPlanAssociations.triggerBackupForCloudSqlInstance Projet de charge de travail
Obtenir l'association du plan de sauvegarde backupdr.backupPlanAssociations.getForCloudSqlInstance Projet de charge de travail
Répertorier les associations de plans de sauvegarde backupdr.backupPlanAssociations.list Projet de charge de travail
Récupérer les associations de plans de sauvegarde backupdr.backupPlanAssociations.fetchForCloudSqlInstance Projet de charge de travail
Modifier les associations de plans de sauvegarde backupdr.backupPlanAssociations.updateForCloudSqlInstance Projet de charge de travail
Source de données Obtenir une source de données backupdr.bvdataSources.get Projet administrateur
Répertorier les sources de données backupdr.backupPlanAssociations.list Projet administrateur
Restauration à un moment précis backupdr.bvdataSources.useReadOnlyForCloudSqlInstance Projet administrateur
Sauvegardes Accéder à une sauvegarde backupdr.bvbackups.get Projet administrateur
Répertorier des sauvegardes backupdr.bvbackups.list Projet administrateur
Récupérer les sauvegardes backupdr.bvbackups.fetchForCloudSqlInstance Projet administrateur
Supprimer une sauvegarde backupdr.bvbackups.delete Projet administrateur
Restaurer une sauvegarde backupdr.bvbackups.useReadOnlyForCloudSqlInstance Projet administrateur
Références des sources de données Obtenir la référence de la source de données backupdr.dataSourceReferences.getForCloudSqlInstance Projet de charge de travail
Répertorier les références de sources de données backupdr.dataSourceReferences.list Projet de charge de travail
Récupérer les références de la source de données backupdr.dataSourceReferences.fetchForCloudSqlInstance Projet de charge de travail
Opérations Répertorier les opérations backupdr.operations.list Projet respectif
Obtenir des opérations backupdr.operations.get Projet respectif

Accorder l'accès au coffre de sauvegarde dans le projet Cloud SQL

Pour sauvegarder une instance Cloud SQL dans un projet différent de celui où le coffre de sauvegarde est créé, vous devez attribuer le rôle IAM Opérateur Backup and DR pour Cloud SQL (roles/backupdr.cloudSqlOperator) à l'agent de service du coffre de sauvegarde dans le projet Cloud SQL. Si le projet de coffre de sauvegarde dans lequel les sauvegardes seront stockées est différent du projet Cloud SQL, attribuez le rôle à l'agent de service du coffre de sauvegarde dans le projet Cloud SQL.

Pour sauvegarder une instance Cloud SQL dans le même projet que celui où le coffre de sauvegarde est créé, aucun rôle n'est requis.

Pour savoir comment attribuer des rôles à l'agent de service du coffre de sauvegarde dans le projet que vous souhaitez sauvegarder, consultez Attribuer un rôle à l'agent de service.

Configurer une sauvegarde planifiée

Suivez les instructions ci-dessous pour configurer une sauvegarde planifiée pour les instances Cloud SQL.

Console

  1. Dans la console Google Cloud , accédez à la page Sauvegardes protégées.

    Accéder aux sauvegardes stockées dans un vault

  2. Cliquez sur Planifier la sauvegarde.

  3. Dans la liste Type de ressource, sélectionnez Cloud SQL.

  4. Dans la liste Projet, sélectionnez un projet dans lequel se trouve l'instance Cloud SQL.

  5. Dans la liste Région, sélectionnez la région où se trouvent vos instances.

  6. Dans la liste Ressources, cliquez sur Parcourir. Choisissez l'instance Cloud SQL que vous souhaitez sauvegarder, puis cliquez sur OK.

  7. Cliquez sur Continuer.

  8. Dans la liste Plan de sauvegarde, cliquez sur Sélectionner.

  9. Choisissez un plan de sauvegarde pour protéger les instances Cloud SQL.

  10. Cliquez sur OK.

  11. Vérifiez les détails de la sauvegarde, puis cliquez sur Planifier.

gcloud

  1. Créez un plan de sauvegarde et une instance Cloud SQL.

  2. Configurez une sauvegarde planifiée à l'aide de la commande gcloud backup-dr backup-plan-associations create :

      gcloud backup-dr backup-plan-associations create BACKUP_PLAN_ASSOCIATION_NAME \
          --location=CSQL_REGION \
          --project=CSQL_PROJECT_ID \
          --resource=projects/CSQL_PROJECT_ID/instances/CSQL_INSTANCE_ID \
          --resource-type=sqladmin.googleapis.com/Instance \
          --backup-plan=projects/PROJECT_ID/locations/LOCATION/backupPlans/BACKUP_PLAN
    

    Remplacez les éléments suivants :

    • BACKUP_PLAN_ASSOCIATION_NAME : nom de l'association de plan de sauvegarde.

    • CSQL_REGION : région où se trouvent les instances Cloud SQL.

    • CSQL_PROJECT_ID : nom du projet dans lequel se trouvent les instances Cloud SQL.

    • CSQL_INSTANCE_ID : ID de l'instance Cloud SQL.

    • PROJECT_ID : nom du projet dans lequel se trouvent les plans de sauvegarde.

    • LOCATION : emplacement de l'instance.

    • BACKUP_PLAN : nom du plan de sauvegarde.

Terraform

Vous pouvez utiliser une ressource Terraform pour configurer une sauvegarde planifiée.


# Before creating a backup plan association, you need to create backup plan (google_backup_dr_backup_plan)
# and Cloud SQL Instance (google_sql_database_instance).
resource "google_backup_dr_backup_plan_association" "csql_association" {
  provider                   = google-beta
  location                   = "us-central1"
  backup_plan_association_id = "my-csql-bpa"
  resource                   = "projects/${google_sql_database_instance.default.project}/instances/${google_sql_database_instance.default.name}"
  resource_type              = "sqladmin.googleapis.com/Instance"
  backup_plan                = google_backup_dr_backup_plan.csql_default.name
}

Modifier le plan de sauvegarde associé à une instance Cloud SQL

Vous pouvez remplacer le plan de sauvegarde appliqué à une instance Cloud SQL par un autre plan de sauvegarde. Le plan de sauvegarde vers lequel vous souhaitez basculer doit répondre aux critères suivants :

  • Le plan de sauvegarde se trouve dans le même coffre de sauvegarde.

  • Le plan de sauvegarde se trouve dans la même région que l'instance Cloud SQL.

Suivez les instructions ci-dessous pour modifier le plan de sauvegarde associé à une instance Cloud SQL.

Console

  1. Dans la console Google Cloud , accédez à la page Sauvegardes protégées de Backup and DR.

    Accéder aux sauvegardes stockées dans un vault

    La page Sauvegardes dans un coffre ne liste que les instances auxquelles des plans de sauvegarde sont (ou ont été) appliqués ou dont les sauvegardes sont stockées dans un coffre de sauvegarde au sein d'un projet.

  2. Sélectionnez la source de données qui bénéficiera d'un autre forfait. Sur la page d'informations de la sauvegarde ou dans le menu , sélectionnez Modifier le plan de sauvegarde. La fenêtre Sélectionner un plan de sauvegarde ne liste que les plans de sauvegarde valides pour cette instance.

  3. Sélectionnez un plan de sauvegarde, puis cliquez sur Appliquer.

gcloud

  • Modifiez le plan de sauvegarde attribué.

      gcloud backup-dr backup-plan-associations update BACKUP_PLAN_ASSOCIATION_NAME \
      --workload-project=INSTANCE_PROJECT_ID \
      --location=INSTANCE_REGION \
      --backup-plan=BACKUP_PLAN \
      --project=SELECTED_BACKUP_PLAN_PROJECT_ID
    

    Remplacez les éléments suivants :

    • BACKUP_PLAN_ASSOCIATION_NAME : nom de la ressource d'association du plan de sauvegarde.

    • INSTANCE_PROJECT_ID : ID du projet de l'instance Cloud SQL.

    • INSTANCE_REGION : emplacement de l'instance Cloud SQL.

    • BACKUP_PLAN : nom du plan de sauvegarde vers lequel vous basculez.

    • SELECTED_BACKUP_PLAN_PROJECT_ID : ID du projet du plan de sauvegarde sélectionné.

Lister les instances pour lesquelles des sauvegardes sont planifiées

Suivez les instructions ci-dessous pour lister les instances Cloud SQL pour lesquelles des sauvegardes sont planifiées.

Console

  1. Dans la console Google Cloud , accédez à la page Sauvegardes protégées.

    Accéder aux sauvegardes stockées dans un vault

  2. En haut du tableau, sélectionnez Filtrer le tableau > Type de ressource. Sélectionnez Cloud SQL. Cela limite l'affichage aux instances Cloud SQL auxquelles des plans de sauvegarde sont appliqués et dont les sauvegardes sont stockées dans un coffre de sauvegarde au sein d'un projet.

gcloud

Répertoriez les instances Cloud SQL pour lesquelles des sauvegardes sont planifiées à l'aide de la commande gcloud alpha backup-dr backup-plan-associations fetch-for-resource-type :

  gcloud alpha backup-dr backup-plan-associations fetch-for-resource-type sqladmin.googleapis.com/Instance \
  --location=LOCATION \
  --project=PROJECT_ID

Remplacez les éléments suivants :

  • LOCATION : emplacement des sauvegardes planifiées.

  • PROJECT_ID : nom du projet dans lequel se trouvent les instances Cloud SQL.

Sauvegardes à la demande

Vous pouvez lancer une sauvegarde à la demande pour une instance Cloud SQL avec un plan de sauvegarde en déclenchant l'exécution immédiate de la règle de sauvegarde de votre choix. Les sauvegardes à la demande ne capturent généralement que les données modifiées depuis la dernière sauvegarde incrémentielle.

Lorsque vous créez une sauvegarde à la demande, vous pouvez choisir une règle dans le plan de sauvegarde associé à l'instance Cloud SQL. Cette règle détermine quand la sauvegarde à la demande est supprimée. Vous pouvez vérifier l'état du job de sauvegarde sur la page Jobs. Pour en savoir plus, consultez Surveiller les jobs de sauvegarde et de restauration dans la console Google Cloud .

Créer une sauvegarde à la demande

Suivez les instructions ci-dessous pour créer une sauvegarde à la demande.

Console

  1. Dans la console Google Cloud , accédez à la page Sauvegardes protégées.

    Accéder aux sauvegardes stockées dans un vault

    La page Sauvegardes dans un coffre ne liste que les ressources de données auxquelles sont appliqués des plans de sauvegarde et dont les sauvegardes sont stockées dans un coffre de sauvegarde au sein d'un projet.

  2. Sélectionnez la ressource à sauvegarder. Dans le menu ou sur la page d'informations de la ressource, sélectionnez Créer une sauvegarde à la demande.

  3. Dans la fenêtre Créer une sauvegarde à la demande, sélectionnez une règle de sauvegarde à utiliser, puis cliquez sur Créer.

  4. Pour afficher l'état du job de sauvegarde à la demande, cliquez sur Notifications.

gcloud

  1. Créez une sauvegarde à la demande. Lancez une sauvegarde à la demande à l'aide d'une association de plan de sauvegarde existante. Spécifiez un ID de règle pour déterminer la période d'expiration de cette sauvegarde unique à la demande :

    gcloud backup-dr backup-plan-associations trigger-backup BACKUP_PLAN_ASSOCIATION_NAME \
    --backup-rule-id=RULE_ID \
    --project=PROJECT_ID \
    --location=LOCATION \
    [--no-async]
    

    Remplacez les éléments suivants :

    • BACKUP_PLAN_ASSOCIATION_NAME : nom de l'association de plan de sauvegarde.

      .
    • RULE_ID : nom de la règle de sauvegarde que vous souhaitez associer pour exécuter des sauvegardes à la demande.

    • PROJECT_ID : nom du projet.

    • LOCATION : emplacement des sauvegardes planifiées.

Supprimer la protection d'une instance Cloud SQL

Vous pouvez supprimer la protection d'une instance Cloud SQL en supprimant le plan de sauvegarde qui lui est appliqué. La suppression d'un plan de sauvegarde d'une instance Cloud SQL ne supprime pas les sauvegardes créées pendant l'utilisation du plan de sauvegarde. Vous pouvez toujours accéder à ces sauvegardes existantes et les gérer jusqu'à leur expiration.

Suivez les instructions ci-dessous pour supprimer la protection d'une instance Cloud SQL :

Console

  1. Dans la console Google Cloud , accédez à la page Sauvegardes protégées.

    Accéder aux sauvegardes stockées dans un vault

  2. Cliquez sur le nom de la base de données dont vous souhaitez supprimer un plan de sauvegarde.

  3. Sélectionnez Supprimer le plan de sauvegarde.

gcloud

Annuler la protection d'une instance Cloud SQL.

  gcloud backup-dr backup-plan-associations delete BACKUP_PLAN_ASSOCIATION_NAME \
  --project=PROJECT_ID \
  --location=LOCATION

Remplacez les éléments suivants :

  • BACKUP_PLAN_ASSOCIATION_NAME : nom de l'association de plan de sauvegarde que vous souhaitez supprimer.

  • PROJECT_ID : nom du projet.

  • LOCATION : emplacement de la sauvegarde planifiée.

Limites

Pour les instances Cloud SQL chiffrées avec une CMEK, Backup and DR valide les autorisations de manière proactive. Si l'agent de service Backup and DR du projet du coffre de sauvegarde ne dispose pas du rôle roles/cloudkms.cryptoKeyEncrypterDecrypter nécessaire sur la clé KMS de l'instance source, la création de l'association de plan de sauvegarde échoue. Assurez-vous que les autorisations IAM requises sont en place avant d'associer un plan de sauvegarde.

Étapes suivantes