您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關MongoDB中怎么修改oplogSize,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
SECONDARY> db.shutdownServer()
并修改port端口號(假設原來是27001,現改為37001)
/apps/mongodb/bin/mongod -f /data/johnny/cfg/shard1.cnf
全備當前節點的所有oplog記錄
mongodump --port 37001 --db local --collection 'oplog.rs'
備份oplog.rs中最近的一條oplog記錄
>use local >db.optmp.drop() ---清空臨時表,存放oplog最近一條記錄 >db.optmp.save(db.oplog.rs.find( { }, { ts: 1, h: 1 } ).sort( {$natural : -1} ).limit(1).next() ) ---將最近一條記錄存放到臨時集合中 >db.optmp.find() ---驗證是否記錄已存入 { "_id" : ObjectId("5a0d437ed4738d194fa0b94f"), "ts" : Timestamp(1510389543, 1), "h" : NumberLong("-2633465233485407995") }
刪除原oplog.rs集合
>use local >db.oplog.rs.drop()
創建新oplog.rs集合
> db.runCommand( { create: "oplog.rs", capped: true, size: (2 * 1024 * 1024 * 1024) } ) { "ok" : 1 } ---成功的話將返回ok
> db.oplog.rs.save(db.optmp.findOne()) > db.oplog.rs.find() ---查詢驗證是否已插入
>db.shutdownServer()
(注意oplogSizeMB參數值的修改)
/apps/mongodb/bin/mongod -f /data/johnny/cfg/shard1.cnf
登錄到mongo shell中檢查節點是否成功加入副本集架構
>rs.status() 檢查oplogSize是否生效(紅色字體) SECONDARY> rs.printReplicationInfo() configured oplog size: 2048MB log length start to end: 0secs (0hrs) oplog first event time: Sat Nov 11 2017 16:39:03 GMT+0800 (CST) oplog last event time: Sat Nov 11 2017 16:39:03 GMT+0800 (CST) now: Thu Nov 16 2017 17:00:32 GMT+0800 (CST)
注:修改Primary節點時,記得先使用如下命令降級,然后再修改
Primary>rs.stepDown() ---可以更有效的產生選舉
3.6版本后支持的動態修改方法
replication: oplogSizeMB: 1024 replSetName: shardrs1
登錄到mongo shell后查看oplog.rs集合大小
> use local switched to db local > db.oplog.rs.stats().maxSize NumberLong(1073741824) ---單位bytes,即2014MB
> use local switched to db local > db.adminCommand({replSetResizeOplog:1, size: 2048}); ---2048的單位也MB { "ok" : 1, "operationTime" : Timestamp(1537776585, 1), "$clusterTime" : { "clusterTime" : Timestamp(1537776585, 1), "signature" : { "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="), "keyId" : NumberLong(0) } } }
> db.oplog.rs.stats().maxSize NumberLong("2147483648")
至此我們的oplog size動態修改完畢,是不是很簡單,是不是很easy?
問1:replSetResizeOplog命令會不會同時修改了replication.oplogSizeMB參數值呢?
答:我此時查看啟動配置文件,發現oplogSizeMB依然是1024;
問2:重啟后會不會配置文件中的參數值就更改為修改值了呢?
答:重新啟動數據庫實例后,我發現并沒有,還是最初值
問3:那么重啟后,新修改值會失效嗎?
答:我再次發現并沒有,仍然使用最新值
shardrs1:PRIMARY> db.oplog.rs.stats().maxSize NumberLong("2147483648")
關于MongoDB中怎么修改oplogSize就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。