MongoDB 3.6开始,能够应用命令replSetResizeOplog批改正本集成员的oplog大小,从secondary节点开始批改,而后顺次到主节点。本文测试环境为MongoDB 4.2。
能够通过命令查看oplog大小
handong1:PRIMARY> use localswitched to db localhandong1:PRIMARY> db.oplog.rs.stats().maxSizeNumberLong("5242880000")
maxSize字段以字节为单位显示汇合大小,能够看到以后节点oplog大小为5242880000/1024/1024=5000MB。
接下来咱们批改正本集(一主一从一仲裁)各个成员的oplog大小。
先批改secondary节点的oplog大小。
handong1:SECONDARY> use localswitched to db localhandong1:SECONDARY> db.oplog.rs.stats().maxSizeNumberLong("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().maxSizeNumberLong(2097152000)
secondary节点oplog大小改为了2000MB。
而后批改primary节点的oplog大小。
handong1:PRIMARY> use localswitched to db localhandong1:PRIMARY> handong1:PRIMARY> db.oplog.rs.stats().maxSizeNumberLong("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().maxSizeNumberLong(2097152000)
能够看到primary节点oplog大小也批改为了2000MB。