Questa pagina fornisce informazioni da esaminare prima di ripristinare un'istanza da un backup o di eseguire un recupero point-in-time (PITR).
Cosa succede durante un ripristino?
Quando ripristini un'istanza, i seguenti dati dell'istanza principale vengono ripristinati nella nuova istanza:
- Database
- Utenti
L'operazione di ripristino causa il riavvio dell'istanza.
Recupero point-in-time (PITR)
Il recupero point-in-time (PITR) ti aiuta a recuperare un'istanza in un punto temporale specifico. Ad esempio, se un errore causa una perdita di dati, puoi ripristinare lo stato di un database prima che si verifichi l'errore.
Il PITR crea sempre una nuova istanza. Non puoi eseguire un recupero incrementale in un'istanza esistente. La nuova istanza eredita le impostazioni dell'istanza di origine, in modo simile al funzionamento della creazione di un clone.
Tuttavia, affinché la nuova istanza erediti queste impostazioni, lo stato dell'istanza deve essere RUNNABLE
.
Cloud SQL utilizza i log delle transazioni per il recupero point-in-time. Se attivi il PITR per un'istanza e poi la ripristini da un backup, Cloud SQL elimina i log delle transazioni che ti consentono di utilizzare il PITR dall'istanza ripristinata.
Per assicurarti che i log per l'istanza vengano archiviati in Cloud Storage anziché sul disco, completa le seguenti azioni:
- Controlla l'architettura di rete dell'istanza. Se l'istanza è nella vecchia architettura di rete, esegui l'upgrade alla nuova architettura di rete.
- Se le dimensioni dei log sul disco stanno causando problemi di prestazioni per l'istanza, disattiva la copia incrementale a livello di blocco e riattivala.
Per istruzioni dettagliate su come eseguire il recupero point-in-time (PITR), consulta Utilizzare il recupero point-in-time (PITR).
Suggerimenti generali per eseguire un ripristino
Quando ripristini un'istanza da un backup, nella stessa istanza o in un'altra, tieni presente quanto segue:
- L'operazione di ripristino sovrascrive tutti i dati nell'istanza di destinazione.
- L'istanza di destinazione non è disponibile per le connessioni durante l'operazione di recupero. Le connessioni esistenti andranno perse.
- Se esegui il ripristino in un'istanza con repliche di lettura, devi eliminare tutte le repliche e ricrearle al termine dell'operazione di ripristino.
- L'operazione di ripristino riavvia l'istanza.
Per istruzioni dettagliate su come eseguire un ripristino, consulta:
Suggerimenti e requisiti per il ripristino in un'altra istanza
Quando ripristini un backup in un'istanza diversa, tieni presente le seguenti limitazioni e best practice:
L'istanza di destinazione deve avere la stessa versione del database dell'istanza da cui è stato eseguito il backup.
Cloud SQL imposta sempre la capacità di archiviazione dell'istanza di destinazione sul valore massimo delle dimensioni del disco configurato e del disco di backup. Il disco di backup è la dimensione del disco al momento del backup.
La capacità di archiviazione dell'istanza di destinazione deve essere almeno pari alla capacità dell'istanza di cui viene eseguito il backup. La quantità di spazio di archiviazione utilizzata non è importante. Puoi visualizzare la capacità di archiviazione dell'istanza nella pagina Istanze Cloud SQL della console. Questo requisito si applica indipendentemente dal fatto che tu stia eseguendo o meno il PITR di un singolo database.
L'istanza di destinazione deve essere nello stato
RUNNABLE
.L'istanza di destinazione può avere un numero di core o una quantità di memoria diversi rispetto all'istanza da cui è stato eseguito il backup.
L'istanza di destinazione può trovarsi in una regione diversa da quella dell'istanza di origine.
Durante un'interruzione, puoi comunque recuperare un elenco di backup in un determinato progetto. Consulta Visualizzare i backup durante un'interruzione.
Limitazioni della frequenza di ripristino
Sono consentite al massimo tre operazioni di ripristino ogni 30 minuti per istanza, regione e progetto. Se un'operazione di ripristino non va a buon fine, non viene conteggiata ai fini di questa quota. Se raggiungi il limite, l'operazione non va a buon fine e viene visualizzato un messaggio di errore che ti indica quando puoi eseguirla di nuovo.
Vediamo come Cloud SQL esegue il limitazione di frequenza per i ripristini.
Cloud SQL utilizza i token di un bucket per determinare quante operazioni di ripristino sono disponibili in un determinato momento. Per ogni backup, esiste un bucket per ogni progetto e regione di destinazione. Le istanze di destinazione dello stesso progetto condividono un bucket se si trovano nella stessa regione. In ogni bucket puoi utilizzare un massimo di tre token per le operazioni di ripristino. Ogni 10 minuti viene aggiunto un nuovo token al bucket. Se il bucket è pieno, il token supera il limite.
Ogni volta che esegui un'operazione di ripristino, dal bucket viene concesso un token. Se l'operazione va a buon fine, il token viene rimosso dal bucket. In caso di errore, il token viene restituito al bucket. Il seguente diagramma mostra come funziona:
Ad esempio, nella figura seguente, Backup1, Backup2 e Backup3 sono i backup della stessa istanza di origine.
- Ogni backup (Backup1, Backup2 e Backup3) ha il proprio bucket di token per le operazioni di ripristino che hanno come target istanze diverse nel progetto 1 nella regione A (Bucket11A, Bucket21A e Bucket31A). Poiché ogni backup ha il proprio bucket, puoi ripristinare ogni backup nella stessa istanza tre volte ogni trenta minuti.
- Ogni backup ha un bucket per un progetto e una regione separati.
Ad esempio, se in una regione sono presenti cinque progetti, in quella regione sono presenti cinque
bucket per il backup, uno in ogni progetto. Nella figura precedente abbiamo due progetti nella regione A: Progetto 1 e Progetto n.
- Backup1 ha due bucket di token per le operazioni di ripristino nella regione A. Un bucket per il progetto 1 (Bucket11A) e un altro per il progetto n (Bucket1nA).
- Analogamente, Backup3 ha due bucket per le operazioni di ripristino nella regione A. Uno per il progetto 1 (Bucket31A) e uno per il progetto n (Bucket3nA).
- Backup3 ha un bucket nella regione B per il progetto 1 perché tutte le istanze nello stesso progetto di destinazione e nella stessa regione di destinazione condividono un bucket.