Effectuer une récupération à un moment précis (PITR)

Vous pouvez utiliser la récupération à un moment précis (PITR) pour restaurer vos instances Cloud SQL principales, qu'elles soient actives ou supprimées. La récupération à un moment précis vous permet de restaurer l'instance à un moment spécifique. Pour une instance supprimée, vous pouvez la restaurer à un moment précis sur une instance nouvelle ou existante.

Cloud SQL propose les options suivantes pour restaurer votre instance à l'aide de la récupération à un moment précis :

Pour effectuer une récupération à un moment précis sur une instance indisponible ou supprimée, vous devez trouver la dernière et la première heure de récupération.

Effectuer une récupération PITR

Console

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

    Accéder à la page Instances Cloud SQL

  2. Ouvrez le menu "Autres actions" Icône Plus pour l'instance que vous souhaitez récupérer, puis cliquez sur Créer un clone.
  3. Vous pouvez également mettre à jour l'ID du nouveau clone sur la page Créer un clone.
  4. Sélectionnez Cloner à partir d'un moment antérieur.
  5. Saisissez la date et l'heure de la récupération PITR.
  6. Sélectionnez Toutes les bases de données, ou spécifiez un nom de base de données.
    Si vous spécifiez un nom de base de données, vous ne pouvez en sélectionner qu'un. Par défaut, la récupération PITR est destinée à toutes les bases de données.
  7. 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

Dans la requête JSON, vous pouvez éventuellement spécifier un nom de base de données spécifique, comme suit : "databaseNames": "my-database"

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

Dans la requête JSON, vous pouvez éventuellement spécifier un nom de base de données spécifique, comme suit : "databaseNames": "my-database"

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 :

Effectuer une récupération PITR à l'aide du coffre de sauvegarde

Si votre instance Cloud SQL est activée pour utiliser les sauvegardes améliorées, vous pouvez effectuer une récupération à un moment précis pour votre instance à l'aide du parc de sauvegarde.

Console

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

    Accéder à la page Instances Cloud SQL

  2. Ouvrez le menu "Autres actions" Icône Plus pour l'instance que vous souhaitez récupérer, puis cliquez sur Créer un clone.

  3. Sélectionnez Cloner à partir d'un moment antérieur.

  4. Saisissez la date et l'heure de la récupération PITR.

  5. Cliquez sur Create clone (Créer un clone).

gcloud

Pour effectuer une récupération à un moment précis (PITR) sur une instance à partir du coffre de sauvegarde, vous devez trouver le data-source de la sauvegarde la plus proche de l'heure à laquelle vous souhaitez effectuer la récupération PITR. Pour trouver la sauvegarde, consultez Lister toutes les sauvegardes du backup vault pour une instance. Une fois la sauvegarde identifiée, exécutez la commande suivante pour effectuer la récupération à un instant donné :

gcloud sql instances point-in-time-restore DATA_SOURCE
PITR_TIMESTAMP
--project=TARGET_PROJECT

Remplacez les éléments suivants :

  • DATA_SOURCE : chemin d'accès du data-source de la sauvegarde la plus proche de l'horodatage PITR vers lequel vous souhaitez effectuer la récupération.
  • PITR_TIMESTAMP : code temporel UTC du journal PITR de l'instance source à laquelle vous souhaitez restaurer votre instance, au format RFC 3339. Exemple : 2012-11-15T16:19:00.094Z.
  • TARGET_PROJECT : ID de projet de votre instance Cloud SQL.

REST v1

REST v1beta4

Effectuer une récupération PITR sur une instance supprimée

Pour utiliser la récupération à un moment précis (PITR) afin de restaurer une instance supprimée, vous devez disposer des éléments suivants :

  • le code temporel PITR (timestamp) auquel vous souhaitez restaurer votre instance.
  • le nom de l'instance cible ;
  • l'heure à laquelle l'instance source a été supprimée (source-instance-deletion-time).

Vous ne pouvez utiliser la restauration à un moment donné sur une instance supprimée qu'avec gcloud CLI ou l'API Cloud SQL. Pour en savoir plus, consultez Restaurer une instance supprimée à l'aide de la récupération à un moment précis.

