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

Comprendere le opzioni di backup di MongoDB

I flussi di lavoro di backup e ripristino sono estremamente importanti per qualsiasi cluster MongoDB di produzione. Oltre alla funzionalità effettiva di backup e ripristino, devi anche considerare altri aspetti non funzionali come la disponibilità di backup, sicurezza, tempo di ripristino, granularità del ripristino, ecc. Ad alto livello, hai tre opzioni per eseguire il backup del tuo server MongoDB:

  1. Mongodump / Mongorestore
  2. Gestione cloud MongoDB
  3. Istantanee del disco

Ognuna delle tre tecniche di cui sopra ha i suoi pro e contro. Leggi sotto per capire più in dettaglio.

1. Mongodump /Mongorestore

Mongodump è lo strumento di backup "per iniziare" per la maggior parte degli sviluppatori MongoDB. Questo è probabilmente il modo in cui la maggior parte degli sviluppatori inizia a eseguire il backup del proprio database MongoDB. Lo strumento Mongodump è davvero semplice da usare e scarica tutti i dati nel database in formato binario (BSON) che puoi archiviare in una posizione a tua scelta.

Pro:

  1. Semplice da usare.
  2. Flessibilità in cui viene archiviato il backup - una volta completato il dump, puoi spostarlo in qualsiasi posizione a tua scelta:condivisioni NFS, AWS S3, ecc.

Contro:

  1. Backup completo, ogni volta:è un backup completo, non una differenza rispetto al backup precedente. Pertanto, poiché il database diventa grande, possono essere necessarie ore per completare il backup ed è poco maneggevole da archiviare.
  2. Non un punto nel tempo – Il backup creato da mongodump non è uno snapshot point-in-time per impostazione predefinita. Quindi, se i tuoi dati cambiano durante il backup, puoi finire con un mongodump che è incoerente dal punto di vista dell'applicazione. Puoi rimediare usando l'opzione "–oplog" che acquisisce un'istantanea alla fine del processo mongodump. Tuttavia, questa opzione non è disponibile per i database standalone

2. Gestore cloud MongoDB

Cloud Manager è un servizio cloud fornito dal team di MongoDB per aiutarti a eseguire il backup del tuo cluster MongoDB.

Pro:

  1. Semplice da usare – Installa l'agente MongoDB Cloud Manager per gestire il backup/ripristino del tuo cluster. È un po' più complicato rispetto all'utilizzo di mongodump, ma non di molto.
  2. Backup continuo – Il Cloud Manager interroga continuamente ed esegue il backup dell'oplog. Quindi, ciò ti consente di eseguire il ripristino in qualsiasi momento anziché in orari specifici in cui è stato eseguito il backup, riducendo al minimo l'esposizione alla perdita di dati.

Contro:

  1. Controllo dei dati – I dati di backup sono archiviati nel datacenter MongoDB al di fuori del tuo controllo. In alcune parti del mondo (es. Europa) e a seconda delle tue esigenze di sicurezza, questo può essere un grosso problema.
  2. Spese aggiuntive – Paghi in base alla dimensione dei dati e alla quantità di modifiche apportate all'oplog. Se hai un database di grandi dimensioni o un numero elevato di scritture, questo costo può aumentare.
  3. Ripristini lenti – Per ripristinare i dati da MongoDB Cloud Manager, i dati devono essere scaricati fisicamente dal data center di Cloud Manager. Questa può essere un'operazione che richiede molto tempo se si dispone di un database di grandi dimensioni, ad esempio, se i dati sono 1 TB, possono essere necessarie diverse ore per scaricare e utilizzare i dati.

3. Istantanee del disco

Gli snapshot possono essere a livello di cloud (ad es. snapshot del disco AWS EBS) o a livello di sistema operativo (snapshot LVM). Gli snapshot LVM, sebbene convenienti, non sono facilmente trasportabili all'esterno della macchina. Pertanto, per il resto di questa discussione, ci concentreremo sugli snapshot del disco cloud come gli snapshot di AWS EBS.

Pro:

  1. Semplice e facile da usare – Relativamente banale attivare un'istantanea di un disco EBS.
  2. Portabilità – Puoi spostare i tuoi snapshot in altri data center se hai bisogno di maggiore disponibilità per i tuoi backup.
  3. Istantanee del differenziale – Le istantanee sono istantanee differenziate, quindi memorizzano solo le modifiche dall'istantanea precedente. Ciò riduce la quantità di spazio di archiviazione necessaria per il backup.
  4. Nessuna copia dei dati – Non è necessaria alcuna copia dei dati per ripristinare i dati. Per esempio. Se desideri ripristinare uno snapshot da 1 TB, puoi semplicemente creare un nuovo volume dallo snapshot e ciò non comporta alcuna copia dei dati effettiva. Questo è un * grosso problema *  quando si tratta di grandi quantità di dati.
  5. Controllo backup – I backup rimangono nello stesso datacenter dei dati primari e sono protetti dagli stessi meccanismi di autenticazione dei server di dati primari.

Contro:

  1. Non è un backup continuo – È un backup point-in-time e può essere ripristinato solo nei punti di backup.
  2. Macchine fisiche - Non è possibile eseguire il backup di macchine fisiche in sede utilizzando questa tecnica.

Alla fine della giornata, se i tuoi dati sono piccoli, tutte e tre le opzioni funzioneranno bene. Quando inizi a disporre di quantità maggiori di dati, dovrai dedicare del tempo e scegliere l'opzione che funziona meglio per il tuo scenario.