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 :
- Effectuer une récupération PITR sur une instance en production
- Effectuer une récupération PITR à l'aide du coffre de sauvegarde
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
-
Dans la console Google Cloud , 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 :
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
Dans la console Google Cloud , 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.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
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-sourcede 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 indisponible
Console
Vous pouvez restaurer une instance indisponible dans une autre zone pour l'une des 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 la console Google Cloud , 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 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 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 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 de 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 de 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.
Si vous essayez de créer un clone PITR à un moment postérieur à la dernière heure récupérable, le message d'erreur suivant s'affiche :
The timestamp for point-in-time recovery is after the latest recovery time of Timestamp of latest recovery time. Clone the instance with a time that's earlier than this recovery time.
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 instancePITR_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
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 |
|---|---|
|
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. |
Étapes suivantes
- Configurez des options sur votre clone.