gcloud

Trouver votre fenêtre de récupération PITR

Pour trouver la période de récupération PITR de votre instance supprimée, obtenez l'heure de récupération la plus ancienne et la plus récente pour votre instance. Vous pouvez sélectionner un code temporel "à tout moment" dans cette fenêtre pour effectuer une restauration à un point dans le temps.

Trouver la date de suppression de l'instance source et le nombre de jours de conservation des journaux

Les source-instance-deletion-time et log-retention-days de l'instance supprimée sont stockés avec les sauvegardes conservées pour votre instance après la suppression. Pour trouver ces valeurs pour votre instance supprimée, consultez Lister les sauvegardes conservées.

Restaurer à l'aide de la récupération PITR

Pour restaurer votre instance supprimée à l'aide d'une récupération à un moment précis, exécutez la commande suivante :

gcloud sql instances clone SOURCE_INSTANCE_NAME \
NEW_INSTANCE_NAME \
--point-in-time='PITR_TIMESTAMP' \
--source-instance-deletion-time=SOURCE_INSTANCE_DELETION_TIMESTAMP

Remplacez les éléments suivants :

  • SOURCE_INSTANCE_NAME : nom de l'instance source que vous souhaitez restaurer.
  • NEW_INSTANCE_NAME : le nom de la nouvelle instance
  • PITR_TIMESTAMP : code temporel UTC du journal PITR de l'instance source à laquelle vous souhaitez restaurer votre instance, au format RFC 3339. Par exemple, 2012-11-15T16:19:00.094Z.
  • SOURCE_INSTANCE_DELETION_TIMESTAMP : code temporel UTC de l'heure à laquelle l'instance source a été supprimée, au format RFC 3339. Exemple : 2012-11-15T16:19:00.094Z.

REST v1

Trouver votre fenêtre de récupération PITR

Pour trouver la période de récupération PITR de votre instance supprimée, obtenez l'heure de récupération la plus ancienne et la plus récente pour votre instance. Vous pouvez sélectionner un code temporel "à tout moment" dans cette fenêtre pour effectuer une restauration à un point dans le temps.

Trouver la date de suppression de l'instance source et le nombre de jours de conservation des journaux

Les source-instance-deletion-time et log-retention-days de l'instance supprimée sont stockés avec les sauvegardes conservées pour votre instance après la suppression. Pour trouver ces valeurs pour votre instance supprimée, consultez Lister les sauvegardes conservées.

Restaurer à l'aide de la récupération PITR

Avant d'utiliser les données de requête, 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
  • source-instance-deletion-time : heure de suppression de l'instance source
  • restore-timestamp : moment auquel vous souhaitez restaurer l'instance

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",
    "sourceInstanceDeletionTime: "source-instance-deletion-time",
    "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

Trouver votre fenêtre de récupération PITR

Pour trouver la période de récupération PITR de votre instance supprimée, obtenez l'heure de récupération la plus ancienne et la plus récente pour votre instance. Vous pouvez sélectionner un code temporel à tout moment dans cette fenêtre pour effectuer une restauration à un point dans le temps.

Trouver la date de suppression de l'instance source et le nombre de jours de conservation des journaux

Les source-instance-deletion-time et log-retention-days de l'instance supprimée sont stockés avec les sauvegardes conservées pour votre instance après la suppression. Pour trouver ces valeurs pour votre instance supprimée, consultez Lister les sauvegardes conservées.

Restaurer à l'aide de la récupération PITR

Avant d'utiliser les données de requête, 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
  • source-instance-deletion-time : heure de suppression de l'instance source
  • restore-timestamp : moment auquel vous souhaitez restaurer l'instance

Dans la requête JSON, vous pouvez éventuellement spécifier un nom de base de données spécifique, comme suit : "databaseNames": "my-database"

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",
    "sourceInstanceDeletionTime: "source-instance-deletion-time",
    "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 :

Obtenir l'heure de récupération la plus tôt et la plus tard

