Запустите сервер конфигурации MongoDB без 3 ГБ файлов журнала.


9

Для установки MongoDB в режиме закрытого производства нам необходимо 3 сервера конфигурации. Согласно документации «процесс сервера конфигурации mongod довольно легкий и может быть запущен на машинах, выполняющих другую работу». Однако в конфигурации по умолчанию все они имеют включенное журналирование, и при предварительном распределении это занимает 3 ГБ дискового пространства. Я предполагаю, что фактические данные и объем транзакций сервера конфигурации довольно малы, так что это кажется слишком большим.

Есть ли способ (безопасно!) Запустить эти серверы конфигурации с гораздо меньшим использованием диска для журнала? Нужно ли вообще вести журналы на серверах конфигурации? Могу ли я установить размер журнала меньше?

Ответы:


10

Да, есть способ минимизировать размер файлов журнала по умолчанию, при условии соблюдения нескольких предостережений. Из документации конфигурации MongoDB :

Чтобы уменьшить влияние ведения журнала на использование диска, вы можете оставить журнал включенным и установить для smallfiles значение true, чтобы уменьшить размер данных и файлов журнала.

Вот smallfilesинформация о конфигурации:

Установите значение true, чтобы изменить MongoDB для использования меньшего размера файла данных по умолчанию. В частности, smallfiles уменьшает первоначальный размер файлов данных и ограничивает их до 512 мегабайт. Параметр smallfiles также уменьшает размер каждого файла журнала с 1 гигабайта до 128 мегабайт.

Используйте параметр smallfiles, если у вас есть большое количество баз данных, каждая из которых содержит небольшое количество данных. Параметр smallfiles может привести к тому, что mongod создаст много файлов, что может повлиять на производительность больших баз данных.


0

Вы можете некоторые участники, репликации , использовать журналирование и другие нет. [1]

Вы можете установить меньший размер jounral с помощью командной строки "--smallfiles". [2]


И что-нибудь из этого рекомендуется?
Thilo

MongoDB выполняет предварительное выделение файлов журнала, чтобы избежать необходимости тратить время на него позже. Если вы беспокоитесь о дисковом пространстве больше, чем о производительности, это вариант. Я бы порекомендовал оставить ведение журнала на всех машинах, вы никогда не знаете, когда и как может произойти сбой. Вы никогда не можете быть слишком безопасным.
Никан

1
Это, конечно, хорошее руководство. Но пытливые умы хотят знать, имеет ли сервер конфигурации объем транзакции, для которого требуется 3 ГБ журналов, и есть ли какая-либо выгода от наличия журналов вообще, кроме более быстрого времени запуска после сбоя (обратите внимание, что с 3 серверами конфигурации не должно быть Будет ли потеря данных, даже без журналирования, верно?) И насколько быстрее в любом случае с небольшим количеством данных только для конфигурации. Мне кажется, что здесь правила должны быть разными для узлов реплики и серверов конфигурации. Документы говорят, что «у вас все будет хорошо, если вы можете восстановить один из них в течение дня», например.
Тило

0

Вы можете запустить mongod с параметром --nojournal, но я был бы очень уверен в резервном копировании вашего сервера конфигурации.


1
Насколько более точным я должен быть, чем иметь три сервера конфигурации на трех разных машинах? Кроме того, какова процедура создания резервных копий сервера конфигурации? Если я не выполняю резервное копирование после каждого изменения (например, добавление коллекции или событие разделения), то я не могу восстановить данные из этих устаревших резервных копий, верно?
Тило
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.