同一电脑上配置Mongodb集群(一)

2014-11-24 17:05:02 · 作者: · 浏览: 2
副本集的配置
1.启动
mongod --dbpath D:\DB\Mongodb\data\replset\r1\
--logpath D:\DB\Mongodb\data\replset\r1\replset.log
--replSet test --logappend --port 10001

mongod --dbpath D:\DB\Mongodb\data\replset\r2\
--logpath D:\DB\Mongodb\data\replset\r2\replset.log
--replSet test --logappend --port 10002

mongod --dbpath D:\DB\Mongodb\data\replset\r3\
--logpath D:\DB\Mongodb\data\replset\r3\replset.log
--replSet test --logappend --port 10003

mongod --dbpath D:\DB\Mongodb\data\replset\r4\
--logpath D:\DB\Mongodb\data\replset\r4\replset.log
--replSet test --logappend --port 10004


2. 配置
config_test = { _id:"test",
members:[ {_id:0,host:"127.0.0.1:10001"},
{_id:1,host:"127.0.0.1:10002"},
{_id:2,host:"127.0.0.1:10003"},
{_id:3,host:"127.0.0.1:10004", arbiterOnly:true}
]
}
rs.initiate(config_test);
执行该命令后,需要等待一些时间(各有不同,根据机器配置)
如果后台配置为完成时连接进去mongo 127.0.0.1:10001, 状态可能是STARTUP2(主节点)
或者是RECOVERING(从节点和仲裁节点), 这个时候只需要等待即可,如果等待很久(超过1小时),
可以考虑重新启动主节点.
如果在从节点想读取数据, 需要在从节点执行db.getMongo().setSlaveOk();
停掉master, 会自动在该副本集中选取一台为主节点, 重新启动master节点,
又会恢复master身份

集群的配置
配置方案:
1、3个分片sharding
2、每一个分片由3个节点构成1主2备的Replica Sets
3、3个配置节点Configsever
4、1个路由节点Mongos
5、提前准备(提前规划和创建好数据文件目录以及日志文件,如果涉及到数据/日志迁移,最好提前想好如何设置)


1. 创建分片和复制集
分片1
mongod --dbpath D:\DB\Mongodb\data\cluster\set1\r1\ --logpath D:\DB\Mongodb\data\cluster\logs\set1\r1\r1.log --logappend --port 10001 --shardsvr --replSet set1 --rest --oplogSize 64
mongod --dbpath D:\DB\Mongodb\data\cluster\set1\r2\ --logpath D:\DB\Mongodb\data\cluster\logs\set1\r2\r2.log --logappend --port 10002 --shardsvr --replSet set1 --rest --oplogSize 64
mongod --dbpath D:\DB\Mongodb\data\cluster\set1\r3\ --logpath D:\DB\Mongodb\data\cluster\logs\set1\r3\r3.log --logappend --port 10003 --shardsvr --replSet set1 --rest --oplogSize 64
连接任意一台mongo 127.0.0.1:10001执行脚本
config = {"_id": "set1","members": [{"_id": 0,"host": "127.0.0.1:10001"},{"_id": 1,"host": "127.0.0.1:10002"},{"_id": 2,"host": "127.0.0.1:10003"}]}
rs.initiate(config);

分片2
mongod --dbpath D:\DB\Mongodb\data\cluster\set2\r1\ --logpath D:\DB\Mongodb\data\cluster\logs\set3\r1\r1.log --logappend --port 20001 --shardsvr --replSet set2 --rest --oplogSize 64
mongod --dbpath D:\DB\Mongodb\data\cluster\set2\r2\ --logpath D:\DB\Mongodb\data\cluster\logs\set3\r2\r2.log --logappend --port 20002 --shardsvr --replSet set2 --rest --oplogSize 64
mongod --dbpath D:\DB\Mongodb\data\cluster\set2\r3\ --logpath D:\DB\Mongodb\data\cluster\logs\set3\r3\r3.log --logappend --port 20003 --shardsvr --replSet set2 --rest --oplogSize 64
连接任意一台mongo 127.0.0.1:20001执行脚本
config = {"_id": "set2","members": [{"_id": 0,"host": "127.0.0.1:20001"},{"_id": 1,"host": "127.0.0.1:20002"},{"_id": 2,"host": "127.0.0.1:20003"}]}
rs.initiate(config);

分片3
mongod --dbpath D:\DB\Mongodb\data\cluster\set3\r1\ --logpath D:\DB\Mongodb\data\cluster\logs\set3\r1\r1.log --logappend --port 30001 --shardsvr --replSet set3 --rest --oplogSize 64
mongod --dbpath D:\DB\Mongodb\data\cluster\set3\r2\ --logpath D:\DB\Mongodb\data\cluster\logs\set3\r2\r2.log --logappend --port 30002 --shardsvr --replSet set3 --rest --oplogSize 64
mongod --dbpath D:\DB\Mongodb\data\cluster\set3\r3\ --logpath D:\DB\Mongodb\data\cluster