之前采用主从模式的时候,一旦主停掉,Java客户端就会报异常,这个时候已经没有主了,奴隶不会自动接管的主人
Sets 复制品,也是一种主从,但它更健壮,一旦主停掉后,将会在奴隶中选举一个作为大师,这种方式也是官方推荐的。可以参考http://www.mongodb.org/display/DOCS/Replica +集
,
测试副本集非常简单,在单台服务器上,建了三个用户来测试。
为了简化测试,先把启动脚本写好
# !/bin/sh
#文件名start.sh
#使用sh开始。上海港口
如果[$ # !=1];然后
回声”用法:$ 0(港)"
退出1;
fi
MONGODB_HOME=$ HOME/工作/mongodb
DATA_PATH=$ MONGODB_HOME/数据
LOG_PATH=$ MONGODB_HOME/日志/mongodb。日志
MONGODB_PORT=1美元MONGODB_HOME美元
/bin/mongod——其他——replSet=testset——dbpath=$ DATA_PATH港口logpath=$=$ MONGODB_PORT——叉LOG_PATH
, 用户一:db1 在上海开始。上海30000年 用户一:db2 在上海开始。上海40000年 此时,两个用户下的mongodb没有任何关系,日志文件输出 星期五Aug ,,, 5 23:35:01 startReplSets replSet得不到local.system。replset配置从自我或任何种子(EMPTYCONFIG)
星期五Aug ,,, 5 23:35:01 [startReplSets] replset信息您可能需要运行replSetInitiate——rs.initiate壳() 意思是还没初始化,现在我们来初始化两个mongodb,使之建立主从关系 在db1下 祝辞。/mongo——端口=30000
MongoDB shell版本:1.8.2
连接:127.0.0.1:30000/测试
在使用管理
在cfg={
“_id”:“myset”,
“版本”:1,
“成员”:[
{
“_id”: 0,
“主机”:“10.16.46.113:30000”
},
{
“_id”: 1,
“主机”:“10.16.46.113:40000”
}
]}
祝辞rs.initiate (cfg) 稍等片刻,在db1的日志里就可以看到如下信息,表明db1上的mongodb已经成为大师 星期五Aug ,,, 5 23:43:05 (rs经理)replSet信息electSelf 0
星期五Aug ,,, 5 23:43:05 (rs经理)replSet初选 , 在控制台中通过 rs.status () 查看它们之间的关系 , 现在来往集群中添加一个mongodb 在用户三:db4中启动mongodb , 在上海开始。上海50000年 起好后 在掌握中将db4的mongodb加到集群中 testset: PRIMARY> rs.add (10.16.46.113:50000)
, 稍等片刻,通过rs.status()查看集群中的节点 , 测试主停机的情况,看一下java客户端调用情况,停掉后客户端会有异常日志,但并没有像之前的主从那样报的错 通过rs.status(),另外一个节点已经成为主要服务节点
回声”用法:$ 0(港)"
退出1;
fi
MONGODB_HOME=$ HOME/工作/mongodb
DATA_PATH=$ MONGODB_HOME/数据
LOG_PATH=$ MONGODB_HOME/日志/mongodb。日志
MONGODB_PORT=1美元MONGODB_HOME美元
/bin/mongod——其他——replSet=testset——dbpath=$ DATA_PATH港口logpath=$=$ MONGODB_PORT——叉LOG_PATH
, 用户一:db1 在上海开始。上海30000年 用户一:db2 在上海开始。上海40000年 此时,两个用户下的mongodb没有任何关系,日志文件输出 星期五Aug ,,, 5 23:35:01 startReplSets replSet得不到local.system。replset配置从自我或任何种子(EMPTYCONFIG)
星期五Aug ,,, 5 23:35:01 [startReplSets] replset信息您可能需要运行replSetInitiate——rs.initiate壳() 意思是还没初始化,现在我们来初始化两个mongodb,使之建立主从关系 在db1下 祝辞。/mongo——端口=30000
MongoDB shell版本:1.8.2
连接:127.0.0.1:30000/测试
在使用管理
在cfg={
“_id”:“myset”,
“版本”:1,
“成员”:[
{
“_id”: 0,
“主机”:“10.16.46.113:30000”
},
{
“_id”: 1,
“主机”:“10.16.46.113:40000”
}
]}
祝辞rs.initiate (cfg) 稍等片刻,在db1的日志里就可以看到如下信息,表明db1上的mongodb已经成为大师 星期五Aug ,,, 5 23:43:05 (rs经理)replSet信息electSelf 0
星期五Aug ,,, 5 23:43:05 (rs经理)replSet初选 , 在控制台中通过 rs.status () 查看它们之间的关系 , 现在来往集群中添加一个mongodb 在用户三:db4中启动mongodb , 在上海开始。上海50000年 起好后 在掌握中将db4的mongodb加到集群中 testset: PRIMARY> rs.add (10.16.46.113:50000)
, 稍等片刻,通过rs.status()查看集群中的节点 , 测试主停机的情况,看一下java客户端调用情况,停掉后客户端会有异常日志,但并没有像之前的主从那样报的错 通过rs.status(),另外一个节点已经成为主要服务节点