我已经写了this question in mongodb google group,没有任何回复在这里发布。需要多少额外的空间来修复数据库需要
我们有一个单节点mongo(版本2.0.1)实例。即使每天归档后,我们的磁盘空间也不足,因为mongo不会将空间返回到操作系统,并尝试自行使用它。目前我们的设置已经变得非常稀疏,约有50%的空间闲置。您可以看到数据+索引大小约为1170 GB,而存储大小约为2158 GB,文件大小约为2368 GB。
db.stats()
{
"db" : "default",
"collections" : 106,
"objects" : 553988389,
"avgObjSize" : 2094.1392962010254,
"dataSize" : NumberLong("1160128855044"),
"storageSize" : NumberLong("2315777236208"),
"numExtents" : 1487,
"indexes" : 107,
"indexSize" : 97914435136,
"fileSize" : NumberLong("2543459500032"),
"nsSizeMB" : 16,
"ok" : 1
}
我们要回收空间,并因为这不是一个关键任务系统(它像日志倾倒场)可以维持的停机时间。我们不想花费在创建副本集上,我们也在物理数据中心,因此宁愿不附加额外的磁盘来修复数据库。
我想了解: -
- 如何需要修复数据库
我们 - 如何多少空间可以希望修复数据库
-Around应该花费多少时间来修复数据库之后收回多少可用磁盘空间。
- 如果所有修复数据库都在继续,那么杀死它并重新启动数据库是否安全?
我们的数据大量存在于单个集合中,因此紧凑集合是否优于修复数据库。
修复可能需要多达2倍的空间。 –
数据大小或存储大小的2倍? – pseudonym
修复会做一个''mongodump''和''mongorestore'',因此它需要数据库使用的磁盘空间的两倍,即需要空间来存储旧的和新的数据库文件。为了避免你可以手动执行''mongodump'',删除数据库文件,然后运行''mongorestore''。另外,如果你只需要回收未使用的空间,你可以运行“compact”(确保你有2GB可用空间)。 – diliop