MongoDB 3.6 开始,能够应用命令 replSetResizeOplog 批改正本集成员的 oplog 大小,从 secondary 节点开始批改,而后顺次到主节点。本文测试环境为 MongoDB 4.2。
能够通过命令查看 oplog 大小
handong1:PRIMARY> use local
switched to db local
handong1:PRIMARY> db.oplog.rs.stats().maxSize
NumberLong("5242880000")
maxSize 字段以字节为单位显示汇合大小,能够看到以后节点 oplog 大小为 5242880000/1024/1024=5000MB。
接下来咱们批改正本集(一主一从一仲裁)各个成员的 oplog 大小。
先批改 secondary 节点的 oplog 大小。
handong1:SECONDARY> use local
switched to db local
handong1:SECONDARY> db.oplog.rs.stats().maxSize
NumberLong("10485760000")
handong1:SECONDARY> db.adminCommand({replSetResizeOplog: 1, size: 2000})
{
"ok" : 1,
"$clusterTime" : {"clusterTime" : Timestamp(1617786418, 1),
"signature" : {"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
},
"operationTime" : Timestamp(1617786418, 1)
}
handong1:SECONDARY> db.oplog.rs.stats().maxSize
NumberLong(2097152000)
secondary 节点 oplog 大小改为了 2000MB。
而后批改 primary 节点的 oplog 大小。
handong1:PRIMARY> use local
switched to db local
handong1:PRIMARY>
handong1:PRIMARY> db.oplog.rs.stats().maxSize
NumberLong("5242880000")
handong1:PRIMARY> db.adminCommand({replSetResizeOplog: 1, size: 2000})
{
"ok" : 1,
"$clusterTime" : {"clusterTime" : Timestamp(1617786579, 1),
"signature" : {"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
},
"operationTime" : Timestamp(1617786579, 1)
}
handong1:PRIMARY> db.oplog.rs.stats().maxSize
NumberLong(2097152000)
能够看到 primary 节点 oplog 大小也批改为了 2000MB。