环境准备
mongodb 5.0之后(包括5.0) 开始使用需要使用 AVX 指令集,需要服务器配置支持AVX指令集
注意设置服务器open files,防止出现报错**“error”:“Too many open files”}**
查看配置当前open files信息
ulimit -a
修改
sudo su
ulimit -n 102400
# 临时修改(仅当前窗口有效)
以下全局有效(需重启)
vim /etc/security/limits.conf
# 添加以下配置
* soft nofile 102400
* hard nofile 102400
例如:
# - chroot - change root to directory (Debian-specific)
#
#<domain> <type> <item> <value>
#
#* soft core 0
#root hard core 100000
#* hard rss 10000
#@student hard nproc 20
#@faculty soft nproc 20
#@faculty hard nproc 50
#ftp hard nproc 0
#ftp - chroot /ftp
#@student - maxlogins 4
* soft nofile 102400
* hard nofile 102400
# End of file
最小搭建一个分片集群,需要至少10台设备,
两个分片数据存储节点共用同一个仲裁服务器
例如:
192.168.2.111:27031 (分片1-主)
192.168.2.112:27031 (分片1-副)
192.168.2.117:27031(分片1-仲裁)
192.168.2.113:27131 (分片2-主)
192.168.2.114:27131 (分片2-副)
192.168.2.117:27131 (分片2-裁决)
192.168.2.115:27231 (配置服务-主)
192.168.2.116:27231 (配置服务-副)
192.168.2.120:27231 (配置服务-副) (配置服务不能有裁决节点)
192.168.2.18:27017 (mongodb路由1)
192.168.2.19:27017 (mongodb路由2)
如果需要增加集群认证
参考文章mongodb 分片集群认证
重点为服务间认证
security:
#KeyFile鉴权文件
keyFile: /use/local/mongodb/configs/mongo.keyfile
#开启认证方式运行,路由服务不需要改配置
authorization: enabled
和添加登录角色信息
use admin
db.createUser({user:"myroot",pwd:"123456",roles:["root"]})
分片集群事务
分片事务中,如果参与分片的节点包含裁决节点,则写入操作跨越多个分片的事务将出现错误并中止
集群搭建
所有配置的目录(path|dbPath)都必须提前创建好目录
提示:
- 该案例mongodb所在目录为/usr/local/mongodb
- 配置文件目录为/usr/local/mongodb/configs
- 日志目录为/usr/local/mongodb/logs
- 数据目录为/usr/local/mongodb/data/db
1.搭建分片存储副本集
分片存储存储集1配置文件
systemLog:
#MongoDB发送所有日志输出的目标指定为文件
destination: file
#mongod或mongos应向其发送所有诊断日志记录信息的日志文件的路径
path: "/usr/local/mongodb/logs/mongod.log"
#当mongos或mongod实例重新启动时,mongos或mongod会将新条目附加到现有日志文件的末尾。
logAppend: true
storage:
#mongod实例存储其数据的目录。storage.dbPath设置仅适用于mongod。
dbPath: "/usr/local/mongodb/data/db"
# wiredTiger:
# # wiredTiger 缓存工作集(working set)数据的内存大小,单位: