mongodb副本集
阿新 • • 發佈:2020-12-20
建立docker:
建立docker5000:docker run -d -p 5000:5000 -p 27017:27017 -e MONGO_ONE_NODE=True -e MONGO_ADMIN_PASSWORD=admin mm2:latest 建立docker5001:docker run -d -p 5000:5001 -p 27018:27017 -e MONGO_ONE_NODE=True -e MONGO_ADMIN_PASSWORD=admin mm2:latest
啟動mongo服務:
/usr/bin/mongod --bind_ip_all --logpath /var/log/mongodb/mongod.log --replSet rs0 --fork
建立副本集:
/usr/bin/mongo admin --eval "rs.initiate({"_id":"rs0","members":[{"_id":0,"host":"172.17.0.1:27017"},{"_id":1,"host":"172.17.0.1:27018"}]});"
建立角色:
/usr/bin/mongo admin --eval " db.createUser({ user: 'admin', pwd: 'admin', roles: [{role: 'userAdminAnyDatabase', db: 'admin'}], mechanisms:['SCRAM-SHA-1'] });"
關閉mongo:
/usr/bin/mongod --shutdown --dbpath=/var/lib/mongodb --logpath=/var/log/mongodb/mongod.log --port=27017 --logappend --fork
主節點:
db.isMaster()
檢視副本集:
rs.status()
rs.config()
設定權重:
conf = rs.config() #獲取副本集的配置,預設權重都是1 conf.members[0].priority = 10 # 設定權重
為SECONDARY新增查詢許可權:
rs.slaveOk()
mongo副本集設定主庫權重,即使主庫宕機了再重啟也還是主庫:
cfg = rs.conf() -------》(檢視序列) cfg.members[0].priority = 1 (設定從機權重1,低一點) cfg.members[1].priority = 1(設定從機權重1,低一點) cfg.members[2].priority = 2(設定主庫權重2,高於從庫) rs.reconfig(cfg)
結束!