Informazioni sui backup di Cloud SQL

Questa pagina descrive il funzionamento dei backup dell'istanza Cloud SQL.

Per indicazioni dettagliate per pianificare i backup o creare un backup on demand, consulta la sezione Creare e gestire i backup on demand e automatici.

Per una panoramica sul ripristino di dati su un'istanza dal backup, consulta Panoramica sul ripristino di un'istanza.

Cosa offrono i backup

I backup consentono di ripristinare i dati persi nell'istanza Cloud SQL. Inoltre, se un'istanza presenta un problema, puoi ripristinarla in uno stato precedente utilizzando il backup per sovrascriverla. Abilita i backup automatici per ogni istanza che contiene i dati necessari. I backup proteggono i tuoi dati da perdite o danni.

Per alcune operazioni, come la creazione di cloni e repliche, è necessario anche l'attivazione dei backup automatici, oltre al logging delle transazioni.

Costo dei backup

Per impostazione predefinita, per ogni istanza, Cloud SQL conserva sette backup automatici, oltre a tutti i backup on demand. Puoi configurare quanti backup automatici conservare. Per l'archiviazione di backup viene addebitata una tariffa inferiore rispetto ad altri tipi di istanze. Per ulteriori informazioni, consulta la pagina dei prezzi.

Backup e esportazioni a confronto

I backup vengono gestiti da Cloud SQL in base ai criteri di conservazione e sono archiviati separatamente dall'istanza Cloud SQL. I backup di Cloud SQL differiscono da un'esportazione caricata in Cloud Storage, in cui gestisci il ciclo di vita. I backup comprendono l'intero database. Le esportazioni possono selezionare contenuti specifici.

Le operazioni di backup e ripristino non possono essere utilizzate per eseguire l'upgrade di un database a una versione successiva. Puoi ripristinare da un backup solo un'istanza con la stessa versione del database.

Per eseguire l'upgrade a una versione successiva, valuta la possibilità di utilizzare il servizio di migrazione dei database o di esportare e importare il database in una nuova istanza Cloud SQL.

Informazioni sulle dimensioni del backup

I backup di Cloud SQL sono incrementali. Contengono solo i dati che sono stati modificati dopo l'acquisizione del backup precedente. La dimensione del backup meno recente è simile a quella del tuo database, ma le dimensioni dei backup successivi dipendono dalla frequenza di modifica dei dati. Quando il backup meno recente viene eliminato, la dimensione del backup precedente successivo aumenta, in modo che esista ancora un backup completo.

Tipi di backup

Cloud SQL esegue due tipi di backup:

Backup on demand

Puoi creare un backup in qualsiasi momento. Ti è utile se stai per eseguire un'operazione rischiosa sul database o se hai bisogno di un backup e non vuoi attendere la finestra di backup. Puoi creare backup on demand per qualsiasi istanza, che si tratti di un'istanza con backup automatici attivati o meno.

I backup on demand non vengono eliminati automaticamente con la stessa modalità dei backup automatici. Permangono finché non li elimini o finché non viene eliminata la loro istanza. Poiché non vengono eliminati automaticamente, i backup on demand possono avere effetto a lungo termine sui costi di fatturazione.

Backup automatici

Per i backup automatici viene utilizzata una finestra di backup di 4 ore. Il backup inizia durante la finestra di backup. Quando possibile, pianifica i backup quando l'istanza ha meno attività.

Durante il periodo di backup, i backup automatici vengono eseguiti ogni giorno che l'istanza è in esecuzione. Per impostazione predefinita, vengono conservati i sette backup più recenti. Puoi configurare quanti backup automatici conservare, da 1 a 365. I valori di conservazione dei log di backup e delle transazioni possono essere modificati dall'impostazione predefinita. Scopri di più.

Dove vengono archiviati i backup

Le posizioni dei backup includono:

Località di backup predefinite

Se non specifichi una località di archiviazione, i backup vengono archiviati nella località a più aree geografiche geograficamente più vicina alla località della tua istanza Cloud SQL. Ad esempio, se l'istanza Cloud SQL è in us-central1, i tuoi backup vengono archiviati nell'area geografica us multipla per impostazione predefinita. Tuttavia, una località predefinita come australia-southeast1 si trova al di fuori di più aree geografiche. L'area geografica più vicina è asia.

Località di backup personalizzate

Cloud SQL ti consente di selezionare una località personalizzata per i tuoi dati di backup. Questo è utile se la tua organizzazione deve rispettare le normative sulla residenza dei dati che richiedono di conservare i backup entro un limite geografico specifico. Se la tua organizzazione ha questo tipo di requisiti, probabilmente utilizza un criterio organizzativo Restrizione sulle località delle risorse. Con questo criterio, quando cerchi di utilizzare una posizione geografica non conforme al criterio, viene visualizzato un avviso nella pagina Backup. Se vedi questo avviso, devi cambiare la località di backup con una località consentita dal criterio.

