- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我们有一个副本集,其中包含 1 个主节点、1 个辅助节点和 1 个仲裁节点。我们经常删除集合,所以我正在寻找一种快速的方法来回收已删除集合所使用的磁盘空间而无需停机,当前数据库大小接近 3TB。我一直在研究执行此操作的各种方法,两种常见方法是:
repairDatabase():需要与已用空间大小相等的可用空间才能运行,它将使主服务器离线,然后在辅助服务器上启动初始同步,这是一个非常漫长的过程,在此期间仅一个节点在修复数据库期间只能从辅助数据库读取,并在初始同步期间可读/写。
在新节点上运行初始同步,然后声明为主节点并淘汰旧节点。对二级重复该过程。使用此选项,主要和次要都可用,但过程非常漫长,需要将近 1 周的时间来运行两次初始同步。
是否有更好的定期回收磁盘空间的解决方案,并且比上述解决方案相对更快。
请注意,每个集合都可能会被删除。
谢谢
最佳答案
没有简单的方法来实现这一点,除非您设计数据库结构以将不同的集合保存在不同的数据库中,这反过来意味着只要您拥有 directoryPerDB
在您的 mongo.conf 中设置为 true。这是一种解决方法,根据您的应用,它可能不切实际。
虽然删除集合确实不会释放硬盘空间,但已用空间并没有丢失也是事实。它最终将被重新用于新的收藏。
话虽这么说,除非您真的空间不足,否则不要回收该空间。在我所知道的每个提供商中,定期执行此操作的 CPU 和 I/O 成本远高于存储容量成本。
关于mongodb - 定期回收磁盘空间,无需停机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24125886/
kubectl drain首先是否确保带有replicas=1的Pod在其他某个节点上是健康的? 假设Pod由部署控制,并且Pod确实可以移动到其他节点。 目前,如我所见,它仅从节点逐出(删除Pod)
在上一篇文章 STM8单片机低功耗—等待(Wait)模式实现 中介绍了低功耗模式中的等待(Wait)模式代码实现方法,这篇文章就来演示一下 停机(Halt)模式的代码实现。 停机(Halt)模式的进入
默认情况下,AWS 使用 LATEST更新了最新 lambda 版本的别名,我假设执行以下步骤。 现在,LATEST别名点版本 5。 用户部署新版本的 lambda。 部署新版本时,LATEST别名仍
情况 App Engine Flex 上的自定义运行时(Docker/Node) 当我们自己管理资源时手动扩展到 1 个单个实例(2 cpu/6 gb ram) 配置了活性和就绪检查 正如预期的那样,
我是一名优秀的程序员,十分优秀!