Команда восстановления Mongo уменьшает размер базы данных

У меня есть два кластера базы данных mongo, в каждом из которых по три машины. Скажем, Cluster1 и Cluster2. Чтобы снизить стоимость, мне нужно отключить Cluster2. Итак, я взял mongodump одной базы данных с основного компьютера Cluster2, который составляет 8,5 ГБ. Я скопировал эту папку дампа на основную машину Cluster1 и запустил там команду mongorestore, но когда я запускаю команду show dbs на Cluster1, она показывает размер как 4,7 ГБ. Итак, мой вопрос: совершил ли я какую-либо ошибку, или mongorestore не восстанавливает индексы, или по какой-либо другой причине?

0
задан 2 December 2019 в 13:33
1 ответ

Возможно, размер вашего хранилища (который показывает dbs указывает) изменяется при восстановлении, особенно если в исходном развертывании было много места, доступного для повторного использования (например, из-за удаления документа). mongodump выполняет резервное копирование данных и определений индексов, а процесс mongorestore восстанавливает файлы данных и индексы для восстановленных коллекций.

Для лучшего сравнения исходного и восстановленного развертываний вы должны просмотреть вывод db.stats () .

Предполагая, что с процессом резервного копирования и восстановления не было никаких проблем, оба развертывания должны иметь одинаковое количество баз данных, коллекций, индексов и объектов. Если ваше исходное развертывание активно записывалось во время (или после) mongodump , результат может немного отличаться.

Например, чтобы вывести статистику для всех баз данных через оболочку mongo :

db.adminCommand('listDatabases').databases.forEach(function(d) {
    printjson(db.getSiblingDB(d.name).stats());
})
0
ответ дан 21 December 2019 в 00:24

Теги

Похожие вопросы