MongoDB 副本集

生产环境中我们不可能只有一台MongoDB服务器,我们需要一个集群来支持应用程序的请求.这里我们通过使用副本集来实现.创建副本集,会有一个主服务器,它主要用于处理应用程序的请求,多个备份服务器,从主服务器备份数据副本, 当主服务崩溃的时候,备份服务器通过选举,满足“大多数”的条件,一台备份服务器可以成为主服务.

       创建副本集

mongod --dbpath="副本集路径" --port 端口号  --replSet 副本集名称 --oplogSize=5(定义日志大小,新建需要开启不需要)
目前我创建的例子:
第一个成员
mongod --dbpath="C:\data\db\node1" --port 1111  --replSet replicationTest --oplogSize=5
第二个成员
mongod --dbpath="C:\data\db\node2" --port 2222  --replSet replicationTest --oplogSize=5
第三个成员
mongod --dbpath="C:\data\db\node3" --port 3333  --replSet replicationTest --oplogSize=5

目前我在不同服务器上面创建了3个不同的mongod实例(我是本机操作的,现实中在不同服务器上面创建), 但是他们彼此不清楚对方的存在,

通过创建配置文件让他们彼此联系在一起.


如果某个副本集成员关闭了,通过命令开启:例 : mongod --dbpath="C:\data\db\node1" --port 1111  --replSet replicationTest

我的副本集名称这里是:replicationTest,下面的host对应的是副本集的成员

config={
  "id":"replicationTest",
  "members":[
		{"_id":0,"host":"127.0.0.1:1111"},
		{"_id":1,"host":"127.0.0.1:2222"},
		{"_id":1,"host":"127.0.0.1:2222"}
	]
}

然后执行初始化

--config是副本集的配置信息
db= (new Mongo("127.0.0.1:1111")).getDB("test")
//初始化副本集
rs.initiate(config)

此时配置结束,这个副本集会自动选出一个主节点,登录到其中一个副本,如下图

MongoDB 副本集_第1张图片


stateStrL"Primary" 表示主节点,也可以通过rs.isMaster() 命令查看


MongoDB 副本集_第2张图片


此时整个副本集配置结束

你可能感兴趣的:(MongoDB,mongodb,副本集)