MongoDB 学习笔记(三) MongoDB (replica set) 集群配置

时间:2023-03-08 16:39:47
MongoDB 学习笔记(三) MongoDB (replica set) 集群配置

  MongoDB Replica Sets的结构类似于以集群,完全可以把他当成一个集群,因为他确实与集群实现的作用是一样的:如果其中一个节点出现故障,其他的节点会马上将业务接管过来。而无需停机操作

MongoDB Replica Sets的配置步骤:

1:启动三个节点

(mongodb\mongodb\bin\  为mongo 所在文件夹)

启动第1个节点:
mongodb\mongodb\bin\mongod --replSet rs3/127.0.0.1:28011,127.0.0.1:28012 --port 28010 --oplogSize 10 --dbpath d:\MongoDB\data\data\r0 --logpath=d:\MongoDB\data\log\log.log --logappend

启动第2个节点:
mongodb\mongodb\bin\mongod --replSet rs3/127.0.0.1:28010,127.0.0.1:28012 --port 28011  --oplogSize 10 --dbpath d:\MongoDB\data\data\r1 --logpath=d:\MongoDB\data\log\log1.log --logappend

启动第3个节点:
mongodb\mongodb\bin\mongod --replSet rs3/127.0.0.1:28010,127.0.0.1:28011 --port 28012  --oplogSize 10 --dbpath d:\MongoDB\data\data\r2 --logpath=d:\MongoDB\data\log\log2.log --logappend

介绍一下涉及到的参数

--oplogSize 日志操作文件的大

--dbpath   数据文件路径

--logpath  日志文件路径

--port        端口号,默认是27017.我这里使用的也是这个端口号.

--replSet   复制集的名字,一个replica sets中的每个节点的这个参数都要用一个复制集名字,这里是test.

--replSet test/  这个后面跟的是其他standard节点的ip和端口

--maxConns   最大连接数

--fork       后台运行

--logappend   日志文件循环使用,如果日志文件已满,那么新日志覆盖最久日志。

--keyFile       标识同一集群的认证私钥

其中在启动节点时一定要加上oplogSize 的参数 为其设置大小,不然在64位操作系统上的mongodb,oplogs都相当大-可能是5%的磁盘空间,要根据情况设置个合理的值。

2: 配置节点信息

任选一个节点 依次执行如下命令:

mongo --port 28010

confinre={_id:'rs3',members:[{_id:0,host:'127.0.0.1:28010',priority:1},{_id:1,host:'127.0.0.1:28011'},{_id:2,host:'127.0.0.1:28012'}]}

rs.initiate(confinre)

rs.status()

执行结果如下:

MongoDB 学习笔记(三) MongoDB (replica set) 集群配置

Mongodb 的replica Set 架构是通过一个叫 oplog 的固定长度的capped collection 来存储操作,用于记录replica Sets 操作日志。它存在与local 库中。

Mongodb 的replica Set 的配置信息 存储在 system.replset 集合中

3:读写分离

MongoDB 学习笔记(三) MongoDB (replica set) 集群配置

4:故障转移

某一个节点的mongodb 出现异常,系统自动将其他节点设置为主库

部分参考: http://blog.csdn.net/bloggongchang/article/details/7272403