#mongodb
#mongodb
Вопрос:
В структуре сервера физически управляются первичный, вторичный и арбитр. версия mongo db — 4.2.3.
Некоторые документы были удалены в самом старом порядке, потому что в определенной коллекции было накоплено слишком много документов. Однако даже удаление документов не освободило область хранения. После проверки я обнаружил, что механизм mongodb сохраняет повторно используемые байты, даже если документ удален. Кроме того, я обнаружил, что ненужное дисковое пространство можно освободить с помощью команды compact в движке WiredTiger.
В настоящее время все клиенты, подключенные к БД, запрашивают с использованием IP-адреса и порта арбитра.
Поскольку БД состоит только из репликации, а не из сегментирования, если каждый человек выполняет команду compact независимо, даже если каждый экземпляр заблокирован, ожидается, что арбитр распространит запрос на доступные в данный момент экземпляры.
Возможно ли это?
Или я должен завершить работу каждого экземпляра, запустить его автономно, выполнить команду compact, а затем перенастроить psa?
Ответ №1:
Вы можете обновить свою MonogDB до последней версии 4.4. Документация compact:
Блокировка
Изменено в версии 4.4.
Начиная с версии 4.4 в WiredTiger, compact блокирует только следующие операции с метаданными:
db.collection.drop db.collection.createIndex and db.collection.createIndexes db.collection.dropIndex and db.collection.dropIndexes
compact не блокирует CRUD-операции MongoDB для базы данных, с которой он
в данный момент работает.До версии 4.4 compact блокировал все операции с базой данных, которую он уплотнял, включая операции CRUD MongoDB, и поэтому был рекомендован для использования только в периоды планового обслуживания. Начиная с версии 4.4, команда compact подходит для использования в любое время.
Ответ №2:
Всем, кто ищет ответ с помощью 4.4, пожалуйста, ознакомьтесь с этой ошибкой и записью документации, поскольку процедура compact по-прежнему переводит узел в состояние восстановления, если вы работаете в наборе реплик (и я предполагаю, что это вариант использования по умолчанию для большинства проектов)