1. 程式人生 > 實用技巧 >mongodb副本集

mongodb副本集

建立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)

結束!