1

在 MongoDB 4.2.5(3 个节点复制集)中存储一些二进制数据后,该oplog.rs集合确实增长到 ca。700MB。二进制数据被删除,数据模型被重组,但oplog.rs集合的大小保持不变(如预期的那样)。我确实知道这是一个具有最大尺寸的封顶集合,最终它将重用空间。不过,就我而言,我想收回空间并重新开始。该数据库主要用于内部测试目的。我不介意从 oplog 中丢失一些数据,但我确实介意拥有一个大的 oplog 文件,因为整个数据库只有几 MB。

在复制集场景中emptycapped对集合使用命令是否安全?oplog.rs我需要在每个节点上运行此命令吗?删除后我是否需要压缩集合(最后一部分来自https://docs.mongodb.com/manual/tutorial/change-oplog-size/)?

有没有其他方法可以优雅地“重置” oplog 并释放空间?

4

1 回答 1

0

OpLog 受您在配置中定义的大小或是否将其保留为默认值的限制。

OpLog(操作日志)是一个特殊的上限集合,它保留所有修改存储在数据库中的数据的操作的滚动记录。

随着更改的进行(或 noops 心跳),它会填充到定义的大小。

如果要减小大小,请在配置中重置 OpLog 大小。但不要忘记,更大的 OpLog 大小意味着您可以获得更好的 OpLog 窗口。

OpLog 窗口告诉您次要成员可以离线多长时间,并且在不进行完全重新同步的情况下仍能赶上主要成员。

于 2020-07-13T09:02:17.887 回答