Освобождение места в mongodb
Столкнулся с проблемой освобождения дискового пространства после удаление данных в nongodb
Рецепт
db.repairDatabase()
как и
mongod --config /usr/local/etc/mongod.conf --repair --repairpath /Volumes/X/mongo_repair --nojournal
не подошёл из-за отсутствия свободного места в объёме, равному объёму базы
Рецепт
db.getCollectionNames().forEach(function (collectionName) {
print('Compacting: ' + collectionName);
db.runCommand({ compact: collectionName });
});
не помог. Возможно, из-за превышения времени выполнения запроса, неизвестно - скрипт выполнился а старые файлы на диско остались.
Сработал dump/restore:
mongodump -d databasename
echo 'db.dropDatabase()' | mongo databasename
mongorestore -d databasename dump/databasename
База 'databasename' была уничтожена и создана новая
И то же самое одной строкой:
export DBNAME="mydb" ; mongodump -d ${DBNAME} ; echo 'db.dropDatabase()' | mongo ${DBNAME} ; mongorestore -d ${DBNAME} dump/${DBNAME}
mongodb |