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

手把手搭建集群系列(三)——Mongodb

2017-06-04 22:39 405 查看

Mongodb集群配置

所需资源

Mongodb/mongodb-linux-x86_64-rhel70-3.4.4.tgz

下载地址 -> https://www.mongodb.com/download-center?jmp=nav#community

版本 -> RHEL 7 Linux 64-bit x64

0.配置之前

0.1 复制CentOS附件包内的Mongodb文件夹至/usr/local/server

0.2 Mongodb集群暂没有完美更换IP/主机名的解决方案,务必使用域名进行配置

0.3 分片副本集群信息

分片副本集1

mongo2.tianjie.group:30001

mongo3.tianjie.group:30001

mongo4.tianjie.group:30001

分片副本集2

mongo2.tianjie.group:30002

mongo3.tianjie.group:30002

mongo4.tianjie.group:30002

分片副本集3

mongo2.tianjie.group:30003

mongo3.tianjie.group:30003

mongo4.tianjie.group:30003

0.3 配置副本集信息

配置副本集1

mongo1.tianjie.group:20001

mongo1.tianjie.group:20002

mongo1.tianjie.group:20003

0.4 路由集群信息

路由节点1 -> mongo0.tianjie.group:10001

路由节点2 -> mongo0.tianjie.group:10002

路由节点3 -> mongo0.tianjie.group:10003

1.释放资源包

1.1 解压Mongodb资源包

cd /usr/local/server/Mongodb
tar -zxvf mongodb-linux-x86_64-rhel70-3.4.4.tgz


1.2 重命名资源包名称

mv mongodb-linux-x86_64-rhel70-3.4.4 Mongodb


2.构建分片副本集群(每个副本集由奇数个节点构成)

执行服务器:mongo2/3/4

2.1 释放资源包(执行上述1中步骤)

2.2 创建资源目录

cd /usr/local/server/Mongodb/Mongodb
mkdir shard{1,2,3}
mkdir shard{1,2,3}/data
mkdir shard{1,2,3}/log


2.3 打开分片服务

cd /usr/local/server/Mongodb/Mongodb/bin
./mongod --shardsvr --replSet shard1ReplSet --port 30001 --dbpath /usr/local/server/Mongodb/Mongodb/shard1/data --logpath /usr/local/server/Mongodb/Mongodb/shard1/log/shard1.log --fork --nojournal
./mongod --shardsvr --replSet shard2ReplSet --port 30002 --dbpath /usr/local/server/Mongodb/Mongodb/shard2/data --logpath /usr/local/server/Mongodb/Mongodb/shard2/log/shard2.log --fork --nojournal
./mongod --shardsvr --replSet shard3ReplSet --port 30003 --dbpath /usr/local/server/Mongodb/Mongodb/shard3/data --logpath /usr/local/server/Mongodb/Mongodb/shard3/log/shard3.log --fork --nojournal


2.4 防火墙配置(打开30001,30002,30003端口)

2.5 在mongo2/3/4.tianjie.group上分别执行2.1-2.4步骤

2.6 配置副本集信息

下述命令在mongo2/3/4任意一台机器上执行

配置分片副本集1

./mongo --host mongo2.tianjie.group --port 30001
rs.initiate({_id:"shard1ReplSet",members:[{_id:0,host:"mongo2.tianjie.group:30001"},{_id:1,host:"mongo3.tianjie.group:30001"},{_id:2,host:"mongo4.tianjie.group:30001"}]})


配置分片副本集2

./mongo --host mongo2.tianjie.group --port 30002
rs.initiate({_id:"shard2ReplSet",members:[{_id:0,host:"mongo2.tianjie.group:30002"},{_id:1,host:"mongo3.tianjie.group:30002"},{_id:2,host:"mongo4.tianjie.group:30002"}]})


配置分片副本集3

./mongo --host mongo2.tianjie.group --port 30003
rs.initiate({_id:"shard3ReplSet",members:[{_id:0,host:"mongo2.tianjie.group:30003"},{_id:1,host:"mongo3.tianjie.group:30003"},{_id:2,host:"mongo4.tianjie.group:30003"}]})


3.构建配置副本集(每个副本集由奇数个节点构成)

执行服务器:mongo1

3.1 释放资源包(执行上述1中步骤)

3.2 创建资源目录

cd /usr/local/server/Mongodb/Mongodb
mkdir config{1,2,3}
mkdir config{1,2,3}/data
mkdir config{1,2,3}/log


3.3 打开配置服务

cd /usr/local/server/Mongodb/Mongodb/bin
./mongod --configsvr --replSet cfgReplSet --dbpath /usr/local/server/Mongodb/Mongodb/config1/data --logpath /usr/local/server/Mongodb/Mongodb/config1/log/config1.log --port 20001 --fork
./mongod --configsvr --replSet cfgReplSet --dbpath /usr/local/server/Mongodb/Mongodb/config2/data --logpath /usr/local/server/Mongodb/Mongodb/config2/log/config2.log --port 20002 --fork
./mongod --configsvr --replSet cfgReplSet --dbpath /usr/local/server/Mongodb/Mongodb/config3/data --logpath /usr/local/server/Mongodb/Mongodb/config3/log/config3.log --port 20003 --fork


3.4 防火墙配置(打开20001,20002,20003端口)

3.5 配置副本集信息

./mongo --host mongo1.tianjie.group --port 20001
rs.initiate({_id:"cfgReplSet",configsvr:true,members:[{_id:0,host:"mongo1.tianjie.group:20001"},{_id:1,host:"mongo1.tianjie.group:20002"},{_id:2,host:"mongo1.tianjie.group:20003"}]})


