sql >> Databáze >  >> NoSQL >> MongoDB

Je bezpečné odstranit soubor deníku mongodb?

TL;DR:Máte dvě možnosti. Použijte --smallfiles možnost spuštění při spouštění MongoDB pro omezení velikosti souborů žurnálu na 128 MB nebo vypnutí žurnálování pomocí --nojournal volba. Pomocí --nojournal v produkci je obvykle špatný nápad a často dává smysl používat různé možnosti zápisu také ve vývoji, abyste neměli rozdílný kód ve vývoji a prod.

Dlouhá odpověď :Ne, smazání souboru deníku není bezpečné. Myšlenka žurnálování je následující:

Přichází zápis. Nyní, aby byl zápis trvalý (a databáze trvalá), musí zápis nějak přejít na disk.

Bohužel zápisy na disk trvají eony ve srovnání se zápisy do RAM, takže databáze je v dilematu:nezapisovat na disk je riskantní, protože neočekávané vypnutí by způsobilo ztrátu dat. Ale zápis na disk pro každou jednotlivou operaci zápisu sníží výkon databáze natolik, že se stane pro praktické účely nepoužitelnou.

Nyní místo zápisu do samotných datových souborů a místo toho, aby se to dělalo pro každý požadavek, se databáze jednoduše připojí k souboru žurnálu, kde ukládá všechny operace, které ještě nebyly potvrzeny skutečným datovým souborům. To je mnohem rychlejší, protože soubor je již 'horký', protože se neustále čte a zapisuje, a je to pouze jeden soubor, ne hromada souborů, a konečně, protože zapisuje všechny čekající operace v dávce každých 100 ms ve výchozím stavu. Smazání tohoto souboru uprostřed něčeho způsobí zmatek.



  1. MongoDB dotaz $in s regulárním polem prvku

  2. Připojení k MongoDB 3.0 pomocí Java Spring

  3. Redis – Zvažte přejmenování jednoho z fazolí nebo povolení přepsání nastavením spring.main.allow-bean-definition-overriding=true

  4. Mongodb odpovídá znakům s diakritikou jako základnímu znaku