Hvis du kører et MongoDB-replikasæt i et offentligt skymiljø i et rimeligt tidsrum, er oddsene, at du har oplevet en 'tilbageføring'. Det lyder skræmmende, men der er enkle trin til at gendanne dine data, hvis dit system oplever en tilbagerulning.
Hvornår sker en tilbagerulning?
En tilbagerulning i et MongoDB-replikasæt kan ske i følgende trinsekvens
1. En MongoDB-primær accepterer skrivninger, der endnu ikke er replikeret til andre sekundære og derefter går ned
2. En anden server bliver primær og accepterer andre skrivninger
3. Når den forrige primære kommer op igen og synkroniserer sin tilstand til flertallet
Kan jeg forhindre tilbagerulninger i første omgang?
Jo da. Men som altid kommer det med en pris. Du kan indstille din skrivebekymring til 'FLEREDELIGT'. Dette vil kræve, at alle dine skrivninger er forpligtet til et flertal af noder i replikasættet, før MongoDB med succes kan anerkende det. Dette vil dog have en dramatisk indvirkning på din skrivegennemstrømning. Så i den virkelige verden kan en god balance være kun at bruge skriveproblemer 'MAJORITY' til skrivning af vigtige transaktionsdata
Hvordan gendannes data fra en tilbagerulning?
Nedenfor er fire nemme trin til at gendanne dine data i tilfælde af en tilbagerulning
1. Find rollback-filerne
Når der sker en rollback, placeres bson-filerne for rollback-dataene i 'rollback'-mappen på din MongoDB-datasti. Filerne ser nogenlunde ud som er
<dbname>.<collectioname>.2016-02-08T19-34-44.0.bson
2. Indlæs dataene fra rollback i en separat database eller server
Min præference er at kopiere rollback-filerne til en ny server og bruge mongorestore til at indlæse dem på serveren. Her er den syntaks, du kan bruge
mongorestore -u <> -p <> -h 127.0.0.1 -d <rollbackrestoretestdb> -c <rollbackrestoretestc> <path to the .bson file> --authenticationDatabase=<database of user>
3. Gennemgå dataene og rense unødvendige data
På dette tidspunkt bliver du som databaseadministrator nødt til at bruge dit skøn til at beslutte, hvilke data fra tilbagerulningen du vil beholde, og hvilke data der ikke længere giver mening. I de fleste tilfælde er det usandsynligt, at du bare kan importere alle data. Dette er det formentlig det sværeste trin i genoprettelse af gendannelse.
4. Importer data til den primære klynge
Brug mongodump- og mongorestore-værktøjerne til at downloade de rensede data og genimportere dem til din originale produktionsklynge.
Se den officielle MongoDB-dokumentation
for mere information om rollback-operationerne