Puoi utilizzare il recupero point-in-time (PITR) per ripristinare le istanze Cloud SQL principali, indipendentemente dal fatto che siano attive o eliminate. Il PITR consente di ripristinare l'istanza in un momento specifico. Un recupero point-in-time crea sempre una nuova istanza; non puoi eseguire un PITR su un'istanza 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 quello più remoto.
Esegui un PITR utilizzando un timestamp
L'utilizzo di un timestamp è l'approccio consigliato per eseguire un PITR.
Cloud SQL utilizza l'utilità mysqlbinlog per ripristinare le istanze fino a un momento specifico. Per ulteriori informazioni sull'utilità mysqlbinlog, consulta la documentazione di riferimento di MySQL.
Per completare la seguente attività, devi disporre di quanto segue:
- Logging binario e backup abilitati per l'istanza, con log binari continui dall'ultimo backup prima dell'evento da cui vuoi eseguire il recupero. Per saperne di più, consulta Abilita il logging binario.
- Un timestamp per definire il punto di recupero. Gli eventi che si verificano in corrispondenza e dopo questo timestamp non vengono riflessi nella nuova istanza.
Console
-
Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.
- Apri il menu Azioni
per l'istanza che vuoi recuperare e fai clic su Crea clone. - Facoltativamente, nella pagina Crea un clone, aggiorna l'ID del nuovo clone.
- Seleziona Clona da un momento specifico precedente.
- Inserisci un'ora per il PITR.
- Fai clic su Crea clone.
gcloud
Crea un clone utilizzando il PITR.
Sostituisci quanto segue:
- SOURCE_INSTANCE_NAME: il nome dell'istanza da cui stai eseguendo il ripristino.
- NEW_INSTANCE_NAME: il nome del clone.
- TIMESTAMP: il fuso orario UTC per l'istanza di origine nel 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 target
- source-instance-id: l'ID dell'istanza di origine
- restore-timestamp Il momento nel tempo fino al quale 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 target
- source-instance-id: l'ID dell'istanza di origine
- restore-timestamp Il momento nel tempo fino al quale 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 l'istanza Cloud SQL è abilitata per l'utilizzo dei backup avanzati, puoi eseguire il recupero point-in-time per l'istanza utilizzando il vault di backup.
Console
Nella console Google Cloud , vai alla pagina Istanze Cloud SQL.
Apri il menu Azioni
per l'istanza che vuoi recuperare e fai clic su Crea clone.Seleziona Clona da un momento specifico precedente.
Inserisci un'ora per il 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 vault di backup per un'istanza. Una volta identificato il backup, esegui questo comando per eseguire il PITR:
gcloud sql instances point-in-time-restore DATA_SOURCE \
TARGET_INSTANCE_NAME \
'PITR_TIMESTAMP' \
--project=TARGET_PROJECT \
--region=REGION
Sostituisci quanto segue:
DATA_SOURCE: il percorso didata-sourceper l'istanza di origine più vicina al timestamp PITR in cui vuoi eseguire il recupero.TARGET_INSTANCE_NAME: il nome della nuova istanza creata dall'operazione PITR.PITR_TIMESTAMP: il timestamp UTC del log PITR dell'istanza di origine in cui vuoi ripristinare l'istanza, in formato RFC 3339. Ad esempio, 2025-11-15T16:19:00.094Z.TARGET_PROJECT: l'ID progetto della nuova istanza.REGION: la regione dell'istanza target. Questo campo è obbligatorio se l'origine dati dell'istanza di origine si trova in una multi-regione. La regione dell'istanza target deve essere la stessa della regione dell'istanza di origine.
REST v1
Per eseguire il recupero point-in-time utilizzando un'origine dati dal vault di backup, utilizza il metodo instances.pointInTimeRestore con una richiesta POST.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del progetto in cui vuoi creare la nuova istanza.
- DATASOURCE: l'origine dati di Backup e RE che vuoi che il servizio utilizzi per l'operazione di ripristino point-in-time.
- PITR_TIMESTAMP: il timestamp UTC del log PITR dell'istanza di origine in cui vuoi ripristinare l'istanza, in formato RFC 3339. Ad esempio, 2012-11-15T16:19:00.094Z.
- TARGET_INSTANCE_NAME: il nome dell'istanza creata dall'operazione PITR.
- REGION: la regione dell'istanza target. Questo campo è obbligatorio se l'origine dati dell'istanza di origine si trova in una multiregione. La regione dell'istanza target deve essere la stessa della regione dell'istanza di origine.
Metodo HTTP e URL:
POST https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID:pointInTimeRestore
Corpo JSON della richiesta:
{
"datasource": "DATASOURCE",
"pointInTime": "PITR_TIMESTAMP",
"targetInstanceName": "TARGET_INSTANCE_NAME",
"region": "REGION"
}
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
REST v1beta4
Per eseguire il recupero point-in-time utilizzando un'origine dati dal vault di backup, utilizza il metodo instances.pointInTimeRestore con una richiesta POST.
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- PROJECT_ID: l'ID del progetto in cui vuoi creare la nuova istanza.
- DATASOURCE: l'origine dati di Backup e RE che vuoi che il servizio utilizzi per l'operazione di ripristino point-in-time.
- PITR_TIMESTAMP: il timestamp UTC del log PITR dell'istanza di origine in cui vuoi ripristinare l'istanza, in formato RFC 3339. Ad esempio, 2012-11-15T16:19:00.094Z.
- TARGET_INSTANCE_NAME: il nome dell'istanza creata dall'operazione PITR.
- REGION: la regione dell'istanza target. Questo campo è obbligatorio se l'origine dati dell'istanza di origine si trova in una multiregione. La regione dell'istanza target deve essere la stessa della regione dell'istanza di origine.
Metodo HTTP e URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID:pointInTimeRestore
Corpo JSON della richiesta:
{
"datasource": "DATASOURCE",
"pointInTime": "PITR_TIMESTAMP",
"targetInstanceName": "TARGET_INSTANCE_NAME",
"region": "REGION"
}
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
Esegui un PITR tra progetti
Con i backup avanzati, puoi ripristinare un'istanza Cloud SQL in un progetto diverso da quello in cui si trova l'istanza di origine o il vault di backup.
Il PITR tra progetti è supportato solo tramite l'interfaccia a riga di comando gcloud e le API REST.
Per eseguire un PITR tra progetti, esegui una delle seguenti operazioni:
Se utilizzi gcloud CLI, imposta il flag
--projectsul progetto in cui vuoi creare l'istanza target.Se utilizzi le API REST, imposta il campo
PROJECT_IDsul progetto in cui vuoi creare l'istanza target.
Esegui il PITR su un'istanza non disponibile
Console
Potresti voler recuperare un'istanza non disponibile in un'altra zona per i seguenti motivi:
- La zona in cui è configurata l'istanza non è accessibile. Questa istanza ha uno stato
FAILED. - L'istanza è in fase di manutenzione. 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.
- Individua la riga dell'istanza da clonare.
- Nella colonna Azioni, fai clic sul menu Altre azioni.
- Fai clic su Crea clone.
- Nella pagina Crea un clone, 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 Momento, seleziona una data e un'ora da cui vuoi clonare i dati. In questo modo viene recuperato lo stato dell'istanza da 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 delle autorizzazioni cloudsql.instances.clone e cloudsql.instances.create. Per saperne di più sulle autorizzazioni richieste per eseguire i comandi di gcloud CLI, consulta Autorizzazioni di 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_ID: l'ID dell'istanza di origine
- TARGET_INSTANCE_ID: l'ID dell'istanza target
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_ID"
}
}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 API instances.clone deve disporre delle autorizzazioni cloudsql.instances.clone e cloudsql.instances.create. Per saperne di più sulle autorizzazioni necessarie per utilizzare i metodi API, consulta Autorizzazioni di 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_ID: l'ID dell'istanza di origine
- TARGET_INSTANCE_ID: l'ID dell'istanza target
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_ID"
}
}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 API instances.clone deve disporre delle autorizzazioni cloudsql.instances.clone e cloudsql.instances.create. Per saperne di più sulle autorizzazioni necessarie per utilizzare i metodi API, consulta Autorizzazioni di 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.
Esegui il PITR su un'istanza eliminata
Per utilizzare il PITR per ripristinare un'istanza eliminata, devi:
- il timestamp PITR (
timestamp) in cui vuoi ripristinare l'istanza - il nome dell'istanza target
- l'ora in cui l'istanza di origine è stata eliminata (
source-instance-deletion-time)
Puoi utilizzare il PITR su un'istanza eliminata solo utilizzando gcloud CLI o l'API Cloud SQL. Per saperne di più, consulta Ripristina un'istanza eliminata utilizzando un PITR.
gcloud
Backup standard
Trova la finestra PITR
Per trovare la finestra PITR dell'istanza eliminata, recupera il tempo di recupero più recente e meno recente per l'istanza. Puoi selezionare qualsiasi timestamp in questa finestra per eseguire un PITR.
Trova l'eliminazione dell'istanza di origine
source-instance-deletion-time e log-retention-days dell'istanza eliminata vengono archiviati con i backup conservati per l'istanza dopo l'eliminazione. Per trovare un elenco di tutti i backup disponibili per l'istanza eliminata, consulta Elenca i backup conservati.
Una volta identificato il backup che vuoi utilizzare, usa il comando gcloud sql backups describe per ottenere il source-instance-deletion-time.
Ripristina utilizzando un PITR
Per ripristinare l'istanza eliminata utilizzando un PITR, esegui questo comando:
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 in 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.
Backup avanzato
Trova la finestra PITR
Per trovare la finestra PITR dell'istanza eliminata, recupera il tempo di recupero più recente e meno recente per l'istanza. Puoi selezionare qualsiasi timestamp in questa finestra per eseguire un PITR.
Trova l'origine dati
L'origine dati dell'istanza eliminata viene archiviata con i backup conservati per l'istanza dopo l'eliminazione. Per trovare questi valori per l'istanza eliminata, consulta Elenca tutti i backup nel vault di backup per l'istanza.
Ripristina utilizzando un PITR
Per ripristinare l'istanza eliminata utilizzando un PITR, esegui questo comando:
gcloud sql instances point-in-time-restore DATA_SOURCE \
TARGET_INSTANCE_NAME \
'PITR_TIMESTAMP' \
--project=TARGET_PROJECT \
--region=REGION
Sostituisci quanto segue:
DATA_SOURCE: il percorso didata-sourceper il backup più vicino al timestamp PITR in cui vuoi eseguire il recupero.TARGET_INSTANCE_NAME: il nome della nuova istanza creata dall'operazione PITR.PITR_TIMESTAMP: il timestamp UTC del log PITR dell'istanza di origine in cui vuoi ripristinare l'istanza, in formato RFC 3339. Ad esempio, 2025-11-15T16:19:00.094Z.TARGET_PROJECT: l'ID progetto della nuova istanza.REGION: la regione dell'istanza target. Questo campo è obbligatorio se l'origine dati dell'istanza di origine si trova in una multi-regione. La regione dell'istanza target deve essere la stessa dell'istanza di origine.
REST v1
Trova la finestra PITR
Per trovare la finestra PITR dell'istanza eliminata, recupera il tempo di recupero più recente e meno recente per l'istanza. Puoi selezionare qualsiasi timestamp in questa finestra per eseguire un PITR.
Trova l'ora di eliminazione dell'istanza di origine e i giorni di conservazione dei log
source-instance-deletion-time e log-retention-days dell'istanza eliminata vengono archiviati con i backup conservati per l'istanza dopo l'eliminazione. Per trovare questi valori per l'istanza eliminata, consulta Elenca i backup conservati.
Ripristina 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 target
- 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
Trova la finestra PITR
Per trovare la finestra PITR dell'istanza eliminata, recupera il tempo di recupero più recente e meno recente per l'istanza. Puoi selezionare qualsiasi timestamp in questa finestra per eseguire il PITR.
Trova l'ora di eliminazione dell'istanza di origine e i giorni di conservazione dei log
source-instance-deletion-time e log-retention-days dell'istanza eliminata vengono archiviati con i backup conservati per l'istanza dopo l'eliminazione. Per trovare questi valori per l'istanza eliminata, consulta Elenca i backup conservati.
Ripristina utilizzando il PITR
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- project-id: l'ID progetto
- target-instance-id: l'ID dell'istanza target
- 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:
Esegui un PITR utilizzando le posizioni dei log binari
Sebbene sia consigliabile eseguire il PITR utilizzando i timestamp, come descritto in Esegui il PITR utilizzando un timestamp, puoi anche eseguire il PITR fornendo una posizione specifica del log binario o dell'evento in un file di log binario.
Per saperne di più sul PITR che utilizza le posizioni dei log binari, consulta PITR utilizzando il log binario.
Prima di iniziare
Prima di completare questa attività, devi avere:
Logging binario e backup abilitati per l'istanza, con log binari continui dall'ultimo backup prima dell'evento da cui vuoi eseguire il recupero. Per saperne di più, consulta Abilita il logging binario.
I log binari devono essere disponibili sul disco per poterli sfogliare alla ricerca di eventi. Per controllare la durata di conservazione dei log binari su disco, consulta Imposta la conservazione dei log delle transazioni. Per saperne di più, consulta Periodo di conservazione dei log. Non puoi sfogliare i log binari archiviati in Cloud Storage con l'utilità
mysqlbinlog.Un nome file del log binario e la posizione dell'evento da cui vuoi eseguire il recupero (questo evento e tutti gli eventi successivi non vengono riflessi nella nuova istanza). Per saperne di più, consulta Identifica la posizione del log binario.
Dopo aver identificato il nome file e la posizione del log binario, esegui il PITR utilizzando le posizioni degli eventi del log binario.
Identifica la posizione di sicurezza
Utilizza il client MySQL per connetterti all'istanza in cui vuoi eseguire il ripristino.
Per farlo, utilizza Cloud Shell o la tua macchina client locale. Per saperne di più, consulta Opzioni di connessione per le applicazioni esterne.
Mostra i file di log binari per l'istanza:
SHOW BINARY LOGS;Visualizza i primi 100 eventi nel file di log binario più recente:
SHOW BINLOG EVENTS IN '<BINARY_LOG_FILE>' LIMIT 100;Puoi modificare il numero di righe da mostrare, ma non mostrare tutti gli eventi nel file finché non sai quanto è grande. La visualizzazione di un numero elevato di eventi può influire sulle prestazioni del sistema.
Se l'evento che stai cercando non viene visualizzato, utilizza l'ultima posizione visualizzata come punto di partenza per cercare l'insieme di eventi successivo:
SHOW BINLOG EVENTS IN '<BINARY_LOG_FILE>' FROM <POSITION> LIMIT 100;Quando trovi l'evento che contrassegna il momento fino al quale vuoi eseguire il ripristino, registra la posizione (mostrata come
Pos) e il nome del file di log binario.Il nome file del log binario e la posizione sono i valori che utilizzi per il PITR.
Di seguito è riportato un output di esempio del comando SHOW BINLOG EVENTS:
+------------------+-----+-------------+-----------+-------------+-----------------------------------------------------+ | Log_name | Pos | Event_type | Server_id | End_log_pos | Info | +------------------+-----+-------------+-----------+-------------+-----------------------------------------------------+ | mysql-bin.000011 | 4 | Format_desc | 88955285 | 120 | Server ver: 5.6.30-log, Binlog ver: 4 | | mysql-bin.000011 | 120 | Query | 88955285 | 211 | create database db1 | | mysql-bin.000011 | 211 | Query | 88955285 | 310 | use `db1`; CREATE TABLE t (c CHAR(20)) | | mysql-bin.000011 | 310 | Query | 88955285 | 381 | BEGIN | | mysql-bin.000011 | 381 | Table_map | 88955285 | 426 | table_id: 18 (db1.t) | | mysql-bin.000011 | 310 | Query | 88955285 | 381 | BEGIN | | mysql-bin.000011 | 426 | Write_rows | 88955285 | 464 | table_id: 18 flags: STMT_END_F | | mysql-bin.000011 | 464 | Xid | 88955285 | 495 | COMMIT /* xid=56 */ | | mysql-bin.000011 | 495 | Query | 88955285 | 566 | BEGIN | | mysql-bin.000011 | 566 | Table_map | 88955285 | 611 | table_id: 18 (db1.t) | | mysql-bin.000011 | 611 | Write_rows | 88955285 | 649 | table_id: 18 flags: STMT_END_F | | mysql-bin.000011 | 649 | Xid | 88955285 | 680 | COMMIT /* xid=57 */ | | mysql-bin.000011 | 680 | Query | 88955285 | 751 | BEGIN | | mysql-bin.000011 | 751 | Table_map | 88955285 | 796 | table_id: 18 (db1.t) | | mysql-bin.000011 | 796 | Write_rows | 88955285 | 834 | table_id: 18 flags: STMT_END_F | | mysql-bin.000011 | 834 | Xid | 88955285 | 865 | COMMIT /* xid=58 */ | | mysql-bin.000011 | 865 | Query | 88955285 | 977 | use `db1`; DROP TABLE `t` /* generated by server */ | +------------------+-----+-------------+-----------+-------------+-----------------------------------------------------+ 16 rows in set (0.04 sec)
Per eseguire il ripristino fino all'istruzione DROP TABLE, in grassetto nell'esempio precedente, devi utilizzare 865 in mysql-bin.000011 come posizione di recupero. L'istruzione DROP TABLE e tutte le operazioni successive non vengono applicate alla nuova istanza.
Esegui il PITR utilizzando le posizioni degli eventi del log binario
gcloud
Utilizza il comando
gcloud sql instances clone con i flag
--bin-log-file-name e --bin-log-position.
-
Crea la nuova istanza utilizzando il nome file del log binario e la posizione di recupero.
Sostituisci quanto segue:
- SOURCE_INSTANCE_NAME: il nome dell'istanza da cui stai eseguendo il ripristino.
- NEW_INSTANCE_NAME: il nome del clone.
- BINLOG_FILE_NAME: il nome del log binario, ad esempio
mysql-bin.187288. - POSITION: la posizione nel log binario fino alla quale eseguire il ripristino, ad esempio
50001356.
gcloud sql instances clone SOURCE_INSTANCE_NAME \ NEW_INSTANCE_NAME \ --bin-log-file-name="BINLOG_FILE_NAME" \ --bin-log-position=POSITION
Ad esempio, un comando
gcloud sql instances clonepotrebbe essere simile al seguente:gcloud sql instances clone instance1 \ instance1-clone \ --bin-log-file-name=mysql-bin.0000031 \ --bin-log-position=107
- Utilizza l'ID operazione restituito dal comando
cloneper controllare lo stato dell'operazione di ripristino.gcloud sql operations describe OPERATION_ID
Quando l'operazione è in corso, viene restituito lo stato
RUNNING. Al termine dell'operazione, viene restituito lo statoDONE.
REST v1
Crea la nuova istanza utilizzando il nome file del log binario e la posizione di recupero che hai identificato:
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- project-id: l'ID progetto
- target-instance-id: l'ID dell'istanza target
- source-instance-id: l'ID dell'istanza di origine
- binary-log-file-name Il nome del file di log binario
- binary-log-position La posizione all'interno del file di log binario
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",
"binLogCoordinates":
{
"kind": "sql#binLogCoordinates",
"binLogFileName": "binary-log-file-name",
"binLogPosition": "binary-log-position"
}
}
}
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
REST v1beta4
Crea la nuova istanza utilizzando il nome file del log binario e la posizione di recupero che hai identificato:
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
- project-id: l'ID progetto
- target-instance-id: l'ID dell'istanza target
- source-instance-id: l'ID dell'istanza di origine
- binary-log-file-name Il nome del file di log binario
- binary-log-position La posizione all'interno del file di log binario
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",
"binLogCoordinates":
{
"kind": "sql#binLogCoordinates",
"binLogFileName": "binary-log-file-name",
"binLogPosition": "binary-log-position"
}
}
}
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
Ottenere 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 al momento del recupero più recente e termina al momento del 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 la conservazione PITR abilitata, puoi recuperare l'ora di recupero più recente e quella più remota ed eseguire il PITR su qualsiasi timestamp in quella finestra. In tutti i casi, puoi ripristinare l'istanza in una zona principale o secondaria diversa fornendo i valori per le zone preferite.
gcloud
Istanza non disponibile
Per ottenere l'ora meno recente e più recente in cui puoi recuperare un'istanza Cloud SQL non disponibile, esegui questo comando:
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 recupero.
Istanza eliminata
Per ottenere l'ora più recente e quella più remota in 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 recupero.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 recupero
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 recovery time
- 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 recupero
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 recovery time
- 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 fornito non è valido. |
|
OPPURE
|
Il timestamp fornito si riferisce a un momento in cui non è stato possibile trovare i backup o le coordinate del binlog. |
Passaggi successivi
- Configura i flag sul clone