MongoDB 分片集群搭建

MongoDB 分片集群搭建

MongoDB分片集群介绍

集群规划

MongoDB职责服务器端口数据目录配置文件目录日志目录
路由节点mongodb127017/home/mongo/27017/data/home/mongo/27017/config/home/mongo/27017/logs/mongod.log
配置节点1mongodb227017/home/mongo/27017/data/home/mongo/27017/config/home/mongo/27017/logs/mongod.log
配置节点2mongodb327017/home/mongo/27017/data/home/mongo/27017/config/home/mongo/27017/logs/mongod.log
配置节点3mongodb427017/home/mongo/27017/data/home/mongo/27017/config/home/mongo/27017/logs/mongod.log
分片1-节点1mongodb227018/home/mongo/27018/data/home/mongo/27018/config/home/mongo/27018/logs/mongod.log
分片1-节点2mongodb327018/home/mongo/27018/data/home/mongo/27018/config/home/mongo/27018/logs/mongod.log
分片1-节点3mongodb427018/home/mongo/27018/data/home/mongo/27018/config/home/mongo/27018/logs/mongod.log
分片2-节点1mongodb227019/home/mongo/27019/data/home/mongo/27019/config/home/mongo/27019/logs/mongod.log
分片2-节点2mongodb327019/home/mongo/27019/data/home/mongo/27019/config/home/mongo/27019/logs/mongod.log
分片2-节点3mongodb427019/home/mongo/27019/data/home/mongo/27019/config/home/mongo/27019/logs/mongod.log

创建mongo用户

useradd mongo
passwd mongo
1759840027

安装(使用root用户)

