Cette page explique comment utiliser la récupération à un moment précis (PITR) pour restaurer votre instance Cloud SQL principale.
Pour en savoir plus sur la récupération PITR, consultez Récupération à un moment précis (PITR).
Par défaut, la récupération PITR est activée lorsque vous créez une instance Cloud SQL Enterprise Plus, que vous utilisiez la console Google Cloud, gcloud CLI, Terraform ou L'API Cloud SQL Admin
Si vous créez une instance Cloud SQL Enterprise dans la console Google Cloud, la récupération PITR est activée par défaut. Sinon, si vous créez l'instance à l'aide de gcloud CLI, de Terraform ou de l'API Cloud SQL Admin, vous devez activer manuellement la récupération à un moment précis.
Stockage des journaux pour la récupération PITR
Cloud SQL utilise l'archivage WAL (Write-Ahead Logging) pour la récupération PITR.Le 9 janvier 2023, nous avons lancé le stockage des journaux WAL pour la récupération PITR dans Cloud Storage. Depuis ce lancement, les conditions suivantes s'appliquent :
- Toutes les instances de l'édition Cloud SQL Enterprise Plus stockent leurs journaux WAL dans Cloud Storage. Seules les instances Cloud SQL Enterprise Plus que vous mettez à niveau à partir de l'édition Cloud SQL Enterprise et pour lesquelles la récupération PITR était activée avant le 9 janvier 2023 continuent de stocker leurs journaux sur le disque.
- Les instances Cloud SQL Enterprise créées avec la récupération PITR activée avant le 9 janvier 2023 continuent de stocker leurs journaux sur le disque.
- Si vous mettez à niveau une instance Cloud SQL Enterprise après le 15 août 2024 qui stocke les journaux de transactions pour la récupération PITR sur disque vers l'édition Cloud SQL Enterprise Plus, le processus de mise à niveau change l'emplacement de stockage des journaux de transactions utilisés pour la récupération à un moment précis vers Cloud Storage. Pour en savoir plus, consultez Mettre à niveau une instance vers Cloud SQL Enterprise Plus en utilisant la mise à niveau sur place.
- Toutes les instances Cloud SQL Enterprise que vous créez avec la récupération PITR activée après le 9 janvier 2023 stockent les journaux dans Cloud Storage.
Pour les instances qui ne stockent les journaux WAL (Write-Ahead Logging) que sur disque, vous pouvez changer l'emplacement de stockage des journaux de transactions utilisés pour la récupération PITR du disque vers Cloud Storage à l'aide de gcloud CLI ou de l'API Cloud SQL Admin, sans temps d'arrêt. Pour en savoir plus, consultez la section Passer au stockage des journaux de transactions dans Cloud Storage.
Durée de conservation des journaux
Pour savoir si une instance stocke les journaux utilisés pour la récupération PITR dans Cloud Storage, utilisez la section Vérifier l'emplacement de stockage des journaux de transactions utilisés pour la récupération à un moment précis.
Après vous être connecté à une base de données de l'instance à l'aide d'un client PostgreSQL tel que psql
ou pgAdmin
, exécutez la commande suivante : show archive_command
. Si des journaux WAL sont archivés dans Cloud Storage, -async_archive -remote_storage
s'affiche.
Les journaux des autres instances existantes sur lesquelles la récupération PITR est activée continuent d'être conservés sur le disque.
Si les journaux sont stockés dans Cloud Storage, ils sont importés par Cloud SQL toutes les cinq minutes ou moins. Par conséquent, si une instance Cloud SQL est disponible, vous pouvez en récupérer la version la plus récente. Toutefois, si l'instance est indisponible, l'objectif de point de récupération est généralement de cinq minutes ou moins. Utilisez la gcloud CLI ou l'API Admin pour vérifier la dernière heure à laquelle vous pouvez restaurer l'instance et effectuer une récupération à ce moment précis.
Les journaux préalables utilisés pour la récupération PITR sont automatiquement supprimés, ainsi que leur sauvegarde automatique associée, généralement après que la valeur définie pour transactionLogRetentionDays
soit atteinte. Il s'agit du nombre de jours de journaux de transactions que Cloud SQL conserve pour la récupération PITR. Pour l'édition Cloud SQL Enterprise Plus, le nombre de jours de journaux de transactions conservés peut être compris entre 1 et 35. Pour Cloud SQL Enterprise, la valeur peut être comprise entre 1 et 7.
Lorsque vous restaurez une sauvegarde sur une instance Cloud SQL avant d'activer la récupération PITR, vous perdez les journaux WAL qui assurent l'opérabilité de la récupération PITR.
Pour les instances où la clé de chiffrement gérée par le client (CMEK) est activée, les journaux préalables sont chiffrés à l'aide de la dernière version de CMEK. Pour effectuer une restauration, toutes les versions de la clé les plus récentes correspondant au nombre de jours configurés pour le paramètre retained-transaction-log-days
doivent être disponibles.
Pour les instances disposant de journaux préalables stockés dans Cloud Storage, les journaux sont stockés dans la même région que l'instance principale. Ce stockage de journaux (jusqu'à 35 jours pour l'édition Cloud SQL Enterprise Plus et sept jours pour l'édition Cloud SQL Enterprise, la durée maximale pour la récupération à un moment précis) ne génère aucun coût supplémentaire par instance.
Journaux et utilisation du disque
Si la récupération PITR est activée sur votre instance et si la taille de vos journaux préalables sur le disque pose problème :
Vous pouvez changer l'emplacement de stockage des journaux utilisés pour la récupération PITR du disque vers Cloud Storage, sans temps d'arrêt, à l'aide de gcloud CLI ou de l'API Cloud SQL Admin.
Vous pouvez mettre à niveau votre instance vers l'édition Cloud SQL Enterprise Plus.
Vous pouvez augmenter l'espace de stockage disponible sur celle-ci. Sachez toutefois qu'une augmentation importante de l'espace disque occupé par vos journaux préalables peut être temporaire.
Nous vous recommandons d'activer l'augmentation automatique de l'espace de stockage pour éviter tout problème de stockage inattendu. Cette recommandation ne s'applique que si la récupération PITR est activée sur votre instance et que vos journaux sont stockés sur le disque.
Vous pouvez désactiver la récupération PITR si vous souhaitez supprimer les journaux et récupérer de l'espace de stockage. La réduction des journaux préalables ne réduit pas la taille du disque provisionné pour l'instance.
Les journaux sont supprimés définitivement une fois par jour, et non de manière continue. Si vous définissez la durée de conservation des journaux sur une valeur de deux jours, cela signifie qu'au moins deux jours et au plus trois jours de journaux sont conservés. Nous vous recommandons de définir le nombre de sauvegardes à une valeur correspondant au nombre de jours de conservation des journaux plus un.
Par exemple, si vous spécifiez
7
pour la valeur du paramètretransactionLogRetentionDays
, définissez le nombre deretainedBackups
sur8
pour le paramètrebackupRetentionSettings
.
Activer la récupération PITR
Lorsque vous créez une instance dans Google Cloud Console, les options de sauvegardes automatisées et d'activation de la récupération à un moment précis sont automatiquement activées.La procédure suivante permet d'activer la récupération PITR sur une instance principale existante.
Console
-
Dans Google Cloud Console, accédez à la page Instances Cloud SQL.
- Ouvrez le menu "Autres actions" au niveau de l'instance pour laquelle vous souhaitez activer la récupération PITR, puis cliquez sur Modifier.
- Sous Personnaliser votre instance, développez la section Protection des données.
- Cochez la case Activer la récupération à un moment précis.
- Dans le champ Jours de journaux, saisissez le nombre de jours de conservation des journaux, compris entre 1 et 35 pour l'édition Cloud SQL Enterprise Plus, ou entre 1 et 7 pour l'édition Cloud SQL Enterprise.
- Cliquez sur Enregistrer.
gcloud
- Affichez la présentation de l'instance :
gcloud sql instances describe INSTANCE_NAME
- Si la mention
enabled: false
s'affiche dans la sectionbackupConfiguration
, activez les sauvegardes planifiées :gcloud sql instances patch INSTANCE_NAME \ --backup-start-time=HH:MM
Spécifiez le paramètre
backup-start-time
au format 24 heures dans le fuseau horaire UTC ± 00. - Activez la récupération PITR :
gcloud sql instances patch INSTANCE_NAME \ --enable-point-in-time-recovery
Si vous activez la récupération PITR sur une instance principale, vous pouvez également configurer le nombre de jours pendant lesquels vous souhaitez conserver les journaux de transactions en ajoutant le paramètre suivant :
--retained-transaction-log-days=RETAINED_TRANSACTION_LOG_DAYS
- Confirmez la modification :
gcloud sql instances describe INSTANCE_NAME
Dans la section
backupConfiguration
, vous voyez le messagepointInTimeRecoveryEnabled: true
s'afficher si la modification a réussi.
Terraform
Pour activer la récupération PITR, utilisez une ressource Terraform.
Appliquer les modifications
Pour appliquer votre configuration Terraform dans un projet Google Cloud, suivez les procédures des sections suivantes.
Préparer Cloud Shell
- Lancez Cloud Shell.
-
Définissez le projet Google Cloud par défaut dans lequel vous souhaitez appliquer vos configurations Terraform.
Vous n'avez besoin d'exécuter cette commande qu'une seule fois par projet et vous pouvez l'exécuter dans n'importe quel répertoire.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Les variables d'environnement sont remplacées si vous définissez des valeurs explicites dans le fichier de configuration Terraform.
Préparer le répertoire
Chaque fichier de configuration Terraform doit avoir son propre répertoire (également appelé module racine).
-
Dans Cloud Shell, créez un répertoire et un nouveau fichier dans ce répertoire. Le nom du fichier doit comporter l'extension
.tf
, par exemplemain.tf
. Dans ce tutoriel, le fichier est appelémain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Si vous suivez un tutoriel, vous pouvez copier l'exemple de code dans chaque section ou étape.
Copiez l'exemple de code dans le fichier
main.tf
que vous venez de créer.Vous pouvez également copier le code depuis GitHub. Cela est recommandé lorsque l'extrait Terraform fait partie d'une solution de bout en bout.
- Examinez et modifiez les exemples de paramètres à appliquer à votre environnement.
- Enregistrez les modifications.
-
Initialisez Terraform. Cette opération n'est à effectuer qu'une seule fois par répertoire.
terraform init
Vous pouvez également utiliser la dernière version du fournisseur Google en incluant l'option
-upgrade
:terraform init -upgrade
Appliquer les modifications
-
Examinez la configuration et vérifiez que les ressources que Terraform va créer ou mettre à jour correspondent à vos attentes :
terraform plan
Corrigez les modifications de la configuration si nécessaire.
-
Appliquez la configuration Terraform en exécutant la commande suivante et en saisissant
yes
lorsque vous y êtes invité :terraform apply
Attendez que Terraform affiche le message "Apply completed!" (Application terminée).
- Ouvrez votre projet Google Cloud pour afficher les résultats. Dans la console Google Cloud, accédez à vos ressources dans l'interface utilisateur pour vous assurer que Terraform les a créées ou mises à jour.
Supprimer les modifications
Pour supprimer vos modifications, procédez comme suit :
- Pour désactiver la protection contre la suppression, définissez l'argument
deletion_protection
surfalse
dans le fichier de configuration Terraform.deletion_protection = "false"
- Appliquez la configuration Terraform mise à jour en exécutant la commande suivante et en saisissant
yes
lorsque vous y êtes invité :terraform apply
-
Supprimez les ressources précédemment appliquées à votre configuration Terraform en exécutant la commande suivante et en saisissant
yes
à la requête :terraform destroy
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 principale ou de l'instance répliquée avec accès en lecture que vous configurez pour la haute disponibilité.
- START_TIME : heure (en heures et en minutes).
Méthode HTTP et URL :
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
Corps JSON de la requête :
{ "settings": { "backupConfiguration": { "startTime": "START_TIME", "enabled": true, "pointInTimeRecoveryEnabled": true } } }
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
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 principale ou de l'instance répliquée avec accès en lecture que vous configurez pour la haute disponibilité.
- START_TIME : heure (en heures et en minutes).
Méthode HTTP et URL :
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME
Corps JSON de la requête :
{ "settings": { "backupConfiguration": { "startTime": "START_TIME", "enabled": true, "pointInTimeRecoveryEnabled": true } } }
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
Effectuer une récupération PITR sur une instance indisponible
Console
Vous pouvez être amené à récupérer une instance indisponible dans une autre zone pour les raisons suivantes:
- La zone actuelle dans laquelle l'instance est configurée n'est pas accessible. L'état de cette instance est
FAILED
. - L'instance est en cours de maintenance. L'état de cette instance est
MAINTENANCE
.
Pour restaurer une instance indisponible, procédez comme suit :
-
Dans Google Cloud Console, accédez à la page Instances Cloud SQL.
- Recherchez la ligne de l'instance à cloner.
- Dans la colonne Actions, cliquez sur le menu Autres actions.
- Cliquez sur Create clone (Créer un clone).
- Sur la page Créer un clone, procédez comme suit :
- Dans le champ ID d'instance, mettez à jour l'ID d'instance si nécessaire.
- Cliquez sur Cloner l'instance à un moment antérieur.
- Dans le champ Moment précis, sélectionnez la date et l'heure à partir desquelles vous souhaitez cloner les données. Il est ainsi possible de récupérer l'état de l'instance à ce moment précis.
- Cliquez sur Create clone (Créer un clone).
Pendant l'initialisation du clone, vous êtes redirigé vers la page contenant la liste des instances.
gcloud
Vous pouvez restaurer une instance indisponible dans une autre zone, car la zone dans laquelle l'instance est configurée n'est pas accessible.
gcloud sql instances clone SOURCE_INSTANCE_NAME TARGET_INSTANCE_NAME \ --point-in-time DATE_AND_TIME_STAMP \ --preferred-zone ZONE_NAME \ --preferred-secondary-zone SECONDARY_ZONE_NAME
L'utilisateur ou le compte de service qui exécute la commande gcloud sql instances clone
doit disposer de l'autorisation cloudsql.instances.clone
. Pour en savoir plus sur les autorisations requises pour exécuter des commandes gcloud CLI, consultez la page Autorisations Cloud SQL.
REST v1
Vous pouvez restaurer une instance indisponible dans une autre zone, car la zone dans laquelle l'instance est configurée n'est pas accessible.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID du projet.
- SOURCE_INSTANCE_NAME : nom de l'instance source.
- TARGET_INSTANCE_NAME : nom de l'instance cible (clonée).
- DATE_AND_TIME_STAMP : horodatage de l'instance source dans le fuseau horaire UTC et au format RFC 3339 (par exemple,
2012-11-15T16:19:00.094Z
). - ZONE_NAME : facultatif. Nom de la zone principale pour l'instance cible. Cette option permet de spécifier une zone différente pour l'instance Cloud SQL que vous souhaitez cloner. Pour une instance régionale, cette zone remplace la zone principale, mais la zone secondaire reste identique à celle de l'instance source.
- SECONDARY_ZONE_NAME : facultatif. Nom de la zone secondaire pour l'instance cible. Cette option permet de spécifier une zone différente pour l'instance Cloud SQL que vous souhaitez cloner.
Méthode HTTP et URL :
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/SOURCE_INSTANCE_NAME/clone
Corps JSON de la requête :
{ "cloneContext": { "destinationInstanceName": "TARGET_INSTANCE_NAME", "pointInTime": "DATE_AND_TIME_STAMP", "preferredZone": "ZONE_NAME", "preferredSecondaryZone": "SECONDARY_ZONE_NAME" } }
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
L'utilisateur ou le compte de service qui utilise la méthode API instances.clone
doit disposer de l'autorisation cloudsql.instances.clone
. Pour en savoir plus sur les autorisations requises pour utiliser des méthodes d'API, consultez la page Autorisations Cloud SQL.
REST v1beta4
Vous pouvez restaurer une instance indisponible dans une autre zone, car la zone dans laquelle l'instance est configurée n'est pas accessible.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID du projet.
- SOURCE_INSTANCE_NAME : nom de l'instance source.
- TARGET_INSTANCE_NAME : nom de l'instance cible (clonée).
- DATE_AND_TIME_STAMP : horodatage de l'instance source dans le fuseau horaire UTC et au format RFC 3339 (par exemple,
2012-11-15T16:19:00.094Z
). - ZONE_NAME : facultatif. Nom de la zone principale de l'instance cible. Cette option permet de spécifier une zone différente pour l'instance Cloud SQL que vous souhaitez cloner. Pour une instance régionale, cette zone remplace la zone principale, mais la zone secondaire reste identique à celle de l'instance source.
- SECONDARY_ZONE_NAME : facultatif. Nom de la zone secondaire pour l'instance cible. Cette option permet de spécifier une zone différente pour l'instance Cloud SQL que vous souhaitez cloner.
Méthode HTTP et URL :
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/SOURCE_INSTANCE_NAME/clone
Corps JSON de la requête :
{ "cloneContext": { "destinationInstanceName": "TARGET_INSTANCE_NAME", "pointInTime": "DATE_AND_TIME_STAMP", "preferredZone": "ZONE_NAME", "preferredSecondaryZone": "SECONDARY_ZONE_NAME" } }
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
L'utilisateur ou le compte de service qui utilise la méthode API instances.clone
doit disposer de l'autorisation cloudsql.instances.clone
. Pour en savoir plus sur les autorisations requises pour utiliser des méthodes d'API, consultez la page Autorisations Cloud SQL.
Obtenir la dernière heure de récupération
Pour une instance disponible, vous pouvez effectuer la récupération PITR jusqu'à l'heure la plus récente. Si l'instance n'est pas disponible et que les journaux d'instance sont stockés dans Cloud Storage, vous pouvez récupérer la dernière heure de récupération et effectuer la récupération PITR. Dans les deux cas, vous pouvez restaurer l'instance dans une autre zone principale ou secondaire en définissant des valeurs pour les zones de votre choix.
gcloud
Obtenez l'heure limite à laquelle vous pouvez récupérer une instance Cloud SQL indisponible.
Remplacez INSTANCE_NAME par le nom de l'instance que vous interrogez.
gcloud sql instances get-latest-recovery-time INSTANCE_NAME
REST v1
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID du projet
- INSTANCE_NAME : nom de l'instance pour laquelle vous interrogez l'heure de la dernière récupération
Méthode HTTP et URL :
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME/getLatestRecoveryTime
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "kind": "sql#getLatestRecoveryTime", "latestRecoveryTime": "2023-06-20T17:23:59.648821586Z" }
REST v1beta4
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID : ID du projet
- INSTANCE_NAME : nom de l'instance pour laquelle vous interrogez l'heure de la dernière récupération
Méthode HTTP et URL :
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME/getLatestRecoveryTime
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "kind": "sql#getLatestRecoveryTime", "latestRecoveryTime": "2023-06-20T17:23:59.648821586Z" }
Effectuer une récupération PITR
Console
-
Dans Google Cloud Console, accédez à la page Instances Cloud SQL.
- Ouvrez le menu "Autres actions" pour l'instance que vous souhaitez récupérer, puis cliquez sur Créer un clone.
- Vous pouvez également mettre à jour l'ID du nouveau clone sur la page Créer un clone.
- Sélectionnez Cloner à partir d'un moment antérieur.
- Saisissez la date et l'heure de la récupération PITR.
- Cliquez sur Create clone (Créer un clone).
gcloud
Créez un clone à l'aide de la récupération PITR.
Remplacez les éléments suivants :
- SOURCE_INSTANCE_NAME : nom de l'instance à partir de laquelle vous effectuez la restauration.
- NEW_INSTANCE_NAME : nom du clone.
- TIMESTAMP : fuseau horaire UTC de l'instance source au format RFC 3339. Exemple : 2012-11-15T16:19:00.094Z.
gcloud sql instances clone SOURCE_INSTANCE_NAME \ NEW_INSTANCE_NAME \ --point-in-time 'TIMESTAMP'
REST v1
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- project-id : ID du projet
- target-instance-id : ID de l'instance cible
- source-instance-id : ID de l'instance source
- restore-timestamp : moment jusqu'auquel effectuer la restauration
Méthode HTTP et URL :
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/source-instance-id/clone
Corps JSON de la requête :
{ "cloneContext": { "kind": "sql#cloneContext", "destinationInstanceName": "target-instance-id", "pointInTime": "restore-timestamp" } }
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
REST v1beta4
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- project-id : ID du projet
- target-instance-id : ID de l'instance cible
- source-instance-id : ID de l'instance source
- restore-timestamp : moment jusqu'auquel effectuer la restauration
Méthode HTTP et URL :
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/source-instance-id/clone
Corps JSON de la requête :
{ "cloneContext": { "kind": "sql#cloneContext", "destinationInstanceName": "target-instance-id", "pointInTime": "restore-timestamp" } }
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
Désactiver la récupération PITR
Console
-
Dans Google Cloud Console, accédez à la page Instances Cloud SQL.
- Ouvrez le menu "Autres actions" pour l'instance que vous souhaitez désactiver, puis sélectionnez Modifier.
- Sous Personnaliser votre instance, développez la section Protection des données.
- Désactivez l'option Activer la récupération à un moment précis.
- Cliquez sur Enregistrer.
gcloud
- Désactivez la récupération à un moment précis :
gcloud sql instances patch INSTANCE_NAME \ --no-enable-point-in-time-recovery
- Confirmez la modification :
gcloud sql instances describe INSTANCE_NAME
Dans la section
backupConfiguration
, vous voyez le messagepointInTimeRecoveryEnabled: false
s'afficher si la modification a réussi.
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 :
PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id
Corps JSON de la requête :
{ "settings": { "backupConfiguration": { "enabled": false, "pointInTimeRecoveryEnabled": false } } }
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
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 :
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id
Corps JSON de la requête :
{ "settings": { "backupConfiguration": { "enabled": false, "pointInTimeRecoveryEnabled": false } } }
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
Vérifier l'emplacement de stockage des journaux de transactions utilisés pour la récupération à un moment précis
Vous pouvez vérifier où votre instance Cloud SQL stocke les journaux de transactions utilisés pour la récupération à un moment précis.
gcloud
Pour déterminer si votre instance stocke les journaux de PITR sur le disque ou dans Cloud Storage, utilisez la commande suivante :
gcloud sql instances describe INSTANCE_NAME
Remplacez INSTANCE_NAME par le nom de l'instance.
Vous pouvez également vérifier l'emplacement de stockage des journaux de transactions pour plusieurs instances dans le même projet. Utilisez la commande suivante pour déterminer l'emplacement pour plusieurs instances :
gcloud sql instances list --show-transactional-log-storage-state
Exemple de réponse :
NAME DATABASE_VERSION LOCATION TRANSACTIONAL_LOG_STORAGE_STATE my_01 POSTGRES_12 us-central-1 DISK my_02 POSTGRES_12 us-central-1 CLOUD_STORAGE ...
Dans le résultat de la commande, le champ transactionalLogStorageState
ou la colonne TRANSACTIONAL_LOG_STORAGE_STATE
fournissent des informations sur l'emplacement de stockage des journaux de transactions pour la récupération PITR associée à l'instance.
Les états du stockage des journaux de transactions possibles sont les suivants :
DISK
: l'instance stocke les journaux de transactions utilisés pour la récupération PITR sur le disque. Si vous mettez à niveau une instance Cloud SQL Enterprise vers l'édition Cloud SQL Enterprise Plus, le processus de mise à niveau bascule également l'emplacement de stockage des journaux vers Cloud Storage. Pour en savoir plus, consultez Mettre à niveau une instance vers Cloud SQL Enterprise Plus en utilisant la mise à niveau sur place. Vous pouvez également choisir de changer d'emplacement de stockage à l'aide de gcloud CLI ou de l'API Cloud SQL Admin, sans mettre à niveau l'édition de votre instance et sans temps d'arrêt. Pour en savoir plus, consultez la section Passer au stockage des journaux de transactions dans Cloud Storage.SWITCHING_TO_CLOUD_STORAGE
: l'instance change l'emplacement de stockage des journaux de transactions PITR vers Cloud Storage.SWITCHED_TO_CLOUD_STORAGE
: l'instance a terminé le changement d'emplacement de stockage des journaux de transactions PITR du disque vers Cloud Storage.CLOUD_STORAGE
: l'instance stocke les journaux de transactions utilisés pour la récupération à un moment précis dans Cloud Storage.
Passer au stockage des journaux de transactions dans Cloud Storage
Si votre instance stocke ses journaux de transactions utilisés pour la récupération PITR sur disque, vous pouvez définir l'emplacement de stockage sur Cloud Storage, sans subir de temps d'arrêt. Le processus global de changement d'emplacement de stockage correspond approximativement à la durée (en jours) de la période de conservation des journaux de transactions. Dès que vous initiez le basculement, les journaux de transactions commencent à s'accumuler dans Cloud Storage. Pendant l'opération, vous pouvez vérifier l'état du processus global à l'aide de la commande décrite dans la section Vérifier l'emplacement de stockage des journaux de transactions utilisés pour la récupération à un moment précis.
Une fois le processus de basculement vers Cloud Storage terminé, Cloud SQL utilise les journaux de transactions hébergés sur Cloud Storage pour la récupération PITR.
gcloud
Utilisez la commande suivante pour définir l'emplacement de stockage sur Cloud Storage :
gcloud sql instances patch INSTANCE_NAME \ --switch-transaction-logs-to-cloud-storage
Remplacez INSTANCE_NAME par le nom de l'instance. L'instance doit être une instance principale et non une instance répliquée. La réponse est semblable à ce qui suit :
The following message is used for the patch API method. {"name": "INSTANCE_NAME", "project": "PROJECT_NAME", "switchTransactionalLogsToCloudStorageEnabled": "true"} Patching Cloud SQL instance...done. Updated [https://sqladmin.prod.googleapis.com/v1/projects/PROJECT_NAME/instances/INSTANCE_NAME].
Si la commande renvoie une erreur, consultez la section Résoudre les problèmes liés au passage à Cloud Storage pour connaître les étapes à suivre.
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. L'instance doit être une instance principale et non une instance répliquée.
Méthode HTTP et URL :
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID
Corps JSON de la requête :
{ "switchTransactionLogsToCloudStorageEnabled": true }
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
Si la requête renvoie une erreur, consultez la section Résoudre les problèmes liés au passage à Cloud Storage pour connaître les étapes à suivre.
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. L'instance doit être une instance principale et non une instance répliquée.
Méthode HTTP et URL :
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID
Corps JSON de la requête :
{ "switchTransactionLogsToCloudStorageEnabled": true }
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
Si la requête renvoie une erreur, consultez la section Résoudre les problèmes liés au passage à Cloud Storage pour connaître les étapes à suivre.
Définir la durée de conservation des journaux de transaction
Pour définir le nombre de jours de conservation des journaux préalables, procédez comme suit :
Console
-
Dans Google Cloud Console, accédez à la page Instances Cloud SQL.
- Ouvrez le menu "Autres actions" pour l'instance pour laquelle vous souhaitez définir les journaux de transactions et sélectionnez Modifier.
- Sous Personnaliser votre instance, développez la section Protection des données.
- Dans la section Activer la récupération à un moment précis, développez Options avancées.
- Indiquez le nombre de jours de conservation des journaux, compris entre 1 et 35 pour l'édition Cloud SQL Enterprise Plus, ou entre 1 et 7 pour l'édition Cloud SQL Enterprise.
- Cliquez sur Enregistrer.
gcloud
Modifiez l'instance pour définir le nombre de jours de conservation des journaux préalables.
Remplacez les éléments suivants :
- INSTANCE_NAME : nom de l'instance sur laquelle vous souhaitez définir les journaux de transactions.
DAYS_TO_RETAIN : quantité de journaux de transactions à conserver, exprimée en jours de conservation. Pour l'édition Cloud SQL Enterprise Plus, la plage valide est comprise entre 1 et 35 jours, avec une valeur par défaut de 14 jours. Pour l'édition Cloud SQL Enterprise, la plage valide est comprise entre 1 et 7 jours, avec une valeur par défaut de 7 jours.
Si aucune valeur n'est spécifiée, la valeur par défaut est utilisée. Cette option n'est valide que si la récupération PITR est activée. Conserver les journaux de transactions sur un nombre de jours plus important nécessite une capacité de stockage plus importante.
gcloud sql instances patch INSTANCE_NAME \ --retained-transaction-log-days=DAYS_TO_RETAIN
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.
DAYS_TO_RETAIN : quantité de journaux de transactions à conserver, exprimée en jours de conservation. Pour l'édition Cloud SQL Enterprise Plus, la plage valide est comprise entre 1 et 35 jours, avec une valeur par défaut de 14 jours. Pour l'édition Cloud SQL Enterprise, la plage valide est comprise entre 1 et 7 jours, avec une valeur par défaut de 7 jours.
Si aucune valeur n'est spécifiée, la valeur par défaut est utilisée. Cette option n'est valide que si la récupération PITR est activée. Conserver les journaux de transactions sur un nombre de jours plus important nécessite une capacité de stockage plus importante.
Méthode HTTP et URL :
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID
Corps JSON de la requête :
{ "settings": { "backupConfiguration": { "transactionLogRetentionDays": "DAYS_TO_RETAIN" } } }
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
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.
DAYS_TO_RETAIN : quantité de journaux de transactions à conserver, exprimée en jours de conservation. Pour l'édition Cloud SQL Enterprise Plus, la plage valide est comprise entre 1 et 35 jours, avec une valeur par défaut de 14 jours. Pour l'édition Cloud SQL Enterprise, la plage valide est comprise entre 1 et 7 jours, avec une valeur par défaut de 7 jours.
Si aucune valeur n'est spécifiée, la valeur par défaut est utilisée. Cette option n'est valide que si la récupération PITR est activée. Conserver les journaux de transactions sur un nombre de jours plus important nécessite une capacité de stockage plus importante.
Méthode HTTP et URL :
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID
Corps JSON de la requête :
{ "settings": { "backupConfiguration": { "transactionLogRetentionDays": "DAYS_TO_RETAIN" } } }
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
Résoudre les problèmes
Problème | Dépannage |
---|---|
OU
|
Le code temporel que vous avez fourni n'est pas valide. |
OU
|
L'horodatage que vous avez fourni correspond à un moment où les sauvegardes ou les coordonnées du journal binaire sont introuvables. |
Résoudre les problèmes liés au passage à Cloud Storage
Le tableau suivant liste les erreurs pouvant être renvoyées avec le code INVALID REQUEST
, lorsque vous changez l'emplacement de stockage des journaux de transactions pour passer d'un stockage sur disque à Cloud Storage.
Problème | Dépannage |
---|---|
Switching the storage location of the transaction logs
used for PITR is not supported for instances with database type %s.
|
Assurez-vous d'exécuter la commande gcloud CLI ou d'envoyer la requête API sur une instance Cloud SQL pour MySQL ou Cloud SQL pour PostgreSQL. Il n'est pas possible de changer l'emplacement de stockage des journaux de transactions à l'aide de gcloud CLI ou de l'API Cloud SQL Admin en passant par Cloud SQL pour SQL Server. |
PostgreSQL transactional logging is not enabled on this instance.
|
PostgreSQL utilise la journalisation WAL à titre de journaux de transactions, dans le cadre de la récupération à un moment précis (PITR). Pour que la récupération PITR soit possible, PostgreSQL nécessite que vous activiez la journalisation WAL sur l'instance. Pour savoir comment activer la journalisation WAL, consultez la section Activer la récupération PITR. |
This instance is already storing transaction logs used for PITR in
Cloud Storage
|
Pour vérifier l'emplacement de stockage des journaux de transactions, exécutez la commande mentionnée dans la section Vérifier l'emplacement de stockage des journaux de transactions utilisés pour la récupération à un moment précis. |
The instance is already switching transaction logs used for PITR from disk
to Cloud Storage.
|
Attendez que l'opération se termine. Pour vérifier l'état de l'opération et l'emplacement de stockage des journaux de transactions, exécutez la commande mentionnée dans la section Vérifier l'emplacement de stockage des journaux de transactions utilisés pour la récupération à un moment précis. |
Étape suivante
- Configurez des options sur votre clone.