mongodb單機實例開啟oplog

前言,目前生產(chǎn)環(huán)境的mongodb是用docker-compose部署的單機實例,這其實是不太合理的,一般容器是用來跑無狀態(tài)服務(wù),而且用容器的方式來部署數(shù)據(jù)庫,勢必性能會不如硬裝或者Sass服務(wù),而且占用的資源比較大,考慮這一點,計劃將mongodb遷移至阿里云托管,使用全量+增量的方式遷移。那么在此之前數(shù)據(jù)庫需要開啟oplog,否則無法進行增量遷移。

1、修改mongodb配置,在docker-compose.yml里面增加


image.png
 command:
    - --replSet
    - rs

2、開啟副本集名為RS,然后重啟mongodb容器,使其生效,然后進入容器里面執(zhí)行
登陸數(shù)據(jù)庫: mongo -uroot -p

> show dbs
2020-12-15T06:34:44.267+0000 E QUERY    [js] Error: listDatabases failed:{
    "ok" : 0,
    "errmsg" : "not master and slaveOk=false",
    "code" : 13435,
    "codeName" : "NotMasterNoSlaveOk"
} :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
Mongo.prototype.getDBs@src/mongo/shell/mongo.js:139:1
shellHelper.show@src/mongo/shell/utils.js:882:13
shellHelper@src/mongo/shell/utils.js:766:15
@(shellhelp2):1:1

首次查看會報錯,此時需要執(zhí)行初始化命令

rs.initiate({ _id: "副本集名稱", members: [{_id:0,host:" 服務(wù)器的IP : Mongo的端口號 "}]})
例如(對應(yīng)上述配置):
> rs.initiate({ _id: "rs", members: [{_id:0,host:"172.18.40.157:27017"}]})
{ "ok" : 1 }

執(zhí)行完成后提示{ "ok" : 1 },代表執(zhí)行成功

初始完,副本集中唯一的節(jié)點,稍等一會,就會變?yōu)閜rimary

rs:PRIMARY> show dbs

就能查到數(shù)據(jù)庫了
3、用mongodb-compass工具登陸上去,找到local庫,點開


image.png

出現(xiàn)這個oplog.rs集合就行了

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容