搭建MongoDB分片集群
在部门服务器搭建MongoDB分片集群,记录整个操作过程,朋友们也可以参考。
计划如下:
用5台机器搭建,IP分别为:192.168.58.5、192.168.58.6、192.168.58.8、192.168.58.9、192.168.58.10。分为两个分片,每个分片下有一个primary,一个secondary,一个仲裁。在其中三台启动config server和mongos。
shard1:58.5、58.6、58.10(仲裁)
shard2:58.8、58.9、58.10(仲裁)
config server:58.5、58.8、58.10
mongos:58.5、58.8、58.10
实施如下:
1、所有机器创建mongodb文件夹
mkdir -p /opt/mongodb
cd /opt/mongodb
2、所有机器下载mongodb的安装程序包
wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.4.8.tgz
tar xvzf mongodb-linux-x86_64-2.4.8.tgz
3、分别在相应机器建立mongos 、config 、 shard1 、shard2目录
#58.5、58.8、58.10建立mongos目录mkdir -p /opt/mongodb/mongos/log#58.5、58.8、58.10建立config server 数据文件存放目录mkdir -p /opt/mongodb/config/data#58.5、58.8、58.10建立config server 日志文件存放目录mkdir -p /opt/mongodb/config/log#58.5、58.6、58.10建立shard1 数据文件存放目录mkdir -p /opt/mongodb/shard1/data#58.5、58.6、58.10建立shard1 日志文件存放目录mkdir -p /opt/mongodb/shard1/log#58.8、58.9、58.10建立shard2 数据文件存放目录mkdir -p /opt/mongodb/shard2/data#58.8、58.9、58.10建立shard2 日志文件存放目录mkdir -p /opt/mongodb/shard2/log4、规划组件对应的端口号,这个端口可以自由定义,在本文 mongos为 27017, config server 为 21000, shard1为 22001 , shard2为22002
5、58.5、58.8、58.10分别启动配置服务器
/opt/mongodb/mongodb-linux-x86_64-2.4.8/bin/mongod --configsvr --dbpath /opt/mongodb/config/data --port 21000 --logpath /opt/mongodb/config/log/config.log --fork6、58.5、58.8、58.10分别启动mongos服务器
/opt/mongodb/mongodb-linux-x86_64-2.4.8/bin/mongos --configdb 192.168.58.5:21000,192.168.58.8:21000,192.168.58.10:21000 --port 27017 --logpath /opt/mongodb/mongos/log/mongos.log --fork7、配置各个分片的副本集
#58.5、58.6、58.10分别设置分片1服务器及副本集shard1/opt/mongodb/mongodb-linux-x86_64-2.4.8/bin/mongod --shardsvr --replSet shard1 --port 22001 --dbpath /opt/mongodb/shard1/data --logpath /opt/mongodb/shard1/log/shard1.log --fork#58.8、58.9、58.10分别设置分片2服务器及副本集shard2/opt/mongodb/mongodb-linux-x86_64-2.4.8/bin/mongod --shardsvr --replSet shard2 --port 22002 --dbpath /opt/mongodb/shard2/data --logpath /opt/mongodb/shard2/log/shard2.log --fork8、分别对每个分片配置副本集
1)登陆192.168.58.5
#设置第一个分片副本集/opt/mongodb/mongodb-linux-x86_64-2.4.8/bin/mongo 127.0.0.1:22001#使用admin数据库use admin#定义副本集配置config = { _id:"shard1", members:[ {_id:0,host:"192.168.58.5:22001"}, {_id:1,host:"192.168.58.6:22001"}, {_id:2,host:"192.168.58.10:22001",arbiterOnly:true} ] }#初始化副本集配置rs.initiate(config);2)登陆192.168.58.8
#设置第二个分片副本集/opt/mongodb/mongodb-linux-x86_64-2.4.8/bin/mongo 127.0.0.1:22002#使用admin数据库use admin#定义副本集配置config = { _id:"shard2", members:[ {_id:0,host:"192.168.58.8:22002"}, {_id:1,host:"192.168.58.9:22002"}, {_id:2,host:"192.168.58.10:22002",arbiterOnly:true} ] }#初始化副本集配置rs.initiate(config);9、目前搭建了mongodb配置服务器、路由服务器,各个分片服务器,不过应用程序连接到 mongos 路由服务器并不能使用分片机制,还需要设置分片配置,让分片生效
登陆192.168.58.10
#连接到mongos/opt/mongodb/mongodb-linux-x86_64-2.4.8/bin/mongo 127.0.0.1:27017#使用admin数据库use admin#串联路由服务器与分配副本集1db.runCommand( { addshard : "shard1/192.168.58.5:22001,192.168.58.6:22001,192.168.58.10:22001"});#串联路由服务器与分配副本集2db.runCommand( { addshard : "shard2/192.168.58.8:22002,192.168.58.9:22002,192.168.58.10:22002"});#查看分片服务器的配置db.runCommand( { listshards : 1 } );10、完成

浙公网安备 33010602011771号