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.
- 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
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
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 il PITR su un'istanza non disponibile
Console
Potresti voler recuperare un'istanza non disponibile in una zona diversa per i seguenti motivi:
- La zona in cui è configurata l'istanza non è accessibile. Questa
istanza ha uno stato
FAILED. - È in corso la manutenzione dell'istanza. Questa istanza ha uno stato
MAINTENANCE.
Per recuperare un'istanza non disponibile, completa i seguenti passaggi:
-
Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.
- Trova la riga dell'istanza da clonare.
- Nella colonna Azioni, fai clic sul menu Altre azioni.
- Fai clic su Crea clone.
- Nella pagina Crea una clonazione, completa le seguenti azioni:
- Nel campo ID istanza, aggiorna l'ID istanza, se necessario.
- Fai clic su Clona da un momento specifico precedente.
- Nel campo Punto nel tempo, seleziona una data e un'ora a partire dalle quali vuoi clonare i dati. In questo modo viene recuperato lo stato dell'istanza in quel momento.
- Fai clic su Crea clone.
Durante l'inizializzazione del clone, tornerai alla pagina dell'elenco delle istanze.
gcloud
Potresti voler recuperare un'istanza non disponibile in una zona diversa perché la zona in cui è configurata l'istanza non è accessibile.
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'utente o il account di servizio che esegue il comando gcloud sql instances clone
deve disporre dell'autorizzazione cloudsql.instances.clone. Per ulteriori
informazioni sulle autorizzazioni richieste per eseguire i comandi gcloud CLI, consulta
Autorizzazioni Cloud SQL.
REST v1
Potresti voler recuperare un'istanza non disponibile in una zona diversa perché la zona in cui è configurata l'istanza non è accessibile.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID progetto
- SOURCE_INSTANCE_NAME: il nome dell'istanza di origine.
- TARGET_INSTANCE_NAME: il nome dell'istanza di destinazione (clonata).
- DATE_AND_TIME_STAMP: un timestamp di data e ora per l'istanza di origine nel fuso orario UTC e nel formato RFC 3339 (ad esempio,
2012-11-15T16:19:00.094Z). - ZONE_NAME: (Facoltativo) Il nome della zona principale per l'istanza di destinazione. Viene utilizzato per specificare una zona primaria diversa per l'istanza Cloud SQL che vuoi clonare. Per un'istanza regionale, questa zona sostituisce la zona primaria, ma la zona secondaria rimane la stessa dell'istanza.
- SECONDARY_ZONE_NAME: (Facoltativo) Il nome della zona secondaria per l'istanza di destinazione. Viene utilizzato per specificare una zona secondaria diversa per l'istanza Cloud SQL regionale che vuoi clonare.
Metodo HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/SOURCE_INSTANCE_NAME/clone
Corpo JSON della richiesta:
{
"cloneContext":
{
"destinationInstanceName": "TARGET_INSTANCE_NAME",
"pointInTime": "DATE_AND_TIME_STAMP",
"preferredZone": "ZONE_NAME",
"preferredSecondaryZone": "SECONDARY_ZONE_NAME"
}
}Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
L'utente o il account di servizio che utilizza il metodo dell'API instances.clone deve disporre dell'autorizzazione cloudsql.instances.clone. Per ulteriori informazioni sulle autorizzazioni richieste per utilizzare i metodi API, consulta Autorizzazioni Cloud SQL.
REST v1beta4
Potresti voler recuperare un'istanza non disponibile in una zona diversa perché la zona in cui è configurata l'istanza non è accessibile.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID progetto
- SOURCE_INSTANCE_NAME: il nome dell'istanza di origine.
- TARGET_INSTANCE_NAME: il nome dell'istanza di destinazione (clonata).
- DATE_AND_TIME_STAMP: un timestamp di data e ora per l'istanza di origine nel
fuso orario UTC
e nel formato RFC 3339
(ad esempio,
2012-11-15T16:19:00.094Z). - ZONE_NAME: (Facoltativo) Il nome della zona principale per l'istanza di destinazione. Viene utilizzato per specificare una zona primaria diversa per l'istanza Cloud SQL che vuoi clonare. Per un'istanza regionale, questa zona sostituisce la zona primaria, ma la zona secondaria rimane la stessa dell'istanza.
- SECONDARY_ZONE_NAME: (Facoltativo) Il nome della zona secondaria per l'istanza di destinazione. Viene utilizzato per specificare una zona secondaria diversa per l'istanza Cloud SQL regionale che vuoi clonare.
Metodo HTTP e URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/SOURCE_INSTANCE_NAME/clone
Corpo JSON della richiesta:
{
"cloneContext":
{
"destinationInstanceName": "TARGET_INSTANCE_NAME",
"pointInTime": "DATE_AND_TIME_STAMP",
"preferredZone": "ZONE_NAME",
"preferredSecondaryZone": "SECONDARY_ZONE_NAME"
}
}Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
L'utente o il account di servizio che utilizza il metodo dell'API instances.clone deve disporre dell'autorizzazione cloudsql.instances.clone. Per ulteriori informazioni sulle autorizzazioni richieste per utilizzare i metodi API, consulta Autorizzazioni Cloud SQL.
Se provi a creare un clone PITR in un momento successivo all'ultimo momento recuperabile, viene visualizzato il seguente messaggio di errore:
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.
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 in cui vuoi ripristinare l'istanza
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.