Pour une instance disponible, vous pouvez effectuer une récupération PITR à n'importe quel code temporel de la période de récupération PITR de l'instance. La fenêtre PITR commence à l'heure de récupération la plus ancienne et se termine à l'heure de récupération la plus récente. Si l'instance n'est pas disponible et que les journaux d'instance sont stockés dans Cloud Storage, ou si l'instance a été supprimée et que la période de conservation PITR était activée, vous pouvez récupérer la première et la dernière heure de récupération, et effectuer la récupération PITR à n'importe quel code temporel de cette période. Dans tous les cas, vous pouvez restaurer l'instance dans une autre zone principale ou secondaire en indiquant des valeurs pour les zones de votre choix.

gcloud

Instance indisponible

Pour obtenir l'heure la plus ancienne et la plus récente à laquelle vous pouvez récupérer une instance Cloud SQL indisponible, exécutez la commande suivante :

gcloud sql instances get-latest-recovery-time INSTANCE_NAME

Remplacez les éléments suivants :

  • INSTANCE_NAME : nom de l'instance pour laquelle vous souhaitez connaître la dernière heure de récupération.

Instance supprimée

Pour obtenir l'heure la plus ancienne et la plus récente à laquelle vous pouvez récupérer une instance Cloud SQL supprimée, exécutez la commande suivante :

gcloud sql instances get-latest-recovery-time INSTANCE_NAME
--source-instance-deletion-time='SOURCE_INSTANCE_DELETION_TIMESTAMP'

Remplacez les éléments suivants :

  • INSTANCE_NAME : nom de l'instance pour laquelle vous souhaitez connaître la dernière heure de récupération.
  • SOURCE_INSTANCE_DELETION_TIMESTAMP : code temporel UTC de l'heure à laquelle l'instance source a été supprimée, au format RFC 3339. Exemple : 2012-11-15T16:19:00.094Z.

REST v1

Instance indisponible

Avant d'utiliser les données de requête, 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",
  "earliestRecoveryTime": "2023-06-10T17:23:59.648821586Z",
  "latestRecoveryTime": "2023-06-20T17:23:59.648821586Z"
}

Instance supprimée

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

  • PROJECT_ID : ID du projet
  • INSTANCE_NAME : nom de l'instance source pour laquelle vous interrogez l'heure de la dernière récupération
  • SOURCE_INSTANCE_DELETION_TIME : heure à laquelle l'instance source a été supprimée

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",
  "earliestRecoveryTime": "2023-06-10T17:23:59.648821586Z",
  "latestRecoveryTime": "2023-06-20T17:23:59.648821586Z"
}

REST v1beta4

Instance indisponible

Avant d'utiliser les données de requête, 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",
  "earliestRecoveryTime": "2023-06-10T17:23:59.648821586Z",
  "latestRecoveryTime": "2023-06-20T17:23:59.648821586Z"
}

Instance supprimée

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

  • PROJECT_ID : ID du projet
  • INSTANCE_NAME : nom de l'instance source pour laquelle vous interrogez l'heure de la dernière récupération
  • SOURCE_INSTANCE_DELETION_TIME : heure à laquelle l'instance source a été supprimée

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",
  "earliestRecoveryTime": "2023-06-10T17:23:59.648821586Z",
  "latestRecoveryTime": "2023-06-20T17:23:59.648821586Z"
}

Résoudre les problèmes

Problème Dépannage

argument --point-in-time: Failed to parse date/time:
Unknown string format: 2021-0928T30:54:03.094;
received: 2021-0928T30:54:03.094Z

OU

Invalid value at 'body.clone_context.point_in_time'
(type.googleapis.com/google.protobuf.Timestamp), Field 'pointInTime',
Invalid time format: Failed to parse input,

Le code temporel que vous avez fourni n'est pas valide.

HTTP Error 400: Successful backup required for carrying out the operation was not found.

OU

Successful backup required for carrying out the operation was not found. or Time where no backups can be found.

L'horodatage que vous avez fourni correspond à un moment où les sauvegardes ou les coordonnées du journal binaire sont introuvables.

Étapes suivantes