mongodb線上調整Oplog Size的值
1.版本差異
3.4及之前的版本,改變oplog的大小需要刪除然後重建local.oplog.rs集合。
3.6滯後可以使用replSetResizeOplog命令線上重建。從mongo 4.0開始,local.oplog.rs集合更是無法刪除了,老的方式徹底走不通了。
2.線上修改
注意修改值必須在990M以上。
先從從節點調整,最後調整主節點
最後,不寫入配置檔案重啟也會生效。
firstset:SECONDARY> use local
switched to db local
firstset:SECONDARY> db.oplog.rs.stats().maxSize
1038090240
firstset:SECONDARY>
db.adminCommand({replSetResizeOplog: 1, size: 1000})
{
"ok" : 1,
"$clusterTime" : {
"clusterTime" : Timestamp(1627203194, 1),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
},
"operationTime" : Timestamp(1627203194, 1)
}
firstset:SECONDARY> db.oplog.rs.stats().maxSize
1048576000
依次執行所有節點,主節點最後。
arbiter仲裁節點執行會報錯
firstset:ARBITER> use local
switched to db local
firstset:ARBITER> db.oplog.rs.stats().maxSize
firstset:ARBITER> db.adminCommand({replSetResizeOplog: 1, size: 1000})
{
"ok" : 0,
"errmsg" : "oplog does not exist",
"code" : 26,
"codeName" : "NamespaceNotFound"
}
3.壓縮oplog,回收空間
4.4版本之前,當執行壓縮oplog的時候,主從複製將會暫停。4.4之後,即使在壓縮的時候,主從複製不再受到影響。
調整完oplog大小後,空間不會被主動回收,可以用compact回收空間
從庫直接執行:
firstset:SECONDARY> use local
switched to db local
firstset:SECONDARY> db.runCommand({ "compact" : "oplog.rs" })
{ "bytesFreed" : 0, "ok" : 1 }
主庫執行會報錯:
firstset:PRIMARY> use local
switched to db local
firstset:PRIMARY> db.runCommand({ "compact" : "oplog.rs" })
{
"ok" : 0,
"errmsg" : "will not run compact on an active replica set primary as this is a slow blocking operation. use force:true to force",
"$clusterTime" : {
"clusterTime" : Timestamp(1627203956, 1),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
},
"operationTime" : Timestamp(1627203956, 1)
}
可以使用force強制執行:
use local
db.runCommand({ "compact" : "oplog.rs" ,"force":true})
也可以服務降級後執行,但是這會觸發主從切換,生產環境慎用:
firstset:PRIMARY> rs.stepDown()
{
"ok" : 1,
"$clusterTime" : {
"clusterTime" : Timestamp(1627204246, 1),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
},
"operationTime" : Timestamp(1627204246, 1)
}
firstset:SECONDARY> db.runCommand({ "compact" : "oplog.rs" })
{ "bytesFreed" : 0, "ok" : 1 }
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31480688/viewspace-2783169/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MongoDB更改oplog大小MongoDB
- oracle 線上調整redoOracle
- MongoDB單機開啟oplogMongoDB
- MongoDB Oplog中的欄位介紹MongoDB
- mongodb 基於oplog的時間點恢復MongoDB
- MongoDB案例分享:如何使用oplog恢復資料MongoDB
- mongodb使用備份後的oplog做時間點恢復MongoDB
- UITableViewCell分割線位置調整UIView
- rem根據螢幕寬度來調整html根元素的font-sizeREMHTML
- 技術分享 | 調整 max-write-buffer-size 優化 pika 效能10倍的案例優化
- win10如何調滑鼠dpi數值_win10調整滑鼠dpi數值教程Win10
- auto_size_text 自動調整文字大小以適應其容器的 Flutter 外掛Flutter
- 剖析後OpLog訂閱MongoDB的資料變更就沒那麼難了MongoDB
- iOS tableView 分割線左右邊距調整iOSView
- Nginx 調整檔案上傳大小限制Nginx
- 字串的調整II字串
- 什麼是線上優雅停機和調整執行緒池引數?執行緒
- 如何實現線上優雅停機和調整執行緒池引數?執行緒
- Kafka 線上效能調優Kafka
- Figma數值輸入框支援拖拽調整功能實現
- MongoDB狀態值MongoDB
- Gamma調整GAM
- kindeditor 上傳圖片 自動調整尺寸大小
- 數值的整數次方
- Flutter UI APP 低調上線FlutterUIAPP
- 小遊戲廣告分成政策調整:分成比例上調,取消分成上限遊戲
- EngagementLabs:2020年線上線下口碑調查
- 視訊直播app原始碼,對首頁樣式的整體調整,調整成圓角化APP原始碼
- 調整狀態
- Nginx的優化調整方面Nginx優化
- hadoop queue的配額調整Hadoop
- 週報調整的若干思考
- 數值分析:線性方程組的直接解法(上)
- 大量影片色調批次進行調整的方法
- 如何使用Automator服務在Mac上快速調整影像大小Mac
- 手動上傳圖片,怎麼調整大小和居中
- 批量調整視訊尺寸大小的方法,一鍵自動批量調整視訊
- mongodb異機做時間點恢復(基於時間範圍查詢匯出oplog)MongoDB