4.构建路由服务集群

执行服务器:mongo0

4.1 释放资源包(执行上述1中步骤)

4.2 创建资源目录

cd /usr/local/server/Mongodb/Mongodb
mkdir mongos{1,2,3}
mkdir mongos{1,2,3}/log


4.3 打开路由服务(在路由服务组的每一个节点上执行)

cd /usr/local/server/Mongodb/Mongodb/bin
./mongos --configdb cfgReplSet/mongo1.tianjie.group:20001,mongo1.tianjie.group:20002,mongo1.tianjie.group:20003 --port 10001 --logpath /usr/local/server/Mongodb/Mongodb/mongos1/log/mongos1.log --fork
./mongos --configdb cfgReplSet/mongo1.tianjie.group:20001,mongo1.tianjie.group:20002,mongo1.tianjie.group:20003 --port 10002 --logpath /usr/local/server/Mongodb/Mongodb/mongos1/log/mongos1.log --fork
./mongos --configdb cfgReplSet/mongo1.tianjie.group:20001,mongo1.tianjie.group:20002,mongo1.tianjie.group:20003 --port 10003 --logpath /usr/local/server/Mongodb/Mongodb/mongos1/log/mongos1.log --fork


4.4 防火墙配置(打开10001,10002,10003端口)

4.5 连接路由服务组中任意节点

./mongo --host mongo0.tianjie.group --port 10001


4.6 添加分片副本集

该命令须在连接路由服务组任意节点后,在mongod shell中执行

sh.addShard("shard1ReplSet/mongo2.tianjie.group:30001,mongo3.tianjie.group:30001,mongo4.tianjie.group:30001")
sh.addShard("shard2ReplSet/mongo2.tianjie.group:30002,mongo3.tianjie.group:30002,mongo4.tianjie.group:30002")
sh.addShard("shard3ReplSet/mongo2.tianjie.group:30003,mongo3.tianjie.group:30003,mongo4.tianjie.group:30003")


5.创建分片集合

该命令须在连接路由服务组任意节点后,在mongod shell中执行

5.1 启用集合分片模式

sh.enableSharding("DZTest")


5.2 设置分片信息

sh.shardCollection("DZTest.dzusrs", { DZUsr_Id:"hashed"})


6.集群重启(无法更改IP/主机名)

6.1 启动配置副本集

cd /usr/local/server/Mongodb/Mongodb/bin
./mongod --configsvr --replSet cfgReplSet --dbpath /usr/local/server/Mongodb/Mongodb/config1/data --logpath /usr/local/server/Mongodb/Mongodb/config1/log/config1.log --port 20001 --fork
./mongod --configsvr --replSet cfgReplSet --dbpath /usr/local/server/Mongodb/Mongodb/config2/data --logpath /usr/local/server/Mongodb/Mongodb/config2/log/config2.log --port 20002 --fork
./mongod --configsvr --replSet cfgReplSet --dbpath /usr/local/server/Mongodb/Mongodb/config3/data --logpath /usr/local/server/Mongodb/Mongodb/config3/log/config3.log --port 20003 --fork


6.2 启动分片副本集(群)

cd /usr/local/server/Mongodb/Mongodb/bin
./mongod --shardsvr --replSet shard1ReplSet --port 30001 --dbpath /usr/local/server/Mongodb/Mongodb/shard1/data --logpath /usr/local/server/Mongodb/Mongodb/shard1/log/shard1.log --fork --nojournal
./mongod --shardsvr --replSet shard2ReplSet --port 30002 --dbpath /usr/local/server/Mongodb/Mongodb/shard2/data --logpath /usr/local/server/Mongodb/Mongodb/shard2/log/shard2.log --fork --nojournal
./mongod --shardsvr --replSet shard3ReplSet --port 30003 --dbpath /usr/local/server/Mongodb/Mongodb/shard3/data --logpath /usr/local/server/Mongodb/Mongodb/shard3/log/shard3.log --fork --nojournal


6.3 启动路由服务器(组)

cd /usr/local/server/Mongodb/Mongodb/bin
./mongos --configdb cfgReplSet/mongo1.tianjie.group:20001,mongo1.tianjie.group:20002,mongo1.tianjie.group:20003 --port 10001 --logpath /usr/local/server/Mongodb/Mongodb/mongos1/log/mongos1.log --fork
./mongos --configdb cfgReplSet/mongo1.tianjie.group:20001,mongo1.tianjie.group:20002,mongo1.tianjie.group:20003 --port 10002 --logpath /usr/local/server/Mongodb/Mongodb/mongos1/log/mongos1.log --fork
./mongos --configdb cfgReplSet/mongo1.tianjie.group:20001,mongo1.tianjie.group:20002,mongo1.tianjie.group:20003 --port 10003 --logpath /u
97da
sr/local/server/Mongodb/Mongodb/mongos1/log/mongos1.log --fork


7.常用指令

7.1 查看集群状态

连接路由服务组任意节点后,在mongod shell中执行

db.printShardingStatus();


7.2 查看表状态

连接路由服务组任意节点后,在mongod shell中执行

db.DZUsr.stats()


7.3 允许分片从节点读数据(不推荐)

连接分片副本集的从节点后,在mongod shell中执行

rs.slaveOk();


7.4 查看分片副本集状态

连接分片副本集的任意节点后,在mongod shell中执行

rs.status()


7.5 查看mongo进程

ps -A|grep mongo


7.6 查看mongo端口

netstat -unltp|grep mongo
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Mongodb 集群