replSetResizeOplog

在本页面

Definition

使用replSetResizeOplogManagement 命令来更改副本集成员的操作日志的大小。 replSetResizeOplog使您可以动态调整操作日志的大小,而无需重新启动mongod进程。

您必须对admin数据库运行此命令。

该命令具有以下形式:

{ replSetResizeOplog: <boolean>, size: <num MB> }

Note

replSetResizeOplog的 size 参数以兆字节为单位,而 oplog 的大小以字节为单位:

  • 您可以指定的最小大小为 990 MB。

  • 您可以指定的最大大小为 1 PB。

Behavior

您只能在有线老虎存储引擎上运行的mongod个实例上使用replSetResizeOplog

使用replSetResizeOplog更改给定副本集成员的操作日志大小不会更改副本集中任何其他成员的操作日志大小。您必须在集群中的每个副本集成员上运行replSetResizeOplog才能更改所有成员的操作日志大小。

减小 oplog 的大小不会自动回收该磁盘空间。您必须对local数据库中的oplog.rs集合运行compactcompact阻止对其运行的数据库的所有操作。因此,针对oplog.rs运行compact会阻止 oplog 同步。有关调整 oplog 大小和压缩oplog.rs的过程,请参见更改操作日志的大小

Example

使用stats命令显示当前操作日志大小maxSize。例如:

use local
db.oplog.rs.stats().maxSize

上面的命令将返回该成员的操作日志大小:

"maxSize": NumberLong("9790804377")

maxSize当前为 9790804377 字节,即 9337 兆字节。

以下命令将该成员的操作日志大小更改为 17179869184 字节,即 16384 兆字节。

要更改大小,请运行replSetResizeOplog,将所需大小(以兆字节为单位)作为参数传递。

db.adminCommand({replSetResizeOplog:1, size: 16384})

要验证新的 oplog 大小,请重新运行stats命令:

use local
db.oplog.rs.stats().maxSize

上面的命令返回:

"maxSize": NumberLong("17179869184")

Warning

减小节点中 oplog 的大小会从其中删除数据。这可能导致与该节点同步的副本成员变得陈旧。要重新同步这些成员,请参阅重新同步副本集的成员

首页