Esegui il recupero point-in-time (PITR)

Puoi utilizzare il recupero point-in-time (PITR) per ripristinare le istanze Cloud SQL principali, indipendentemente dal fatto che l'istanza sia attiva o eliminata. Il recupero point-in-time ti consente di ripristinare l'istanza in un momento specifico. Per un'istanza eliminata, puoi ripristinarla in un momento specifico in un'istanza nuova o esistente.

Cloud SQL offre le seguenti opzioni per ripristinare l'istanza utilizzando il PITR:

Per eseguire un PITR su un'istanza non disponibile o eliminata, devi trovare il tempo di recupero più recente e meno recente.

Esegui un PITR

Console

  1. Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Apri il menu Altre azioni Icona Altre azioni. per l'istanza che vuoi recuperare e fai clic su Crea clone.
  3. (Facoltativo) Nella pagina Crea un clone, aggiorna l'ID del nuovo clone.
  4. Seleziona Clona da un momento specifico precedente.
  5. Inserisci un orario PITR.
  6. Seleziona Tutti i database o specifica un nome di database.
    Se specifichi un nome di database, puoi selezionarne solo uno. Per impostazione predefinita, PITR è per tutti i database.
  7. Fai clic su Crea clone.

gcloud

Crea un clone utilizzando PITR.

Sostituisci quanto segue:

  • SOURCE_INSTANCE_NAME - Nome dell'istanza da cui esegui il ripristino.
  • NEW_INSTANCE_NAME: il nome del clone.
  • TIMESTAMP - Fuso orario UTC per l'istanza di origine in formato RFC 3339. Ad esempio, 2012-11-15T16:19:00.094Z.
gcloud sql instances clone SOURCE_INSTANCE_NAME \
NEW_INSTANCE_NAME \
--point-in-time 'TIMESTAMP'

REST v1

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • project-id: l'ID progetto
  • target-instance-id: l'ID dell'istanza di destinazione
  • source-instance-id: l'ID dell'istanza di origine
  • restore-timestamp Il point-in-time fino a cui eseguire il ripristino

Nella richiesta JSON, puoi specificare facoltativamente fino a un nome di database specifico come segue: "databaseNames": "my-database"

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

{
  "cloneContext":
  {
    "kind": "sql#cloneContext",
    "destinationInstanceName": "target-instance-id",
    "pointInTime": "restore-timestamp"
  }
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

REST v1beta4

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • project-id: l'ID progetto
  • target-instance-id: l'ID dell'istanza di destinazione
  • source-instance-id: l'ID dell'istanza di origine
  • restore-timestamp Il point-in-time fino a cui eseguire il ripristino

Nella richiesta JSON, puoi specificare facoltativamente fino a un nome di database specifico come segue: "databaseNames": "my-database"

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

{
  "cloneContext":
  {
    "kind": "sql#cloneContext",
    "destinationInstanceName": "target-instance-id",
    "pointInTime": "restore-timestamp"
  }
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Esegui un PITR utilizzando il vault di backup

Se la tua istanza Cloud SQL è abilitata all'utilizzo dei backup avanzati, puoi eseguire il recupero point-in-time per la tua istanza utilizzando il vault di backup.

Console

  1. Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Apri il menu Altre azioni Icona Altre azioni. per l'istanza che vuoi recuperare e fai clic su Crea clone.

  3. Seleziona Clona da un momento specifico precedente.

  4. Inserisci un orario PITR.

  5. Fai clic su Crea clone.

gcloud

Per eseguire un PITR su un'istanza dal vault di backup, devi trovare il data-source per il backup più vicino all'ora in cui vuoi eseguire il PITR. Per trovare il backup, consulta Elenca tutti i backup nel backup vault per un'istanza. Una volta identificato il backup, esegui questo comando per eseguire il PITR:

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

Sostituisci quanto segue:

  • DATA_SOURCE: il percorso del data-source per il backup più vicino al timestamp PITR a cui vuoi eseguire il recupero.
  • PITR_TIMESTAMP: il timestamp UTC del log PITR dell'istanza di origine a cui vuoi ripristinare l'istanza, in formato RFC 3339. Ad esempio, 2012-11-15T16:19:00.094Z.
  • TARGET_PROJECT: l'ID progetto della tua istanza Cloud SQL.

REST v1

REST v1beta4

Eseguire PITR su un'istanza eliminata

Per utilizzare il recupero point-in-time per ripristinare un'istanza eliminata, devi:

  • il timestamp PITR (timestamp) a cui vuoi ripristinare l'istanza
  • il nome dell'istanza di destinazione
  • l'ora in cui l'istanza di origine è stata eliminata (source-instance-deletion-time)

Puoi utilizzare il recupero point-in-time su un'istanza eliminata solo utilizzando gcloud CLI o l'API Cloud SQL. Per saperne di più, consulta Ripristinare un'istanza eliminata utilizzando un PITR.

gcloud

Trovare la finestra PITR

Per trovare la finestra PITR dell'istanza eliminata, recupera l'ora di recupero più recente e meno recente per la tua istanza. In questa finestra puoi selezionare un timestamp in qualsiasi momento per eseguire un PITR.

Trovare l'ora di eliminazione dell'istanza di origine e i giorni di conservazione dei log

source-instance-deletion-time e log-retention-days per l'istanza eliminata vengono archiviati con i backup conservati per l'istanza dopo l'eliminazione. Per trovare questi valori per l'istanza eliminata, vedi Elenco dei backup conservati.

Ripristinare utilizzando un PITR

Per ripristinare l'istanza eliminata utilizzando un PITR, esegui il comando seguente:

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

Sostituisci quanto segue:

  • SOURCE_INSTANCE_NAME: il nome dell'istanza di origine che vuoi ripristinare.
  • NEW_INSTANCE_NAME: il nome della nuova istanza.
  • PITR_TIMESTAMP: il timestamp UTC del log PITR dell'istanza di origine a cui vuoi ripristinare l'istanza, in formato RFC 3339. Ad esempio, 2012-11-15T16:19:00.094Z.
  • SOURCE_INSTANCE_DELETION_TIMESTAMP: il timestamp UTC dell'ora in cui è stata eliminata l'istanza di origine, in formato RFC 3339. Ad esempio, 2012-11-15T16:19:00.094Z.

REST v1

Trovare la finestra PITR

Per trovare la finestra PITR dell'istanza eliminata, recupera l'ora di recupero più recente e meno recente per la tua istanza. In questa finestra puoi selezionare un timestamp in qualsiasi momento per eseguire un PITR.

Trovare l'ora di eliminazione dell'istanza di origine e i giorni di conservazione dei log

source-instance-deletion-time e log-retention-days per l'istanza eliminata vengono archiviati con i backup conservati per l'istanza dopo l'eliminazione. Per trovare questi valori per l'istanza eliminata, vedi Elenco dei backup conservati.

Ripristinare utilizzando un PITR

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • project-id: l'ID progetto
  • target-instance-id: l'ID dell'istanza di destinazione
  • source-instance-id: l'ID dell'istanza di origine
  • source-instance-deletion-time: l'ora di eliminazione dell'istanza di origine
  • restore-timestamp il momento in cui vuoi ripristinare l'istanza

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

{
  "cloneContext":
  {
    "kind": "sql#cloneContext",
    "destinationInstanceName": "target-instance-id",
    "sourceInstanceDeletionTime: "source-instance-deletion-time",
    "pointInTime": "restore-timestamp"
  }
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

REST v1beta4

Trovare la finestra PITR

Per trovare la finestra PITR dell'istanza eliminata, recupera l'ora di recupero più recente e meno recente per la tua istanza. In questa finestra puoi selezionare il timestamp di qualsiasi momento per eseguire il ripristino temporizzato.

Trovare l'ora di eliminazione dell'istanza di origine e i giorni di conservazione dei log

source-instance-deletion-time e log-retention-days per l'istanza eliminata vengono archiviati con i backup conservati per l'istanza dopo l'eliminazione. Per trovare questi valori per l'istanza eliminata, vedi Elenco dei backup conservati.

Ripristinare utilizzando PITR

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • project-id: l'ID progetto
  • target-instance-id: l'ID dell'istanza di destinazione
  • source-instance-id: l'ID dell'istanza di origine
  • source-instance-deletion-time: l'ora di eliminazione dell'istanza di origine
  • restore-timestamp il momento specifico in cui vuoi ripristinare l'istanza

Nella richiesta JSON, puoi specificare facoltativamente fino a un nome di database specifico come segue: "databaseNames": "my-database"

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

{
  "cloneContext":
  {
    "kind": "sql#cloneContext",
    "destinationInstanceName": "target-instance-id",
    "sourceInstanceDeletionTime: "source-instance-deletion-time",
    "pointInTime": "restore-timestamp"
  }
}

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

Visualizzare il tempo di recupero più breve e più lungo

Per un'istanza disponibile, puoi eseguire un PITR su qualsiasi timestamp nella finestra PITR dell'istanza. La finestra PITR inizia all'ora di recupero più recente e termina all'ora di recupero più recente. Se l'istanza non è disponibile e i log dell'istanza sono archiviati in Cloud Storage o se l'istanza è stata eliminata e aveva abilitato la conservazione PITR, puoi recuperare l'ora di recupero più recente e meno recente ed eseguire il PITR in qualsiasi timestamp all'interno di questo periodo. In tutti i casi, puoi ripristinare l'istanza in una zona principale o secondaria diversa fornendo valori per le zone preferite.

gcloud

Istanza non disponibile

Per ottenere l'ora più recente e meno recente a cui puoi recuperare un'istanza Cloud SQL non disponibile, esegui il comando seguente:

gcloud sql instances get-latest-recovery-time INSTANCE_NAME

Sostituisci quanto segue:

  • INSTANCE_NAME: il nome dell'istanza per cui vuoi trovare l'ultimo tempo di ripristino.

Istanza eliminata

Per ottenere l'ora più recente e più recente a cui puoi recuperare un'istanza Cloud SQL eliminata, esegui questo comando:

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

Sostituisci quanto segue:

  • INSTANCE_NAME: il nome dell'istanza per cui vuoi trovare l'ultimo tempo di ripristino.
  • SOURCE_INSTANCE_DELETION_TIMESTAMP: il timestamp UTC dell'ora in cui è stata eliminata l'istanza di origine, in formato RFC 3339. Ad esempio, 2012-11-15T16:19:00.094Z.

REST v1

Istanza non disponibile

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • PROJECT_ID: l'ID progetto
  • INSTANCE_NAME: il nome dell'istanza per cui stai eseguendo una query per l'ultimo tempo di ripristino

Metodo HTTP e URL:

GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME/getLatestRecoveryTime

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "kind": "sql#getLatestRecoveryTime",
  "earliestRecoveryTime": "2023-06-10T17:23:59.648821586Z",
  "latestRecoveryTime": "2023-06-20T17:23:59.648821586Z"
}

Istanza eliminata

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • PROJECT_ID: l'ID progetto
  • INSTANCE_NAME: il nome dell'istanza di origine per cui stai eseguendo una query per l'ultimo tempo di ripristino
  • SOURCE_INSTANCE_DELETION_TIME: l'ora in cui è stata eliminata l'istanza di origine

Metodo HTTP e URL:

GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME/getLatestRecoveryTime

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "kind": "sql#getLatestRecoveryTime",
  "earliestRecoveryTime": "2023-06-10T17:23:59.648821586Z",
  "latestRecoveryTime": "2023-06-20T17:23:59.648821586Z"
}

REST v1beta4

Istanza non disponibile

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • PROJECT_ID: l'ID progetto
  • INSTANCE_NAME: il nome dell'istanza per cui stai eseguendo una query per l'ultimo tempo di ripristino

Metodo HTTP e URL:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME/getLatestRecoveryTime

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "kind": "sql#getLatestRecoveryTime",
  "earliestRecoveryTime": "2023-06-10T17:23:59.648821586Z",
  "latestRecoveryTime": "2023-06-20T17:23:59.648821586Z"
}

Istanza eliminata

Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:

  • PROJECT_ID: l'ID progetto
  • INSTANCE_NAME: il nome dell'istanza di origine per cui stai eseguendo una query per l'ultimo tempo di ripristino
  • SOURCE_INSTANCE_DELETION_TIME: l'ora in cui è stata eliminata l'istanza di origine

Metodo HTTP e URL:

GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME/getLatestRecoveryTime

Per inviare la richiesta, espandi una di queste opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "kind": "sql#getLatestRecoveryTime",
  "earliestRecoveryTime": "2023-06-10T17:23:59.648821586Z",
  "latestRecoveryTime": "2023-06-20T17:23:59.648821586Z"
}

Risoluzione dei problemi

Problema Risoluzione dei problemi

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

OPPURE

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

Il timestamp che hai fornito non è valido.

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

OPPURE

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

Il timestamp che hai fornito si riferisce a un momento in cui non è stato possibile trovare i backup o le coordinate binlog.

Passaggi successivi