Replication
更改 MongoDB Oplog 大小
在將數據載入到 mongodb 時,我不斷收到“錯誤 RS102 太陳舊無法趕上”……經過研究,我發現我的 32 位 linux 機器的預設 oplog 大小太小。我希望它是 300 mb .. 有人知道這樣做的步驟嗎?
oplog 在 Linux 上預設為 5% 的可用空間,所以我懷疑你沒有很多可用空間。要調整 oplog 的大小,您需要遵循此處概述的過程:
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 文件中以 MB 為單位指定 oplog 大小,例如 300 MB:
replication: oplogSizeMB: 300
希望這可以幫助 !!!