mongodb分片集群部署

计划三台机器:192.168.0.1,192.168.0.2,192.168.0.3
本次示例 mongodb 版本为3.4

一 部署架构:

在这里插入图片描述

二 端口规划:

在这里插入图片描述

三 部署实施步骤:

1. 创建数据和日志目录
建立mongos及日志目录
mkdir -p /data/mongodb/mongos/log
建立config server 数据文件存放目录
mkdir -p /data/mongodb/config/data
建立config server 日志文件存放目录
mkdir -p /data/mongodb/config/log
建立shard1 数据文件存放目录
mkdir -p /data/mongodb/shard1/data
建立shard1 日志文件存放目录
mkdir -p /data/mongodb/shard1/log
建立shard2 数据文件存放目录
mkdir -p /data/mongodb/shard2/data
建立shard2 日志文件存放目录
mkdir -p /data/mongodb/shard2/log
建立shard3 数据文件存放目录
mkdir -p /data/mongodb/shard3/data
建立shard3 日志文件存放目录
mkdir -p /data/mongodb/shard3/log
2.config server服务
2.1 按部署规划启动相应节点(三台)
bin/mongod --configsvr --replSet cfgReplSet --dbpath /data/mongodb/config/data --port 19001 --logpath /data/mongodb/config/log/config.log --fork
2.2 连接任意一台config server
bin/mongo --host 192.168.0.1 --port 19001
2.3 执行命令创建副本集
rs.initiate({_id:"cfgReplSet",configsvr:true,members:[{_id:0,host:"192.168.0.1:19001"},{_id:1,host:"192.168.0.2:19001"},{_id:2,host:"192.168.0.3:19001"}]})
3.分片1及副本集服务
3.1按部署规划启动相应节点(三台)
bin/mongod --shardsvr --replSet shard1ReplSet --port 19002 --dbpath/data/mongodb/shard1/data --logpath /data/mongodb/shard1/log/shard1.log --fork --nojournal
3.2 连接任意一台分片1服务
bin/mongo --host 192.168.0.1 --port 19002
3.3 创建副本集并初始化
rs.initiate({_id:"shard1ReplSet",members:[{_id:0,host:"192.168.0.1:19002"},{_id:1,host:"192.168.0.2:19002"},{_id:2,host:"192.168.0.3:19002"}]})
4.同样操作shar2 shard3
bin/mongod --shardsvr --replSet shard2ReplSet --port 19003 --dbpath/data/mongodb/shard2/data --logpath /data/mongodb/shard2/log/shard2.log--fork --nojournal
bin/mongo --host 192.168.0.1 --port 19003
rs.initiate({_id:"shard2ReplSet",members:[{_id:0,host:"192.168.0.1:19003"},{_id:1,host:"192.168.0.2:19003"},{_id:2,host:"192.168.0.3:19003"}]})
bin/mongod --shardsvr --replSet shard3ReplSet --port 19004 --dbpath/data/mongodb/shard3/data --logpath /data/mongodb/shard3/log/shard3.log--fork --nojournal
bin/mongo --host 192.168.0.1 --port 19004
rs.initiate({_id:"shard3ReplSet",members:[{_id:0,host:"192.168.0.1:19004"},{_id:1,host:"192.168.0.2:19004"},{_id:2,host:"192.168.0.3:19004"}]})
5. mongos服务

启动任意一台mongos路由服务

bin/mongos --configdb cfgReplSet/192.168.0.1:19001,192.168.0.2:19001,192.168.0.3:19001 --port 19000 --logpath /data/mongodb/mongos/log/mongos.log --fork

登录路由服务客户端

bin/mongo --host 192.168.0.1 --port 19000

添加分片到集群

sh.addShard("shard1ReplSet/192.168.0.1:19002,192.168.0.2:19002,192.168.0.3:19002")
sh.addShard("shard2ReplSet/192.168.0.1:19003,192.168.0.2:19003,192.168.0.3:19003")
sh.addShard("shard3ReplSet/192.168.0.1:19004,192.168.0.2:19004,192.168.0.3:19004")
6.测试

连接路由登录mongos:

sh.enableSharding("test") #建库
sh.shardCollection("test.Log", { id: "hashed"}) #建表并指定分片主键
use test #切库
for(var i = 1; i <= 100000; i++){db.Log.save({id:i,"message":"message"+i});} #循环插入10万条数据
db.Log.status() #查询对应表的状态
7 遇到错误

安装MongoDB成功,启动的时候提示找不到共享库文件libcrypto.so.10
https://centos.pkgs.org/8/centos-appstream-x86_64/compat-openssl10-1.0.2o-3.el8.x86_64.rpm.html

rpm  -i compat-openssl10-1.0.2o-3.el8.x86_64.rpm
8 开启验证

开启验证之前需要先建账号,以防无法连接上 admin下

use admin 
db.createUser({user:"账号",  pwd:"密码",  roles:[{role:"root",db:"admin"}]}) 

创建验证文档

openssl rand -base64 756 > /data/mongodb/keyfile/KeyFile.file
chmod 400 /data/mongodb/keyfile/KeyFile.file

启动命令添加验证

--keyFile /data/mongodb/keyfile/KeyFile.file

启动时添加内存分配

--wiredTigerCacheSizeGB 8 

有验证并分配内存启动 启动前需要全部结束掉

bin/mongod --keyFile /data/mongodb/keyfile/KeyFile.file  --configsvr --replSet cfgReplSet --dbpath /data/mongodb/config/data --port 19001 --logpath /data/mongodb/config/log/config.log --fork
bin/mongod --keyFile /data/mongodb/keyfile/KeyFile.file  --wiredTigerCacheSizeGB 8  --shardsvr --replSet shard1ReplSet --port 19002 --dbpath /data/mongodb/shard1/data --logpath /data/mongodb/shard1/log/shard1.log --fork --nojournal
bin/mongod --keyFile /data/mongodb/keyfile/KeyFile.file  --wiredTigerCacheSizeGB 8  --shardsvr --replSet shard2ReplSet --port 19003 --dbpath /data/mongodb/shard2/data --logpath /data/mongodb/shard2/log/shard2.log --fork --nojournal
bin/mongod --keyFile /data/mongodb/keyfile/KeyFile.file  --wiredTigerCacheSizeGB 8  --shardsvr --replSet shard3ReplSet --port 19004 --dbpath /data/mongodb/shard3/data --logpath /data/mongodb/shard3/log/shard3.log --fork --nojournal
bin/mongos --keyFile /data/mongodb/keyfile/KeyFile.file  --configdb cfgReplSet/192.168.0.2:19001,192.168.0.3:19001,192.168.0.1:19001 --port 19000 --logpath /data/mongodb/mongos/log/mongos.log --fork
9 有验证登录

登录

use admin
db.auth("账号","密码")
10 结束
pkill -9  mongod
pkill -9  mongos
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值