sql >> Databasteknik >  >> NoSQL >> MongoDB

Är det säkert att ta bort journalfilen för mongodb?

TL;DR:Du har två alternativ. Använd --smallfiles startalternativ när du startar MongoDB för att begränsa storleken på journalfilerna till 128 MB, eller stänga av journalisering med --nojournal alternativ. Använder --nojournal i produktion är vanligtvis en dålig idé, och det är ofta vettigt att använda olika skrivproblem även i utvecklingen så att du inte har olika kod i dev och prod.

Det långa svaret :Nej, det är inte säkert att ta bort journalfilen. Tanken med journalföring är denna:

En skrivning kommer in. Nu, för att göra skrivningen beständig (och databasen hållbar), måste skrivningen på något sätt gå till disken.

Tyvärr tar skrivningar till disken eoner jämfört med att skriva till RAM, så databasen är i ett dilemma:att inte skriva till disken är riskabelt, eftersom en oväntad avstängning skulle orsaka dataförlust. Men att skriva till disken för varje enskild skrivoperation kommer att minska databasens prestanda så mycket att den blir oanvändbar för praktiska ändamål.

Nu istället för att skriva till själva datafilerna, och istället för att göra det för varje förfrågan, kommer databasen helt enkelt att lägga till en journalfil där den lagrar alla operationer som ännu inte har bestämts för de faktiska datafilerna. Detta är mycket snabbare, eftersom filen redan är "het" eftersom den läses och skrivs till hela tiden, och det är bara en fil, inte en massa filer, och slutligen eftersom den skriver alla väntande operationer i en batch var 100:e ms. som standard. Att ta bort den här filen mitt i något skapar förödelse.



  1. Mongodb fråga specifik månad|år inte datum

  2. Mongoose String till ObjectID

  3. MongoDB Analytics-serien:SlamData – Kör SQL och bygg rapporter direkt på MongoDB

  4. Vad är skillnaden mellan replaceOne() och updateOne() i MongoDB?