在部门服务器搭建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/log
/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 --fork
/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 --fork
#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 --fork
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);
#设置第二个分片副本集
/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);
#连接到mongos
/opt/mongodb/mongodb-linux-x86_64-2
.4.8
/bin/mongo
127.0.0.1:27017
#使用admin数据库
use admin
#串联路由服务器与分配副本集1
db.runCommand( { addshard :
"shard1/192.168.58.5:22001,192.168.58.6:22001,192.168.58.10:22001"
});
#串联路由服务器与分配副本集2
db.runCommand( { addshard :
"shard2/192.168.58.8:22002,192.168.58.9:22002,192.168.58.10:22002"
});
#查看分片服务器的配置
db.runCommand( { listshards : 1 } );