总结一下windows 64 mongoDB 集群
至少要求三个mongo ,本次搞了四个 ,后面又在另外一个实例中增加一个,步骤1: 新建文件夹:data用的 E:/diange/MongoDB/data/b/r1 E:/diange/MongoDB/data/b/r2 E:/diange/MongoDB/data/b/r3 E:/diange/MongoDB/data/b/r4 新建文件夹:给logs用的 E:/diange/MongoDB/logs/b 2、这里需要打开4个cmd窗口分别 cd到同一个实例下启动mongo mongod --dbpath E:/diange/MongoDB/data/b/r1 --port 27108 --replSet myrepl --logappend --logpath E:/diange/MongoDB/logs/b/r1.log --oplogSize 64 mongod --dbpath E:/diange/MongoDB/data/b/r2 --port 27109 --replSet myrepl --logappend --logpath E:/diange/MongoDB/logs/b/r2.log --oplogSize 64 mongod --dbpath E:/diange/MongoDB/data/b/r3 --port 27110 --replSet myrepl --logappend --logpath E:/diange/MongoDB/logs/b/r3.log --oplogSize 64 mongod --dbpath E:/diange/MongoDB/data/b/r4 --port 27111 --replSet myrepl --logappend --logpath E:/diange/MongoDB/logs/b/r4.log --oplogSize 64 3、新打开一个cmd窗口,cd到mongo文件夹bin目录下,输入命令,链接任意一个启动的mongo 命令如下:mongo 172.16.90.29:27108 4、然后输入命令设置集群配置 var myrepl={ _id:'myrepl', members:[ {_id:0, host:'172.16.90.29:27108'}, {_id:1, host:'172.16.90.29:27109'}, {_id:2, host:'172.16.90.29:27110'}, {_id:3, host:'172.16.90.29:27111'}] } rs.initiate(myrepl); 5、验证集群配置 输入命令rs.status(); 查看集群状态 结果如下: myrepl:PRIMARY> rs.status(); { "set" : "myrepl", "date" : ISODate("2015-05-19T10:14:29Z"), "myState" : 1, "members" : [ { "_id" : 0, "name" : "172.16.90.29:27108", "health" : 1, "state" : 2, "stateStr" : "SECONDARY", "uptime" : 322, "optime" : Timestamp(1432030448, 1), "optimeDate" : ISODate("2015-05-19T10:14:08Z"), "lastHeartbeat" : ISODate("2015-05-19T10:14:29Z"), "lastHeartbeatRecv" : ISODate("2015-05-19T10:14:28 "pingMs" : 0, "syncingTo" : "172.16.90.29:27110" }, { "_id" : 1, "name" : "172.16.90.29:27109", "health" : 1, "state" : 2, "stateStr" : "SECONDARY", "uptime" : 433, "optime" : Timestamp(1432030448, 1), "optimeDate" : ISODate("2015-05-19T10:14:08Z"), "lastHeartbeat" : ISODate("2015-05-19T10:14:28Z"), "lastHeartbeatRecv" : ISODate("2015-05-19T10:14:28 "pingMs" : 0, "syncingTo" : "172.16.90.29:27110" }, { "_id" : 2, "name" : "172.16.90.29:27110", "health" : 1, "state" : 1, "stateStr" : "PRIMARY", "uptime" : 435, "optime" : Timestamp(1432030448, 1), "optimeDate" : ISODate("2015-05-19T10:14:08Z"), "electionTime" : Timestamp(1432030115, 1), "electionDate" : ISODate("2015-05-19T10:08:35Z"), "self" : true }, { "_id" : 3, "name" : "172.16.90.29:27111", "health" : 1, "state" : 2, "stateStr" : "SECONDARY", "uptime" : 21, "optime" : Timestamp(1432030448, 1), "optimeDate" : ISODate("2015-05-19T10:14:08Z"), "lastHeartbeat" : ISODate("2015-05-19T10:14:28Z"), "lastHeartbeatRecv" : ISODate("2015-05-19T10:14:29 "pingMs" : 0, "syncingTo" : "172.16.90.29:27110" } ], "ok" : 1 } 6、如果需要新增节点的话,也可以cd 到新的实例下或者在相同的实例下,重复上述步骤如下: 新开cmd窗口 cd 到 e:/zxdg/mongo/bin mongod --dbpath E:/点歌/MongoDB/data/b/r5 --port 27112 --replSet myrepl --logappend --logpath E:/diange/MongoDB/logs/b/r4.log --oplogSize 64
链接任意的一个mongo, mongo 172.16.90.29:27108 链接成功后,rs.status(); 查一下哪个节点是主节点,然后,退出当前节点的连接,然后连接主节点输入一下内容 重新设置集群参数 var myrepl={ _id:'myrepl', members:[ {_id:0, host:'172.16.90.29:27108'}, {_id:1, host:'172.16.90.29:27109'}, {_id:2, host:'172.16.90.29:27110'}, {_id:3, host:'172.16.90.29:27111'}, {_id:4, host:'172.16.90.29:27112'}] } rs.reconfig(myrepl); 然后验证就可以了 注意:代码里连mongo时,如果链接没有try,primary节点关闭的话,会报异常,关闭secondary 节点不会有影响 所以,还是要在获取mongo连接时,try catch一下,这样不管你关哪个节点,程序都能正常执行 有很多命令可以用,上网搜一下即可
linux环境的集群方式,参照:
http://blog.csdn.net/luonanqin/article/details/8497860
博客写的很详细