Om du kör en MongoDB-replikuppsättning i en offentlig molnmiljö under en rimlig tid är oddsen att du har upplevt en "återställning". Det låter skrämmande men det finns enkla steg för att återställa din data ifall ditt system upplever en återställning.
När sker en återställning?
En återställning i en MongoDB-replikuppsättning kan ske i följande steg
1. En MongoDB-primär accepterar skrivningar som ännu inte har replikerats till andra sekundärer och kraschar sedan
2. En annan server blir primär och accepterar andra skrivningar
3. När den tidigare primära kommer upp igen och synkroniserar om sitt tillstånd till majoriteten
Kan jag förhindra återställning från att ske i första hand?
Säker. Men som alltid kommer det med ett pris. Du kan ställa in ditt skrivproblem till "MAJORITET". Detta kommer att kräva att alla dina skrivningar är engagerade i en majoritet av noder i replikuppsättningen innan MongoDB framgångsrikt kan erkänna det. Detta kommer dock att ha en dramatisk inverkan på din skrivkapacitet. Så i den verkliga världen kan en bra balans vara att bara använda skrivproblem "MAJORITY" för att skriva viktiga transaktionsdata
Hur återställer man data från en återställning?
Nedan finns fyra enkla steg för att återställa din data i händelse av en återställning
1. Hitta återställningsfilerna
När en återställning inträffar placeras bson-filerna för återställningsdata i katalogen "återställning" i din MongoDB-datasökväg. Filerna ser ungefär ut som är
<dbname>.<collectioname>.2016-02-08T19-34-44.0.bson
2. Ladda data från återställningen till en separat databas eller server
Mitt preferens är att kopiera återställningsfilerna till en ny server och använda mongorestore för att ladda dem till servern. Här är syntaxen du kan använda
mongorestore -u <> -p <> -h 127.0.0.1 -d <rollbackrestoretestdb> -c <rollbackrestoretestc> <path to the .bson file> --authenticationDatabase=<database of user>
3. Sålla igenom data och rensa onödiga data
Nu måste du som databasadministratör använda ditt eget gottfinnande för att bestämma vilken data från återställningen du vill behålla och vilken data som inte längre är meningsfull. I de flesta fall är det osannolikt att du bara kan importera all data. Det här är förmodligen det svåraste steget i återställningen.
4. Importera data till primära kluster
Använd verktygen mongodump och mongorestore för att ladda ner den rensade data och återimportera dem till ditt ursprungliga produktionskluster.
För mer information om återställningsoperationerna, se den officiella MongoDB-dokumentationen