更改 MongoDB Oplog 大小

更改 MongoDB Oplog 大小

在将数据加载到 mongodb 时,我不断收到“错误 RS102 太陈旧,无法赶上”...经过研究,我发现 32 位 Linux 机器的默认 oplog 大小太小。我希望它是 300 mb。有人知道这样做的步骤吗?

答案1

Linux 上的 oplog 默认占用 5% 的可用空间,所以我怀疑你没有太多可用空间。要调整 oplog 的大小,你需要遵循此处概述的步骤:

http://docs.mongodb.org/manual/tutorial/change-oplog-size/

答案2

MongoDB 版本 3.6 +

在 MongoDB 中,version 3.6可以更轻松地在运行时更改 oplog 大小,而无需重新启动。

检查当前 oplog 大小

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

将 oplog 大小更改为 300 MB

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

MongoDB 版本低于 3.6

对于旧版本,您必须遵循以下步骤:

关闭主服务器

use admin

db.shutdownServer()

启动主服务器作为独立服务器并在不同的端口上运行,比如 37017

在端口 37017 登录 mongo

mongo --port 37017

删除本地数据库中的旧内容

为了安全起见,在删除之前备份旧的 oplog

mongodump --db local --collection 'oplog.rs' --port 37017

删除本地数据库中的旧内容

use local

db.oplog.rs.drop()

db.me.drop()

db.replset.election.drop()

db.replset.minvalid.drop()

db.startup_log.drop()

Replset 集合无法删除,因此请使用所需的 id 将其删除:

db.system.replset.remove({ "_id" : "your_replsetname"})

创建所需大小的新 oplog,例如 300 MB

db.runCommand( { create: "oplog.rs", capped: true, size: (300 * 1024 * 1024) } )

您还可以在 mongod.conf 文件中指定 oplog 大小(以 MB 为单位),例如 300 MB:

replication:
   oplogSizeMB: 300

希望这可以帮助 !!!

相关内容