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

Sådan gendannes fra en MongoDB-tilbageføring?

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
  1. Et præstationssnydeark til MongoDB

  2. MongoDB-as-a-Service i Canada

  3. Bedste Session Storage Middleware til Express + MongoDB

  4. Hvordan genvinder man slettet plads uden `db.repairDatabase()`?