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
-
Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.
- Apri il menu Altre azioni
per l'istanza che vuoi recuperare e fai clic su Crea clone. - (Facoltativo) Nella pagina Crea un clone, aggiorna l'ID del nuovo clone.
- Seleziona Clona da un momento specifico precedente.
- Inserisci un orario PITR.
- 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. - 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
Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.
Apri il menu Altre azioni
per l'istanza che vuoi recuperare e fai clic su Crea clone.Seleziona Clona da un momento specifico precedente.
Inserisci un orario PITR.
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-sourceper 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 |
|---|---|
|
OPPURE
|
Il timestamp che hai fornito non è valido. |
|
OPPURE
|
Il timestamp che hai fornito si riferisce a un momento in cui non è stato possibile trovare i backup o le coordinate binlog. |
Passaggi successivi
- Configura i flag sul clone.