Informazioni sui backup di Cloud SQL

Questa pagina descrive come funzionano i backup della tua istanza Cloud SQL.

Per indicazioni dettagliate per pianificare i backup o creare un backup on demand, consulta la sezione Creazione e gestione dei backup on demand e automatici.

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

Cosa forniscono i backup

I backup consentono di ripristinare i dati persi nell'istanza Cloud SQL. Inoltre, se un'istanza presenta un problema, puoi ripristinarla allo stato precedente utilizzando la copia di backup per sovrascriverla. Abilita i backup automatici per tutte le istanze che contengono dati necessari. I backup proteggono i tuoi dati da perdite o danni.

L'abilitazione dei backup automatici, insieme al logging binario, è necessaria anche per alcune operazioni, come la creazione di cloni e repliche.

Costo dei backup

Per impostazione predefinita, per ogni istanza Cloud SQL conserva sette backup automatici, oltre a quelli on demand. Puoi configurare il numero di backup automatici da conservare (da 1 a 365). Addebitiamo una tariffa inferiore per l'archiviazione di backup rispetto ad altri tipi di istanze.

Cloud SQL non esegue il backup di un'istanza se interrompi o elimini l'istanza. Se elimini un'istanza, i dati vengono conservati per quattro giorni.

Per ulteriori informazioni, consulta la pagina sui prezzi.

Backup ed esportazioni

I backup sono gestiti da Cloud SQL in base ai criteri di conservazione e vengono archiviati separatamente dall'istanza Cloud SQL. I backup di Cloud SQL differiscono da un'esportazione caricata in Cloud Storage, dove 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 eseguire il ripristino solo da un backup in 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 del database o di esportare e poi 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. Il backup meno recente ha dimensioni simili a quelle del database, ma le dimensioni dei backup successivi dipendono dalla frequenza di modifica dei dati. Quando viene eliminato il backup meno recente, 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. Questo può essere 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 come esistono. Vengono mantenute finché non le elimini o finché non viene eliminata la relativa istanza. Dal momento che non vengono eliminati automaticamente, i backup on demand possono avere effetto a lungo termine sui tuoi addebiti.

Backup automatici

I backup automatici vengono eseguiti ogni giorno, entro un periodo 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 la finestra di backup, vengono eseguiti ogni giorno i backup automatici dell'istanza. Dopo l'arresto dell'istanza, viene effettuato un ulteriore backup automatico per salvaguardare tutte le modifiche precedenti all'arresto dell'istanza. Per impostazione predefinita vengono conservati fino a sette backup più recenti. I backup automatici vengono interrotti se la tua istanza è stata arrestata per più di 36 ore. Puoi configurare il numero di backup automatici da conservare, da 1 a 365. I valori di conservazione dei log delle transazioni e dei backup possono essere modificati dall'impostazione predefinita. Scopri di più.

Dove sono archiviati i backup

Le posizioni dei backup includono:

Località di backup predefinite

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

Località di backup personalizzate

Cloud SQL ti consente di selezionare una località personalizzata per i tuoi dati di backup. Ciò è utile se la tua organizzazione deve rispettare le normative sulla residenza dei dati che richiedono di mantenere i backup entro un limite geografico specifico. Se la tua organizzazione ha questo tipo di requisito, probabilmente utilizza un criterio dell'organizzazione relativo alla restrizione sulla località delle risorse. Con questo criterio, quando cerchi di utilizzare una località geografica non conforme al criterio, viene visualizzato un avviso nella pagina Backup. Se visualizzi questo avviso, devi sostituire la località di backup con una località consentita dal criterio.

Per un elenco completo dei valori validi per la regione, consulta Località dell'istanza. Per un elenco completo dei valori per più aree geografiche, consulta Località con più aree geografiche.

Consulta 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 all'eliminazione dei backup o fino all'eliminazione dell'istanza.

Mentre i log delle transazioni vengono conteggiati in giorni, non è garantito che i backup automatici avvengano in un giorno. Per queste impostazioni di conservazione vengono utilizzate unità diverse. La conservazione automatica dei backup è un conteggio e può essere impostata da 1 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, perché i log e i backup vengono eliminati più velocemente. Per i log delle transazioni, la dimensione del disco non cresce di pari passo con i limiti inferiori. L'utilizzo di valori più elevati per la conservazione dei backup automatici ti consente di ripristinare i dati in modo da ritrovarli nel tempo.

