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
- MongoDB oplog詳解MongoDB
- mongodb修改oplog大小MongoDB
- oracle 線上調整redoOracle
- MySQL5.7 線上調整Innodb_Buffer_Pool_size不用重啟mysql程式薦MySql
- Mongodb 複製的紐帶–OplogMongoDB
- 根據viewport的size自動調整fontsize大小View
- MongoDB單機開啟oplogMongoDB
- MongoDB Oplog中的欄位介紹MongoDB
- oracle線上調整重做日誌Oracle
- MongoDB 如何保證 oplog 順序?MongoDB
- mongodb 基於oplog的時間點恢復MongoDB
- MongoDB journal 與 oplog,究竟誰先寫入?MongoDB
- MongoDB如何查oplog.rs集合裡的操作日誌MongoDB
- MongoDB案例分享:如何使用oplog恢復資料MongoDB
- rem根據螢幕寬度來調整html根元素的font-sizeREMHTML
- mongodb使用備份後的oplog做時間點恢復MongoDB
- 技術分享 | 調整 max-write-buffer-size 優化 pika 效能10倍的案例優化
- win10如何調滑鼠dpi數值_win10調整滑鼠dpi數值教程Win10
- oracle效能調優:管理oracle日誌之調整線上日誌檔案Oracle
- ASMM/AMM開啟時動態調整記憶體元件(shared_pool_size, db_cache_size等)大小ASM記憶體元件
- MongoDB Primary 為何持續出現 oplog 全表掃描?MongoDB
- auto_size_text 自動調整文字大小以適應其容器的 Flutter 外掛Flutter
- 線上傢俱ERP系統產品庫存調整
- 字串的調整II字串
- 在ORACLE中對線上重做日誌檔案進行調整Oracle
- Gamma調整GAM
- 剖析後OpLog訂閱MongoDB的資料變更就沒那麼難了MongoDB
- SQL Server 中調整自增欄位的當前初始值zzSQLServer
- Oracle效能調整之--DML語句效能調整Oracle
- MongoDB狀態值MongoDB
- Figma數值輸入框支援拖拽調整功能實現
- 【REDEFINITION】使用線上重定義dbms_redefinition完成主鍵列型別的調整型別
- Oracle效能最佳化調整--調整重做機制Oracle
- 網路調整——效能調整手冊和參考
- MongoDB的效能調優工具 -- DexMongoDB
- Nginx調整(一)Nginx
- oracle 效能調整Oracle