MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Suggerimenti per la gestione del backup di MongoDB per i cluster partizionati

Effettuare backup appropriati del database è un'attività critica. Oltre a impostare l'architettura ad alta disponibilità del tuo MongoDB per i servizi di database, devi anche disporre di backup dei tuoi database per garantire la disponibilità dei dati in caso di disastro. Ad esempio, se elimini accidentalmente alcuni dati da un database di produzione, l'unico modo per recuperare i dati dal punto di vista del database è ripristinarli dal backup.

Recentemente, ClusterControl ha iniziato a supportare un nuovo metodo di backup, chiamato Percona Backup for MongoDB, sviluppato da Percona. Può eseguire backup coerenti per i set di repliche MongoDB e i cluster partizionati.

In questo blog, daremo uno sguardo alla gestione del backup per i set di repliche MongoDB e i cluster suddivisi.

Backup MongoDB in un'architettura ad alta disponibilità

ClusterControl supporta 3 metodi di backup, che sono mongodump, mongodb coerenti e Percona Backup for Mongodb. Il backup coerente mongodb utilizza l'utilità mongodump come metodo di backup e il backup può essere ripristinato utilizzando mongorestore.

L'ultimo metodo di backup supportato è Percona Backup for Mongodb per backup coerenti e puntuali di set di repliche e cluster suddivisi, richiede l'esecuzione di un agente su ogni nodo o set di repliche o nodi shard e nodi di gestione per i cluster di shard come descritto qui.

Configurare e programmare backup coerenti utilizzando Percona Backup for Mongodb in ClusterControl è molto semplice. Vai alla pagina Backup, quindi configura Percona Backup for Mongodb. Il prerequisito è avere Percona Backup for MongoDB in esecuzione su ogni nodo, che può essere installato anche da ClusterControl.

Dobbiamo installare l'agente Percona Backup for MongoDB prima di poter pianificare il backup come di seguito:

E quindi configurare la directory di backup. Tieni presente che la directory di backup deve essere un disco condiviso che è stato montato su tutti i nodi con esattamente lo stesso percorso montato di seguito:

Se non hai alcun tipo di disco condiviso pronto nel sistema, puoi usare NFS per ottenere questo risultato. Per configurare il server NFS, abbiamo bisogno di un server/macchina virtuale dedicato con spazio libero sufficiente per archiviare il backup. Installa la libreria nfs-utils e nfs-utils-lib nel server come di seguito (supponendo che stiamo usando CentOS based):

[[email protected] ~]# yum install nfs-utils nfs-utils-lib

[[email protected] ~]# yum install portmap

E avvia i servizi portmap e nfs.

[[email protected] ~]# /etc/init.d/portmap start

[[email protected] ~]# /etc/init.d/nfs start

Dopodiché, aggiungi nuove voci in /etc/exports come mostrato di seguito:

[[email protected] ~]# vi /etc/exports

/backup 10.10.10.11(rw,sync,no_root_squash)

Sul nodo database, dobbiamo solo montare il disco di archiviazione come memoria condivisa.

Ultima cosa, fai semplicemente clic sul pulsante Installa e verrà attivato un nuovo lavoro per configurare l'agente su ciascun nodo.

Dopo aver installato tutto PBM ggent, possiamo configurare il metodo di backup per il cluster come di seguito:

Backup fisico vs logico

Il backup di MongoDB supporta il backup logico e il backup fisico. Il metodo per il backup logico mediante l'utilità mongodump è incluso quando si installa il pacchetto mongodb. Mongodump ha bisogno di un accesso al tuo database mongodb, quindi richiede l'accesso alle credenziali per mongodump con privilegi di ruoli di backup e deve avere un'azione di ricerca per il backup del database.

Funziona con i formati di dump dei dati BSON. Mongodump si collegherà al tuo database con le credenziali fornite, leggerà tutti i dati nel tuo database e scaricherà i dati nei file. Poiché si tratta di un processo a thread singolo, il backup richiederà più tempo, specialmente con database di grandi dimensioni. Mongodump non mantiene l'atomicità delle transazioni tra gli shard, ecco perché non può essere utilizzato come strategia di backup per mongodb versione 4.2 e successive in un cluster sharded. Percona Backup for MongoDB è un backup logico ma supporta backup coerenti di cluster.

Il backup fisico in MongoDB funziona tramite l'istantanea dei file system mongodb, copia i file mongodb sottostanti in un'altra posizione come backup di base del database mongodb. Gli snapshot del file system sono il sistema operativo se si utilizza LVM (Logical Volume Manager) come software per la gestione del layout del disco e del dispositivo, o un'appliance software, ad es. Veritas o NetApp Backup. È necessario abilitare l'inserimento nel journal, il registro delle attività delle modifiche in mongodb prima di eseguire lo snapshot del file system per rendere coerente il backup.

Oltre allo snapshot del filesystem, puoi anche usare il comando cp o rsync per copiare i file di dati MongoDB, ma devi interrompere il processo di scrittura su mongodb perché il processo di copia dei file di dati non è un'operazione atomica. Il backup non può essere utilizzato per il ripristino temporizzato nei set di repliche o nelle architetture di cluster partizionati.

Percona Backup for MongoDB è costituito da due componenti, pbm-agent che deve essere installato su ciascun nodo e pbm come interfaccia a riga di comando per interagire ed eseguire i backup. La coordinata pbm-agent tra i nodi del database ed eseguendo il processo di backup e ripristino. L'agente pbm deciderà il nodo migliore per eseguire il backup.

Backup PITR

In molti sistemi di database, è comune utilizzare un checkpoint per scaricare i dati nel disco. MongoDB utilizza il motore di archiviazione WiredTiger come motore di archiviazione predefinito e utilizza anche i checkpoint per fornire una visualizzazione coerente dei dati. Non solo, il checkpoint in MongoDB può essere utilizzato per recuperare dall'ultimo checkpoint. Il journaling funziona tra ogni checkpoint, l'inserimento nel journal è necessario per il ripristino da interruzioni impreviste che si verificano in qualsiasi momento tra i checkpoint. Il journaling garantisce che le operazioni di scrittura siano registrate su disco, MongoDB creerà una voce di giornale per ogni modifica, inclusi i byte modificati e la posizione del disco.

Mongodump e mongorestore possono essere utilizzati per il backup di ripristino point-in-time, c'è un'opzione per sfruttare l'oplog. L'oplog è una raccolta limitata in MongoDB che tiene traccia di tutte le modifiche nelle raccolte per ogni transazione di scrittura (ad es. inserimento, aggiornamento, eliminazione). Quindi, se si desidera eseguire il ripristino temporizzato, è necessario eseguire il ripristino dall'ultimo backup completo e utilizzare anche il file oplog per applicare le modifiche all'ora esatta in cui si desidera eseguire il ripristino. Un altro strumento che può essere utilizzato è Percona Backup for MongoDB, il processo è simile a quello di mongodump, dobbiamo ripristinare dal backup e quindi applicare l'oplog.

Conclusione

L'esecuzione di un backup coerente è importante, specialmente nelle configurazioni MongoDB in cluster (set di repliche o cluster partizionato). ClusterControl fornisce un modo semplice per configurare Percona Backup for MongoDB nel cluster e pianificare i backup.