mongodb3.2 replica sets
一、配置文件/etc/mongod.conf# egrep -v "^(#|$)" /etc/mongod.confsystemLog:destination: filelogAppend: truepath: /data/mongodb/log/rs1.logstorage:dbPath: /data/mongodb/datadirectoryPerDB: truejournal: enabled: trueprocessManagement:fork: true# fork and run in backgroundpidFilePath: /data/mongodb/conf/mongod.pid# location of pidfilenet:port: 27027replication: oplogSizeMB: 50000 replSetName: rs1## ls /data/mongodb/arbiterconfdatalogstartaribiter.sh# ls /data/mongodb/arbiter/arbiter.confconfdatalog# egrep -v "^(#|$)" /data/mongodb/arbiter/arbiter.confsystemLog:destination: filelogAppend: truepath: /data/mongodb/arbiter/log/rs1.logstorage:dbPath: /data/mongodb/arbiter/datadirectoryPerDB: truejournal: enabled: trueprocessManagement:fork: true# fork and run in backgroundpidFilePath: /data/mongodb/arbiter/conf/mongod.pid# location of pidfilenet:port: 27029replication: oplogSizeMB: 50000 replSetName: rs1
# cat /data/mongodb/startarbiter.sh#!/bin/sh. /etc/rc.d/init.d/functionscd ${0%/*}/arbiterdaemon --user mongod "mongod --config arbiter.conf"#注意:arbiter.conf文件的属主、属组为mongod
二、启动服务,配置副本集service mongodstart /data/mongodb/startaribiter.sh启动第二个节点然后:在primary上, rs.initiate() rs.add("mongodb2.example.net") rs.add("mongodb3.example.net") rs.addArb(“mongodb1.example.net:27029”)
如果希望降低primary的优先级: cfg = rs.conf() cfg.members.priority = 0.5 rs.reconfig(cfg) rs.status()
实现复制后,在从节点上查看数据如下:SECONDARY> rs.slaveOk()SECONDARY> rs.slaveOk()SECONDARY> show collections
三、 使用keyFile实现复制验证在主节点上创建群集用户及密码如下:admin = db.getSiblingDB("admin")admin.createUser({ user: “clusteradmin”, pwd: “clusterpwd”, roles: [ { role: "userAdminAnyDatabase", db: "admin" }, { role: “clusterAdmin”, db: "admin" }, { role: “root”, db: "admin" } ]})测试用户:db.getSiblingDB("admin").auth(“clusteradmin”, “clusterpwd” )
在各从节点上关闭服务: use admin db.shutdownServer()包括arbiter节点也要关闭服务,最后再关闭primary节点的服务。
然后在各配置文件mongdb.conf中添加认证文件:security:keyFile: /data/mongodb/conf/keyfile.key# cat /data/mongodb/conf/keyfile.keyabcdefgh该文件的权限必须是600或400,并把该文件复制到各节点上(保持内容相同),该文件也可以使用以下命令生成:openssl rand -base64 755 >path-to-keyfile
最后再新启动各节点的mongodb服务,并重新login ,测试。
参考:https://docs.mongodb.com/manual/tutorial/deploy-replica-set/https://docs.mongodb.com/manual/tutorial/enforce-keyfile-access-control-in-existing-replica-set/
页:
[1]