gpt4 book ai didi

mongodb - 修复数据库需要多少额外空间

转载 作者:IT老高 更新时间:2023-10-28 12:31:47 29 4
gpt4 key购买 nike

我已询问 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
}

我们想要回收空间,因为这不是一个关键任务系统(它就像一个原木倾倒场)可以维持停机时间。我们不想花在创建副本集上,因为我们在物理数据中心,因此不希望仅附加额外的磁盘来修复数据库。
我想了解:-
-修复数据库需要多少可用磁盘空间
-修复数据库后希望恢复多少空间
-大约需要多少时间来修复数据库。
- 如果修复数据库继续运行,那么杀死它并重新启动数据库是否安全。

我们的大量数据位于单个集合中,因此紧凑集合是否比修复数据库更好。

最佳答案

首先我建议您从 2.0.1 升级。如果不是 2.2.2,至少到 2.0.7。修复需要 2 倍的文件大小。作为文件大小,您最终应该会比您的数据大小略大。需要多长时间取决于系统资源和系统的繁忙程度。Compact 不会释放磁盘空间——它只是在数据文件中进行碎片整理。

在 2.2.x 中,您可以使用 collMod

命令设置 usePowerOf2Sizes 以减少文件碎片。例如插入 800 字节的文档,将分配 1024 字节。删除该文档并插入一个 900 字节的文档,现在 1024 空间可以重复使用。如果没有这个,可能只会分配 850 字节,并且会为 900 字节的文档分配新的可用空间。

杀死repairDatabase应该没问题 - 文件被复制到新位置,碎片整理然后在完成时复制回来,但您必须对其进行测试以确保:)

关于mongodb - 修复数据库需要多少额外空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14472182/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com