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

Come recuperare da un rollback di MongoDB?

Se stai eseguendo una replica MongoDB impostata in un ambiente cloud pubblico per un periodo di tempo ragionevole, le probabilità sono che hai riscontrato un "rollback". Sembra scoraggiante, ma ci sono semplici passaggi per recuperare i tuoi dati nel caso in cui il tuo sistema subisca un rollback.

Quando si verifica un rollback?

Un rollback in un set di repliche MongoDB può verificarsi nella seguente sequenza di passaggi
1. Un primario MongoDB accetta scritture che non sono state ancora replicate su altri secondari e quindi si arresta in modo anomalo
2. Un altro server diventa primario e accetta altre scritture
3. Quando il primario precedente si ripresenta e risincronizza il suo stato con la maggioranza

Posso impedire che si verifichino rollback in primo luogo?

Sicuro. Ma come sempre ha un prezzo. Puoi impostare la tua preoccupazione di scrittura su "MAGGIORE". Ciò richiederà che tutte le tue scritture siano impegnate nella maggior parte dei nodi nel set di repliche prima che MongoDB possa riconoscerlo correttamente. Tuttavia, ciò avrà un impatto drammatico sulla velocità effettiva di scrittura. Quindi, nel mondo reale, un buon equilibrio potrebbe consistere nell'utilizzare la preoccupazione di scrittura "MAJORITY" solo per le scritture di dati transazionali importanti

Come recuperare i dati da un rollback?

Di seguito sono riportati quattro semplici passaggi per recuperare i dati in caso di rollback

1.  Trova i file di rollback
Quando si verifica un rollback, i file bson dei dati di rollback vengono inseriti nella directory "rollback" del percorso dati MongoDB. I file hanno un aspetto simile a quello

<dbname>.<collectioname>.2016-02-08T19-34-44.0.bson

2. Caricare i dati dal rollback in un database o server separato
La mia preferenza è copiare i file di rollback su un nuovo server e utilizzare mongorestore per caricarli nel server. Ecco la sintassi che puoi usare

mongorestore -u <> -p <> -h 127.0.0.1 -d <rollbackrestoretestdb> -c <rollbackrestoretestc> <path to the .bson file> --authenticationDatabase=<database of user>

3.  Sfoglia i dati e ripulisci i dati non necessari
A questo punto, in qualità di amministratore del database, dovrai utilizzare la tua discrezione per decidere quali dati del rollback desideri conservare e quali dati non hanno più senso. Nella maggior parte dei casi è improbabile che tu possa semplicemente importare tutti i dati. Questo è probabilmente il passaggio più difficile nel ripristino del rollback.

4. Importa i dati nel cluster primario del cluster
Utilizza gli strumenti mongodump e mongorestore per scaricare i dati ripuliti e reimportarli nel cluster di produzione originale.

Per ulteriori informazioni sulle operazioni di rollback, consultare la documentazione ufficiale di MongoDB