# 解压安装包
tar -zxvf mongodb-linux-x86_64-rhel80-6.0.6.tgz
# 将mongo路径软连接到 /usr/bin 路径(root用户)
ln -s /home/mongo/mongodb-linux-x86_64-rhel80-6.0.6/bin/*  /usr/bin/
# 安装mongo工具
tar -zxvf mongodb-database-tools-rhel80-x86_64-100.7.0.tgz
ln -s /home/mongo/mongodb-database-tools-rhel80-x86_64-100.7.0/bin/*  /usr/bin/

# 安装mongosh
rpm -ivh  mongodb-mongosh-shared-openssl11-1.9.0.x86_64.rpm

关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

分片1安装(副本集)

安装节点(执行主机:mongodb-2、mongodb-3、mongodb-4)

mkdir -p /home/mongo/27018/data /home/mongo/27018/config /home/mongo/27018/logs
vi /home/mongo/27018/config/mongod.conf
systemLog:
  destination: file
  path: /home/mongo/27018/logs/mongod.log
  logAppend: false
storage:
  dbPath: /home/mongo/27018/data/
  engine: wiredTiger
  wiredTiger:
    engineConfig:
      cacheSizeGB: 1
  journal:
    enabled: true
net:
  port: 27021
  bindIp: 0.0.0.0
  maxIncomingConnections: 65535
processManagement:
  fork: true
  pidFilePath: /home/mongo/27018/mongod.pid
replication:
  oplogSizeMB: 50
  replSetName: shard1
sharding:
  clusterRole: shardsvr  

启动节点

mongod --config /home/mongo/27018/config/mongod.conf

初始化分片1

## 可以连接副本集中的任意节点
mongosh --port=27018 
## 切换到admin数据库
> use admin
## 初始化集群节点
> rs.initiate({
	_id: "shard1",
	members: [
	{_id:0,host:"mongodb-2:27018"},
	{_id:1,host:"mongodb-3:27018"},
	{_id:2,host:"mongodb-4:27018",arbiterOnly: true},
	]
})
## 查看集群状态
> rs.status()

分片2安装(副本集)

安装节点(执行主机:mongodb-2、mongodb-3、mongodb-4)

mkdir -p /home/mongo/27019/config  /home/mongo/27019/data /home/mongo/27019/logs
vi /home/mongo/27019/config/mongod.conf
systemLog:
  destination: file
  path: /home/mongo/27019/logs/mongod.log
  logAppend: false
storage:
  dbPath: /home/mongo/27019/data/
  engine: wiredTiger
  wiredTiger:
    engineConfig:
      cacheSizeGB: 1
  journal:
    enabled: true
net:
  port: 27019
  bindIp: 0.0.0.0
  maxIncomingConnections: 65535
processManagement:
  fork: true
  pidFilePath: /home/mongo/27019/mongod.pid
replication:
  oplogSizeMB: 50
  replSetName: shard2
sharding:
  clusterRole: shardsvr  

启动节点

mongod --config /home/mongo/27019/config/mongod.conf

初始化分片2

## 可以连接副本集中的任意节点
mongosh --port=27019 
## 切换到admin数据库
> use admin
## 初始化集群节点
> rs.initiate({
	_id: "shard2",
	members: [
	{_id:0,host:"mongodb-2:27019"},
	{_id:1,host:"mongodb-3:27019"},
	{_id:2,host:"mongodb-4:27019",arbiterOnly: true},
	]
})
## 查看集群状态
> rs.status()

配置集群安装(副本集)

安装节点(执行主机:mongodb-2、mongodb-3、mongodb-4)

mkdir -p /home/mongo/27017/config  /home/mongo/27017/data /home/mongo/27017/logs
vi /home/mongo/27017/config/mongod.conf
systemLog:
  destination: file
  path: /home/mongo/27017/logs/mongod.log
  logAppend: false
storage:
  dbPath: /home/mongo/27017/data/
  engine: wiredTiger
  wiredTiger:
    engineConfig:
      cacheSizeGB: 1
  journal:
    enabled: true
net:
  port: 27017
  bindIp: 0.0.0.0
  maxIncomingConnections: 65535
processManagement:
  fork: true
  pidFilePath: /home/mongo/27017/mongod.pid
replication:
  oplogSizeMB: 50
  replSetName: config
sharding:
  clusterRole: configsvr  

启动节点

mongod --config /home/mongo/27017/config/mongod.conf

初始化分片

## 可以连接副本集中的任意节点
mongosh --port=27017
## 切换到admin数据库
> use admin
## 初始化集群节点
> rs.initiate({
	_id: "config",
	members: [
	{_id:0,host:"mongodb-2:27017"},
	{_id:1,host:"mongodb-3:27017"},
	{_id:2,host:"mongodb-4:27017"},
	]
})
## 查看集群状态
> rs.status()

路由节点安装(执行主机:mongodb-1)

mkdir -p /home/mongo/27017/config  /home/mongo/27017/data /home/mongo/27017/logs
vi /home/mongo/27017/config/mongod.conf
systemLog:
  destination: file
  path: /home/mongo/27017/logs/mongod.log
  logAppend: false
net:
  port: 27017
  bindIp: 0.0.0.0
  maxIncomingConnections: 65535
processManagement:
  fork: true
  pidFilePath: /home/mongo/27017/mongod.pid
sharding:
  # 设置配置集群地址
  configDB: config/mongodb-2:27017,mongodb-3:27017,mongodb-4:27017

启动节点

mongos --config /home/mongo/27017/config/mongod.conf

添加分片

# 连接路由节点
mongosh --port=27017

# 添加分片
> sh.addShard("shard1/mongodb-2:27018")
> sh.addShard("shard2/mongodb-2:27019")

初始化用户

mongosh --port=27017 
 
> use admin  
> db.createUser({
  user: 'admin',  // 用户名
  pwd: '1759840027',  // 密码
  roles:[{
    role: 'root',  // 角色
    db: 'admin'  // 数据库
  }]
})

> db.createUser({
  user: 'mongo',  // 用户名
  pwd: '1759840027',  // 密码
  roles:[{
    role: 'root',  // 角色
    db: 'admin'  // 数据库
  }]
})

MongoDB 启动停止命令汇总

## 启动命令
mongos --config /home/mongo/27017/config/mongod.conf

mongod --config /home/mongo/27017/config/mongod.conf


## 停止命令

mongos --shutdown --config /home/mongo/27017/config/mongod.conf 

MongoDB Compass 连接

mongodb://192.168.25.130:27017/?readPreference=primary&appname=MongoDB%20Compass&directConnection=true&ssl=false
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值