Per un elenco completo dei valori a livello di area geografica validi, consulta la sezione Località delle istanze. Per un elenco completo dei valori per più aree geografiche, consulta Località con più aree geografiche.

Vedi Impostare una posizione personalizzata per i backup e Visualizzare le posizioni per i backup.

Backup automatico e conservazione dei log delle transazioni

I backup automatici vengono utilizzati per ripristinare un'istanza Cloud SQL. Per eseguire un recupero point-in-time viene utilizzata una combinazione di backup automatici e log delle transazioni.

I backup automatici possono essere conservati per un massimo di un anno configurando il periodo di conservazione, mentre i backup on demand persistono fino a quando non elimini i backup o finché l'istanza non viene eliminata.

I log delle transazioni vengono conteggiati in giorni, ma non è garantito che i backup automatici si verifichino su un limite giornaliero. Per queste impostazioni di conservazione vengono utilizzate unità diverse. La conservazione automatica dei backup è un conteggio e può essere impostata da uno a 365 backup. La conservazione dei log delle transazioni è in giorni e può essere impostata da uno a sette. Il valore predefinito di entrambi è sette.

I limiti inferiori sono utili per le istanze di test, poiché i log e i backup vengono eliminati più rapidamente. Per i log delle transazioni, la dimensione del disco non aumenta di conseguenza con limiti inferiori. L'utilizzo di valori più elevati per la conservazione dei backup automatici ti consente di ripristinare i dati in modo più distante nel tempo.

I log vengono eliminati una volta al giorno, non in modo continuo. Se il numero di giorni di conservazione dei log corrisponde al numero di backup, è possibile che non sia sufficiente una conservazione dei log. Ad esempio, se la conservazione dei log è impostata su sette giorni e quella di backup su sette, questo significa che i log vengono conservati per un periodo compreso tra sei e sette giorni.

Per garantire un numero minimo di giorni di conservazione dei log, ti consigliamo di impostare un numero di backup di almeno uno tra i giorni di conservazione dei log.

Un'elevata attività di scrittura nel database può generare un volume elevato di log delle transazioni, che può consumare spazio su disco significativo e determinare una crescita del disco per le istanze abilitate per l'aumento dello spazio di archiviazione automatico. Ti consigliamo di dimensionare l'archiviazione delle istanze per tenere conto della conservazione dei log delle transazioni.

Vedi Impostare la conservazione dei backup automatici.

Vedi Impostare la conservazione dei log delle transazioni.

Posso esportare un backup?

No, non puoi esportare un backup. Puoi esportare solo i dati delle istanze. Consulta la pagina Esportazione dei dati da Cloud SQL.

Informazioni sull'utente speciale di backup

Cloud SQL crea un utente database speciale, cloudsqladmin, per ogni istanza, e genera una password univoca specifica per l'istanza. Cloud SQL esegue l'accesso come utente cloudsqladmin per eseguire backup automatici.

In che modo i backup influiscono sulle operazioni dell'istanza

Le operazioni di backup e le scritture non sono interessate dalle operazioni di backup.

Limitazioni della frequenza di backup

Cloud SQL limita la frequenza per le operazioni di backup sul disco dati. Sono consentite un massimo di cinque operazioni di backup ogni 50 minuti per istanza per progetto. Se un'operazione di backup non riesce, non verrà conteggiata per questa quota. Se viene raggiunto il limite, l'operazione non riesce e viene visualizzato un messaggio di errore che indica quando puoi riprovare.

Diamo un'occhiata al modo in cui Cloud SQL esegue la limitazione di frequenza per i backup.

Cloud SQL utilizza i token di un bucket per determinare quante operazioni di backup sono disponibili contemporaneamente. Ogni istanza ha un bucket. Il bucket dispone di un massimo di cinque token che puoi utilizzare per operazioni di backup. Ogni 10 minuti viene aggiunto un nuovo token al bucket. Se il bucket è al completo, viene eseguito l'overflow del token.

Ogni volta che esegui un'operazione di backup, il token viene concesso dal bucket. Se l'operazione ha esito positivo, il token viene rimosso dal bucket. Se non riesce, il token viene restituito al bucket. Il seguente diagramma mostra come funziona:

Come funzionano i token

Tabelle non registrate

Le tabelle non registrate vengono cancellate automaticamente durante il ripristino del backup.

Risolvere i problemi

Problema Risolvere i problemi
Non puoi visualizzare lo stato dell'operazione attuale. Google Cloud Console segnala l'esito positivo o negativo solo al termine dell'operazione. Non è progettato per mostrare avvisi o altri aggiornamenti.

Esegui il comando gcloud sql operations list per elencare tutte le operazioni per l'istanza Cloud SQL specificata.

Vuoi scoprire chi ha eseguito un'operazione di backup on demand. L'interfaccia utente non mostra l'utente che ha avviato un'operazione.

Cerca nei log e filtra per testo per trovare l'utente. Per informazioni private, potresti dover utilizzare gli audit log. I file di log pertinenti includono:

  • cloudsql.googleapis.com/postgres.log
  • Se gli audit log di Cloud sono abilitati e disponi delle autorizzazioni necessarie per visualizzarli, potrebbero essere disponibili anche cloudaudit.googleapis.com/activity.
