您的位置:首页 > 数据库 > Mongodb

mongodb集群搭建

2012-02-07 16:56 363 查看
只有一台ubuntu机器,配置方案:

1、3个分片sharding

2、每一个分片由3个节点构成1主2备的Replica Sets

3、3个配置节点Configsever

4、1个路由节点Mongos

Shard Server: mongod 实例,用于存储实际的数据块,实际生产环境中一个shard server角色可由几台机器组个一个relica set承担,防止主机单点故障

Config Server: mongod 实例,存储了整个 Cluster Metadata,其中包括 chunk 信息。

Route Server: mongos 实例,前端路由,客户端由此接入,且让整个集群看上去像单一数据库,前端应用可以透明使用。

创建数据目录及日志目录

data/a/r0

data/a/r1

data/a/r2

data/b/r0

data/b/r1

data/b/r2

data/c/r0

data/c/r1

data/c/r2

data/configsvr/r0

data/configsvr/r1

data/configsvr/r2

创建日志文件目录:

data/log/a

data/log/b

data/log/c

data/log/configsvr

创建分片及复制集

第一组分片

/usr/opensource/mongodb-linux-i686-2.0.2/bin$ ./mongod -logpath ../../data/log/a/rc0.log --dbpath ../../data/a/rc0 --logappend --port 10000 --shardsvr --replSet setA --rest

/usr/opensource/mongodb-linux-i686-2.0.2/bin$ ./mongod -logpath ../../data/log/a/rc1.log --dbpath ../../data/a/rc1 --logappend --port 10001 --shardsvr --replSet setA --rest

/usr/opensource/mongodb-linux-i686-2.0.2/bin$ ./mongod -logpath ../../data/log/a/rc2.log --dbpath ../../data/a/rc2 --logappend --port 10002 --shardsvr --replSet setA --rest

创建分片后创建复制集

./mongo --port 10000

>config={_id:"setA",members:[{_id:0,host:"127.0.0.1:10000"},{_id:1,host:"127.0.0.1:10001"},{_id:2,host:"127.0.0.1:10002"}]}

rs.initiate(config)

第二组分片

/usr/opensource/mongodb-linux-i686-2.0.2/bin$ ./mongod -logpath ../../data/log/b/rc0.log --dbpath ../../data/b/rc0 --logappend --port 20000 --shardsvr --replSet setB --rest

/usr/opensource/mongodb-linux-i686-2.0.2/bin$ ./mongod -logpath ../../data/log/b/rc1.log --dbpath ../../data/b/rc1 --logappend --port 20001 --shardsvr --replSet setB --rest

/usr/opensource/mongodb-linux-i686-2.0.2/bin$ ./mongod -logpath ../../data/log/b/rc2.log --dbpath ../../data/b/rc2 --logappend --port 20002 --shardsvr --replSet setB --rest

同样创建复制集

./mongo --port 20000

>config={_id:"setB",members:[{_id:0,host:"127.0.0.1:20000"},{_id:1,host:"127.0.0.1:20001"},{_id:2,host:"127.0.0.1:20002"}]}

rs.initiate(config)

第三组分片

/usr/opensource/mongodb-linux-i686-2.0.2/bin$ ./mongod -logpath ../../data/log/c/rc0.log --dbpath ../../data/c/rc0 --logappend --port 30000 --shardsvr --replSet setC --rest

/usr/opensource/mongodb-linux-i686-2.0.2/bin$ ./mongod -logpath ../../data/log/c/rc1.log --dbpath ../../data/c/rc1 --logappend --port 30001 --shardsvr --replSet setC --rest

/usr/opensource/mongodb-linux-i686-2.0.2/bin$ ./mongod -logpath ../../data/log/c/rc2.log --dbpath ../../data/c/rc2 --logappend --port 30002 --shardsvr --replSet setC --rest

同样创建复制组

./mongo --port 30000

>config={_id:"setC",members:[{_id:0,host:"127.0.0.1:30000"},{_id:1,host:"127.0.0.1:30001"},{_id:2,host:"127.0.0.1:30002"}]}

启动三个配置服务节点Configsvr

/usr/opensource/mongodb-linux-i686-2.0.2/bin$ ./mongod --configsvr --logpath ../../data/log/configsvr/rc0.log --dbpath ../../data/configsvr/rc0 --logappend
--port 40000 --shardsvr

/usr/opensource/mongodb-linux-i686-2.0.2/bin$ ./mongod --configsvr --logpath ../../data/log/configsvr/rc1.log --dbpath ../../data/configsvr/rc1 --logappend
--port 40001 --shardsvr

/usr/opensource/mongodb-linux-i686-2.0.2/bin$ ./mongod --configsvr --logpath ../../data/log/configsvr/rc2.log --dbpath ../../data/configsvr/rc2 --logappend
--port 40002 --shardsvr

启动路由节点

/usr/opensource/mongodb-linux-i686-2.0.2/bin$ ./mongos --configdb 127.0.0.1:40000,127.0.0.1:40001,127.0.0.1:40002 --logpath ../../data/log/mongos.log --logappend
--port 50000

设置分片

./mongo 127.0.0.1:50000

切换至admin

mongos>use admin

db.runCommand({addshard:"setA/127.0.0.1:10000,127.0.0.1:10001,127.0.0.1:10002",name:"ShardSetA"})

db.runCommand({addshard:"setB/127.0.0.1:20000,127.0.0.1:20001,127.0.0.1:20002",name:"ShardSetB"})

db.runCommand({addshard:"setB/127.0.0.1:20000,127.0.0.1:20001,127.0.0.1:20002",name:"ShardSetB"})

查看结果

printShardingStatus();

配置完成
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: