问题: 开发服务器mongodb数据文件太大。占用近80G,其中某个db占用最大(运营环境这个db的数据只有3G大小)
分析: 开发环境有大量测试的 增加/删除/修改 操作, 长期以来会导致数据文件非常大,但 实际存储数据并不是很多.
129M db_name.1
2.1G db_name.10
2.1G db_name.11
2.1G db_name.12
2.1G db_name.13
2.1G db_name.14
2.1G db_name.15
2.1G db_name.16
2.1G db_name.17
2.1G db_name.18
2.1G db_name.19
257M db_name.2
2.1G db_name.20
2.1G db_name.21
2.1G db_name.22
2.1G db_name.23
2.1G db_name.24
2.1G db_name.25
2.1G db_name.26
2.1G db_name.27
2.1G db_name.28
2.1G db_name.29
513M db_name.3
2.1G db_name.30
2.1G db_name.31
操作:
a) 删除许多开发测试数据后(db.collection.remove()),数据文件显然是不会变小的.
b) /usr/local/mongodb-new/bin/mongodump --db Mydb --host 127.0.0.1 --port=27017 -uadmin -p123
c) 关闭mongodb
d) cd /data/mongodb/ ; rm db_name.*
e) 启动mongodb;启动后登陆mongo 确认原来的mongo库已被删除(正常情况下show dbs已经看不到原来的数据库) ; use db_name;db.addUser('admin','123');
f) /usr/local/mongodb-new/bin/mongorestore --db Mydb --host=127.0.0.1 --port=27017 -uadmin -p123 dump/Mydb/
结果:
瘦身后mongodb数据文件如下:
65M db_name.0
129M db_name.1
257M db_name.2
513M db_name.3
> show dbs;
db_name 1.953125GB