MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

É seguro excluir o arquivo de diário do mongodb?


TL;DR:Você tem duas opções. Use o --smallfiles opção de inicialização ao iniciar o MongoDB para limitar o tamanho dos arquivos de diário a 128 MB ou desativar o diário usando o --nojournal opção. Usando --nojournal na produção geralmente é uma má ideia, e geralmente faz sentido usar diferentes preocupações de gravação também no desenvolvimento, para que você não tenha código diferente em dev e prod.

A resposta longa :Não, deletar o arquivo de diário não é seguro. A ideia do jornal é esta:

Uma gravação chega. Agora, para tornar essa gravação persistente (e o banco de dados durável), a gravação deve, de alguma forma, ir para o disco.

Infelizmente, as gravações no disco demoram muito mais do que as gravações na RAM, então o banco de dados está em um dilema:não gravar no disco é arriscado, porque um desligamento inesperado causaria perda de dados. Mas gravar no disco para cada operação de gravação diminuirá tanto o desempenho do banco de dados que ele se tornará inutilizável para fins práticos.

Agora, em vez de gravar nos próprios arquivos de dados, e em vez de fazer isso para cada solicitação, o banco de dados simplesmente anexará a um arquivo de diário onde ele armazena todas as operações que ainda não foram confirmadas nos arquivos de dados reais. Isso é muito mais rápido, porque o arquivo já está 'quente', pois é lido e gravado o tempo todo, e é apenas um arquivo, não um monte de arquivos e, por último, porque grava todas as operações pendentes em um lote a cada 100ms por padrão. Excluir este arquivo no meio de algo causa estragos.