I log vengono eliminati definitivamente una volta al giorno, non di continuo. Quando il numero di giorni di conservazione dei log è uguale al numero di backup, è possibile che la conservazione dei log non sia sufficiente. Ad esempio, l'impostazione della conservazione dei log su sette giorni e la conservazione dei backup su sette backup significa che verranno conservati tra sei e sette giorni di log.

Ti consigliamo di impostare il numero di backup su almeno uno in più dei giorni di conservazione dei log per garantire una durata minima dei giorni di conservazione dei log specificati.

Un'attività di scrittura elevata nel database può generare un volume elevato di log delle transazioni, che possono consumare spazio su disco significativo e portare a una crescita del disco per le istanze con aumento automatico dell'archiviazione. Consigliamo di ridimensionare l'archiviazione dell'istanza 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 solo esportare i dati dell'istanza. Consulta la pagina relativa all'esportazione dei dati da Cloud SQL.

Informazioni sull'utente speciale di backup

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

In che modo i backup influiscono sulle operazioni dell'istanza

Per le istanze MySQL, il flag FLUSH TABLES WITH READ LOCK non viene utilizzato per i backup. Ciò significa che le scritture e le altre operazioni non sono interessate dalle operazioni di backup.

In genere, i backup vengono completati entro pochi secondi, ma se hai scritto una grande quantità di dati dall'ultimo backup, il completamento del backup richiede più tempo.

Se è presente un'operazione in attesa al momento del tentativo di backup, Cloud SQL di solito fa diversi tentativi all'interno della finestra per completare il backup. Le operazioni che bloccano il backup sono operazioni di istanza di Cloud SQL a lunga esecuzione come importazione, esportazione, aggiornamento (ad esempio, una modifica dei metadati dell'istanza) e riavvio dell'istanza.

Durante un'operazione a lunga esecuzione, come il caricamento dei dati, puoi disattivare temporaneamente i backup automatici.

Limitazioni della frequenza di backup

Cloud SQL limita la frequenza delle 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 nella quota. Se raggiungi questo limite, l'operazione non riesce e viene visualizzato un messaggio di errore che ti avvisa quando puoi riprovare.

Diamo un'occhiata alle prestazioni delle limitazioni di frequenza di Cloud SQL per i backup.

Cloud SQL utilizza i token di un bucket per determinare quante operazioni di backup sono disponibili in una volta sola. Ogni istanza ha un bucket. Il bucket contiene un massimo di cinque token che puoi utilizzare per le operazioni di backup. Ogni 10 minuti viene aggiunto un nuovo token al bucket. Se il bucket è pieno, il token esce.

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

Come funzionano i token

Risolvere i problemi

Problema Risolvere i problemi
Non puoi vedere lo stato dell'operazione corrente. Google Cloud Console segnala un esito positivo o negativo soltanto 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, potrebbe essere necessario utilizzare gli audit log. I file di log pertinenti includono:

  • cloudsql.googlapis.com/mysql-general.log
  • cloudsql.googleapis.com/mysql.err
  • Se Cloud Audit Logs è abilitato e disponi delle autorizzazioni necessarie per visualizzarli, possono essere disponibili anche cloudaudit.googleapis.com/activity.
Non puoi eseguire un 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 definitivamente. 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 quindi eseguire un'operazione di importazione per ricreare il database. Le esportazioni vengono scritte in Cloud Storage e da lì vengono lette.

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

Se hai la necessità 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 autorizzazioni per gli oggetti nel database dumped devono esistere nel database di destinazione. In caso contrario, l'operazione di ripristino non riesce a ricreare gli oggetti con la proprietà o le autorizzazioni originali.

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

Vuoi aumentare il numero di giorni in cui puoi conservare i backup automatici da 7 a 30 giorni o più. Vengono conservati solo sette backup. I backup vengono eliminati regolarmente a causa del costo e delle dimensioni della conservazione. Purtroppo, questo significa che quelli attualmente visibili sono gli unici backup automatici da cui puoi eseguire il ripristino.

Per conservare i backup a tempo indeterminato, puoi creare un backup on demand, poiché non vengono eliminati con le stesse modalità dei backup automatici. I backup on demand rimangono a tempo indeterminato. Ciò significa che rimangono fino all'eliminazione o fino all'eliminazione dell'istanza a cui appartengono. Dato che questo tipo di backup non viene eliminato automaticamente, può influire sulla fatturazione.

Backup automatico non riuscito. 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 l'API REST o i comandi gcloud. Ad esempio, elenca prima i backup per un'istanza, quindi descrivi un backup specifico in base al relativo ID:


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

gcloud sql backups describe BACKUP-ID \
--instance=INSTANCE_ID
    

Passaggi successivi