天天看点

MongoDB -- 复制集搭建

复制集 和 普通的mongo主从集群有区别吗?

  • 复制集,当集群中的主节点宕机了,会自动进行投票选举新的主节点。普通集群不行。
  • 复制集,可以进行读写分离,分散服务器的压力

官网推荐使用复制集替换主从的集群模式

参考:http://www.lanceyan.com/tech/mongodb/mongodb_repset1.html

环境:

服务器:192.168.146.129 一台,创建3个mongo服务

按照自己的喜好设置路径

启动服务:

./mongod --fork --dbpath /data/mongoreplset/repl1/data --logpath /data/mongoreplset/repl1/log/mongo.log --journal --storageEngine=mmapv1 --replSet repset

./mongod --fork --port 27012 --dbpath /data/mongoreplset/repl2/data --logpath /data/mongoreplset/repl2/log/mongo.log --journal --storageEngine=mmapv1 --replSet repset

./mongod --fork --port 27013 --dbpath /data/mongoreplset/repl3/data --logpath /data/mongoreplset/repl3/log/mongo.log --journal --storageEngine=mmapv1 --replSet repset
           

任意一台机器登陆,初始化配置

config = { _id:"repset", members:[
... {_id:,host:"192.168.146.129:27017"},
... {_id:,host:"192.168.146.129:27012"},
... {_id:,host:"192.168.146.129:27013"}]
... }
           

执行

查看输出结果,哪台机器属于primary和second

登陆到primary机器,运行mongo,插入一条数据,3台服务器成功完成 数据的复制

当3台机器中的主节点挂掉后

2个从服务器会进行投票选举

可以看日志:

MongoDB -- 复制集搭建
MongoDB -- 复制集搭建

注意,

  • 在启动客户端时候禁用./mongo,而是使用./mongo 192.168.146.129:27012(primary节点的地址)