MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Безопасно ли е да изтриете дневника на mongodb?

TL;DR:Имате две възможности. Използвайте --smallfiles опция за стартиране при стартиране на MongoDB, за да ограничите размера на файловете на журнала до 128 MB, или да изключите журналирането с помощта на --nojournal опция. Използване на --nojournal в производството обикновено е лоша идея и често има смисъл да се използват различни проблеми при писане и в разработката, така че да нямате различен код в dev и prod.

Дългият отговор :Не, изтриването на файла на дневника не е безопасно. Идеята на воденето на дневник е следната:

Идва запис. Сега, за да направим това записване трайно (и базата данни трайна), записът трябва по някакъв начин да отиде на диска.

За съжаление записите на диска отнемат еони в сравнение със записите в RAM паметта, така че базата данни е в дилема:да не се записва на диска е рисковано, защото неочаквано изключване би причинило загуба на данни. Но записването на диска за всяка отделна операция на запис ще намали производителността на базата данни толкова силно, че тя ще стане неизползваема за практически цели.

Сега вместо да пише в самите файлове с данни и вместо да го прави за всяка заявка, базата данни просто ще добави към файл на дневник, където съхранява всички операции, които все още не са били ангажирани с действителните файлове с данни. Това е много по-бързо, защото файлът вече е „горещ“, тъй като се чете и записва през цялото време и е само един файл, а не куп файлове, и накрая, защото записва всички чакащи операции в пакет на всеки 100 мс по подразбиране. Изтриването на този файл по средата на нещо причинява хаос.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да заявя mongodb с „like“ с помощта на java api?

  2. Многоезично моделиране на данни в MongoDB

  3. MongoDB $tanh

  4. MongoDB - Актуализиране или вмъкване на обект в масив

  5. 4 начина за изброяване на колекциите в база данни на MongoDB