Как уменьшить коллекцию MongoDB oplog.rs? - PullRequest
0 голосов
/ 13 июля 2020

После сохранения некоторых двоичных данных в MongoDB 4.2.5 (3 узла репликации) коллекция oplog.rs действительно выросла до прибл. 700 МБ. Двоичные данные были удалены, а модель данных реструктурирована, но коллекция oplog.rs осталась того же размера (как и ожидалось). Я понимаю, что это ограниченная коллекция с максимальным размером, и в конечном итоге она будет повторно использовать пространство. В моем случае я бы хотел освободить место и начать все сначала. База данных используется в основном для внутреннего тестирования. Я не против потери некоторых данных из журнала операций, но я не против иметь большой файл журнала операций, поскольку вся база данных занимает всего несколько МБ.

Безопасно ли использовать команду emptycapped в Коллекция oplog.rs в сценарии набора реплик? Нужно ли мне запускать эту команду на каждом узле? Нужно ли мне уплотнять коллекцию после удаления (последняя часть из https://docs.mongodb.com/manual/tutorial/change-oplog-size/)?

Есть ли другой способ изящно "сбросить" oplog и освободить место?

1 Ответ

0 голосов
/ 13 июля 2020

OpLog ограничен тем, какой размер вы определили в конфигурации или оставили ли вы его по умолчанию.

OpLog (журнал операций) - это специальная ограниченная коллекция, в которой хранится скользящая запись всех операций, которые изменяют данные, хранящиеся в ваших базах данных.

Он заполняется до определенного размера по мере прохождения изменений (или периодических пульсаций).

Если вы хотите уменьшить размер, сбросьте размер OpLog в вашем конфиге. Но не забывайте, что больший размер OpLog означает, что вы получаете лучшее окно OpLog.

Окно OpLog сообщает вам, как долго вторичный член может быть в автономном режиме и по-прежнему догонять первичный без выполнения полной повторной синхронизации c .

...