Questa pagina spiega come funzionano le importazioni e le esportazioni in Memorystore for Redis.
La funzionalità di importazione ed esportazione utilizza la funzionalità di snapshot RDB nativa di Redis per importare o esportare dati da un'istanza Memorystore per Redis. L'uso del formato RDB nativo impedisce il blocco e semplifica notevolmente lo spostamento dei dati all'interno o all'esterno di Google Cloud. Uso dell'importazione e dell'esportazione Bucket Cloud Storage per archiviare i file RDB.
Il comportamento di un'istanza Memorystore for Redis durante l'esportazione è molto simile
al comando BGSAVE
in Redis open source. Memorystore for Redis esegue le importazioni copiando il file RDB nella directory dei dati dell'istanza.
Per istruzioni su come importare ed esportare i file RDB, consulta Importazione di dati in un'istanza Redis ed Esportazione di dati da un'istanza Redis.
Comportamento dell'elemento di importazione
Per prestazioni ottimali, devi eseguire l'importazione dai bucket Cloud Storage situati nella stessa regione dell'istanza Redis.
L'istanza Redis non è disponibile durante un'operazione di importazione. La tua istanza diventa disponibile al termine dell'operazione di importazione.
Se un'importazione ha esito positivo, i dati esistenti nell'istanza vengono sovrascritti in base ai dati del file RDB.
Se per qualsiasi motivo l'importazione non riesce, l'istanza viene riportata online, ma i dati potrebbero essere stati completamente svuotati. Puoi riprovare l'importazione utilizzando lo stesso RDB o puoi utilizzare un altro file RDB per ripristinare i dati.
L'istanza Memorystore for Redis può importare file RDB dallo stesso Redis e da una versione Redis precedente, ma non può importare file RDB da una versione più recente.
Un'operazione di importazione può essere annullata, ma tieni presente che l'annullamento comporta il recupero dell'istanza con una cache completamente svuotata. Questo vale sia per le istanze di livello base che per quelle di livello standard.
Un'istanza può importare i backup solo dalle versioni precedenti di Redis. Un'istanza che esegue Redis 5.0 può importare un database RDB esportato da Redis 4.0, ma un'istanza che esegue Redis 4.0 non può importare un database RDB da Redis 5.0.
Comportamento della funzionalità di esportazione
Puoi leggere e scrivere dati nell'istanza Redis durante un'operazione di esportazione. ma non potrai eseguire operazioni amministrative come la scalabilità, l'aggiornamento o configurando l'istanza.
L'istanza potrebbe registrare una maggiore latenza durante l'esportazione.
Per prestazioni ottimali, devi esportare i backup RDB nei bucket Cloud Storage situati nella stessa regione dell'istanza Redis.
Durante un'esportazione, il file RDB viene salvato in un bucket Cloud Storage del tuo scegliere.
Puoi annullare un'operazione di esportazione in qualsiasi momento. L'annullamento non influisce i dati o la disponibilità di un'istanza.
- L’annullamento di un’esportazione elimina il file RDB che viene scritto
nel bucket Cloud Storage e libera la memoria utilizzata da
BGSAVE
e il processo di sviluppo.
- L’annullamento di un’esportazione elimina il file RDB che viene scritto
nel bucket Cloud Storage e libera la memoria utilizzata da
Un'esportazione può sovrascrivere un file esistente con lo stesso nome senza ulteriori autorizzazioni quando utilizzi la console Google Cloud. Per esportare su un modello esistente file con
gcloud
, l'account utente richiedestorage.objects.delete
autorizzazione.
Esportazione con un elevato carico di scrittura
Se esegui un'esportazione durante un periodo di elevato carico di scrittura della memoria dell'istanza l'utilizzo può raddoppiare, causando la mancata riuscita dell'operazione di esportazione. Dovresti eseguire le operazioni di esportazione durante i periodi di scrittura ridotta. Per monitorare I dati Redis sono archiviati nell'istanza. Puoi creare una dashboard per monitorare la memoria utilizzata e di monitorare le metriche sull'utilizzo della memoria dell'istanza con Cloud Monitoring.
L'esportazione di Memorystore for Redis utilizza la funzionalità BGSAVE
di Redis per eseguire
dei dati in un'istanza. Durante l'esecuzione di BGSAVE
, Redis crea un nuovo fork
processo figlio per acquisire lo snapshot. Redis utilizza la funzionalità copy-on-write
durante questo processo.
Ciò significa che il fork iniziale alloca una memoria aggiuntiva minima, ma tutte le pagine modificate dal traffico di scrittura del server Redis vengono duplicate. Pertanto, in periodi di scrittura elevata, nel peggiore dei casi, l'impronta di memoria di Redis raddoppia, causando l'errore dell'operazione di esportazione.
Esportazione durante un'operazione BGSAVE
Non puoi eseguire l'esportazione mentre è in esecuzione un'operazione BGSAVE
. A volte le istanze di Memorystore for Redis di livello standard eseguono operazioni di resynchronizzazione completa o "sincronizzazioni complete" per mantenere sincronizzati il principale e la replica. R
la risincronizzazione completa usa il comando BGSAVE
, che impedisce
a Memorystore.
Per verificare se è in corso un'operazione BGSAVE
, visualizza l'endpoint API BGSAVE
con Esplora metriche.
Per visualizzare le metriche per una risorsa monitorata con Esplora metriche, segui questi passaggi:
-
Nella console Google Cloud, vai alla pagina leaderboard Esplora metriche:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoring.
- Nell'elemento Metrica, espandi il menu Seleziona una metrica e poi
seleziona un tipo di risorsa e un tipo di metrica. Ad esempio, per tracciare un grafico sull'utilizzo della CPU di una
macchina virtuale, segui questi passaggi:
- (Facoltativo) Per ridurre le opzioni del menu, inserisci parte del nome della metrica nella
barra dei filtri. Per questo esempio, inserisci
utilization
. - Nel menu Risorse attive, seleziona Istanza VM.
- Nel menu Categorie di metriche attive, seleziona Istanza.
- Nel menu Metriche attive, seleziona Utilizzo CPU e poi fai clic su Applica.
- (Facoltativo) Per ridurre le opzioni del menu, inserisci parte del nome della metrica nella
barra dei filtri. Per questo esempio, inserisci
Per filtrare le serie temporali visualizzate, utilizza l'elemento Filtro.
Per combinare le serie temporali, utilizza i menu dell'elemento Aggregazione. Ad esempio, per visualizzare l'utilizzo della CPU per le VM, in base alla zona, imposta il primo menu su Media e il secondo menu su zona.
Tutte le serie temporali vengono visualizzate quando il primo menu dell'elemento Aggregazione è impostato su Nessuna aggregazione. Le impostazioni predefinite per l'elemento Aggregazione sono determinate dal tipo di metrica che hai selezionato.
In alternativa, puoi utilizzare i tuoi strumenti API a riga di comando.
Autorizzazioni richieste per l'importazione e l'esportazione
Un utente deve configurare autorizzazioni IAM sufficienti per eseguire l'importazione esporta i file RDB. La configurazione delle autorizzazioni più semplice consiste nell'applicare all'account utente i ruoli IAM Amministratore Redis Cloud Memorystore e Amministratore archiviazione. Tuttavia, questa configurazione potrebbe non essere appropriata per alcuni account utente perché concede loro autorizzazioni per creare, modificare o eliminare risorse a cui non dovrebbero avere accesso. Per istruzioni su come impostare autorizzazioni con limitazioni minime, consulta Concessione di autorizzazioni limitate per importazione ed esportazione.
Durata delle importazioni ed esportazioni
La durata dell'importazione o dell'esportazione dipende dalle dimensioni dell'istanza e del set di dati al suo interno. A seconda delle dimensioni, le importazioni e le esportazioni possono richiedere da pochi minuti a qualche ora.
Ad esempio, se importi o esporti un'istanza di 10 GB con 8 GB di memoria utilizzata, l'operazione può richiedere 5 minuti. Se importi o esporti un'istanza da 120 GB con 100 GB di memoria utilizzata. L'operazione può richiedere un'ora.
Interruzione di un'importazione o di un'esportazione
Per interrompere un'importazione o un'esportazione, consulta le seguenti pagine:
Monitoraggio dell'avanzamento dell'operazione
La stima del tempo di completamento non è disponibile durante l'importazione e l'esportazione. Puoi verificare se l'operazione è in corso controllando la pagina dei dettagli dell'istanza. Per visualizzare la pagina dei dettagli dell'istanza, fai clic sull'ID istanza nella pagina Elenco istanze di Memorystore for Redis.
Puoi anche monitorare l'avanzamento di un'operazione di importazione eseguendo il seguente comando:
gcloud redis instances describe [INSTANCE_ID] --region=[REGION]
Dove:
[INSTANCE_ID]
è l'ID dell'istanza Memorystore for Redis.[REGION]
è la regione in cui si trova l'istanza.
Il comando restituisce state: IMPORTING
o state: READY
come uno dei
descrizione.
Bucket Cloud Storage non supportati
I bucket Cloud Storage per i pagamenti a carico del richiedente non sono supportati per Importazioni ed esportazioni di Memorystore.
Protezione dei bucket Cloud Storage
Devi assicurarti che il bucket Cloud Storage abbia le limitazioni giuste per impedire l'accesso non autorizzato al backup RDB di Redis che contiene. Consulta le opzioni di controllo dell'accesso di Cloud Storage per scoprire come proteggere i bucket di Cloud Storage.
Garantire memoria sufficiente per completare un'esportazione
Per evitare che l'esportazione causi l'esaurimento della memoria, dovresti avere il 50% di spazio libero di memoria nell'istanza durante il processo di esportazione. Questa operazione potrebbe non essere obbligatoria per tutti tempo, a seconda del carico di scrittura, ma avere il 50% di memoria libera garantisce che lo spazio libero sia sufficiente per coprire l'overhead della copia in scrittura, nel caso in cui siano presenti molte pagine durante il processo di esportazione.
Per comprendere l'utilizzo attuale della memoria dell'istanza, configura un avviso per ricevere una notifica quando la memoria utilizzata raggiunge una soglia personalizzabile. Inoltre, devi configurare una dashboard di monitoraggio della memoria con Cloud Monitoring. Queste misure ti consentono di comprendere i pattern di utilizzo della memoria delle istanze. La comprensione dei pattern di utilizzo della memoria consente di dell'istanza in modo corretto durante l'esportazione a intervalli regolari.
Esportazione e importazione in istanze con repliche di lettura
Per tutte le istanze Redis, incluse quelle con replica di lettura abilitata, i dati vengono esportati dal nodo principale.
Per le istanze con replica di lettura abilitata, l'esportazione può aumentare il carico della CPU e l'impronta di memoria sul nodo principale.
Quando importi i dati in un'istanza con replica di lettura abilitata, l'istanza principale si riavvia durante l'operazione di importazione e non è disponibile finché i nuovi dati non vengono caricati completamente nel database.
Passaggi successivi
Segui la guida per importare dati in un'istanza Redis.
Segui la guida per esportare dati da un'istanza Redis.