Non puoi eseguire il backup dopo aver eliminato un'istanza. Il periodo di tolleranza per l'eliminazione definitiva di un'istanza Cloud SQL è di quattro giorni, ad eccezione delle repliche di lettura, che vengono eliminate immediatamente in via definitiva. Durante questo periodo, l'assistenza clienti può ricreare l'istanza. Se l'istanza viene ricreata, vengono ricreati anche i relativi backup. Dopo l'eliminazione definitiva delle istanze, non è possibile recuperare i dati.

Se hai eseguito un'operazione di esportazione, puoi creare una nuova istanza e poi eseguire un'operazione di importazione per ricreare il database. Le esportazioni vengono scritte in Cloud Storage e vengono importate da lì.

Un backup automatico rimane bloccato per molte ore e non può essere annullato. I backup possono richiedere molto tempo a seconda delle dimensioni del database.

Se hai davvero bisogno di annullare l'operazione, puoi chiedere all' assistenza clienti di force restart l'istanza.

Un'operazione di ripristino può non riuscire quando uno o più utenti a cui viene fatto riferimento nel file di dump SQL non esistono. Prima di ripristinare un dump SQL, tutti gli utenti del database che dispongono di oggetti o di cui sono state concesse le autorizzazioni per gli oggetti nel database rilasciato devono esistere nel database di destinazione. In caso contrario, l'operazione di ripristino non riesce a ricreare gli oggetti con le autorizzazioni o la proprietà originale.

Crea gli utenti del database prima di ripristinare il dump SQL.

Vuoi aumentare il numero di giorni per i quali puoi conservare i backup automatici da sette a 30 giorni o più. Vengono conservati solo sette backup. I backup vengono regolarmente eliminati a causa del costo e delle dimensioni della conservazione. Purtroppo, ciò significa che i backup attualmente visibili sono gli unici backup automatici da cui è possibile ripristinare.

Per mantenere i backup a tempo indeterminato, puoi creare un backup on demand, dato che non vengono eliminati allo stesso modo dei backup automatici. I backup on demand rimangono a tempo indeterminato. In altre parole, rimangono finché non vengono eliminati o finché l'istanza di appartenenza non viene eliminata. Poiché questo tipo di backup non viene eliminato automaticamente, questo può influire sulla fatturazione.

Il backup automatico non è riuscito e non hai ricevuto una notifica via email. Le notifiche non sono supportate per gli errori di backup.

Quando un backup automatico non riesce, viene visualizzato un messaggio Operation error nella pagina Details dell'istanza Cloud SQL.

Puoi trovare lo stato di un backup tramite i comandi API REST o gcloud. Ad esempio, elenca prima i backup per un'istanza, quindi descrivi un backup specifico in base al suo ID:


gcloud sql backups list \
--project=PROJECT_ID \
--instance=INSTANCE_ID
   

gcloud sql backups describe BACKUP-ID \
--instance=INSTANCE_ID
    
Un'istanza non funziona correttamente perché si trova tra gli stati di errore di ripristino e di backup. I tentativi di connessione e utilizzo del database dopo il ripristino non sono riusciti.
  • Le connessioni aperte potrebbero essere troppe. Troppe connessioni possono derivare da errori che si verificano nel mezzo di una connessione in cui non esistono impostazioni autovacuum per la pulizia delle connessioni non attive.
  • Il ciclismo può verificarsi se qualsiasi codice personalizzato utilizza una logica di nuovi tentativi che non si interrompe dopo alcuni errori.
  • Il traffico potrebbe essere eccessivo. Utilizza il pool di connessioni e altre best practice per la connettività.

Tentativi da effettuare

  1. Verifica che il database sia configurato per autovacuum.
  2. Controlla se è stata configurata una logica di nuovi tentativi di connessione nel codice personalizzato.
  3. Riduci il traffico finché il database non recupera, quindi esegui nuovamente il backup del traffico lentamente.
I dati non sono presenti quando esegui un'operazione di backup/ripristino. Le tabelle sono state create come non registrate. Ad esempio:

CREATE UNLOGGED TABLE ....

Le tabelle di seguito non sono incluse nel ripristino da un backup:

  • I contenuti delle tabelle non registrate non superano il failover su un'istanza ad alta disponibilità.
  • Le tabelle non registrate non sopravvivono agli arresti anomali postgres.
  • Le tabelle non registrate non vengono replicate in repliche di lettura.
  • Le tabelle non registrate vengono cancellate automaticamente durante il ripristino del backup.

La soluzione è evitare di utilizzare tabelle non registrate se vuoi ripristinarle tramite backup. Se ripristini un database che ha già tabelle non registrate, puoi eseguirne il dump su un file e ricaricare i dati dopo aver modificato il file scaricato in ALTER TABLE impostandolo su SET LOGGED in queste tabelle.

Passaggi successivi