mongodb一个服务器部署多个节点
前情提要
真实部署环境是机房环境,不能携带手机,所以需要进行提前演练,我使用的docker镜像的方式进行构建。docker的环境搭建详见:两台服务器搭建三个节点-CSDN博客
mongodb的安装
加载指定的依赖文件
# 删除容器
docker stop demo-container
docker rm demo-container# 使用镜像重新启动容器
docker run -itd --name demo-container --privileged --volume /sys/fs/cgroup:/sys/fs/cgroup:ro kylin-with-systemd:v10-sp3 /usr/lib/systemd/systemd
# copymongodb的安装包
docker cp mongodb-4.4.6-1.ky10.aarch64.rpm demo-container:/home
docker cp mongodb-svc-1.0-1.ky10.noarch.rpm demo-container:/home
docker cp init-mongo.js demo-container:/home
# 进入容器
docker exec -it demo-container bash
rpm包的安装
cd /home
rpm -ivh mongodb-4.4.6-1.ky10.aarch64.rpm
# 这个是自己定义的启动文件及配置文件,没有也没关系,不影响使用
rpm -ivh mongodb-svc-1.0-1.ky10.noarch.rpm
配置文件的配置
vim /opt/mongodb-4.4.6/mongodb3.conf
systemLog:
destination: file
# 指定第二个实例的日志路径
path: /var/log/mongodb3/mongod.log
logAppend: true
storage:
# 指定第二个实例的数据目录
dbPath: /var/lib/mongodb3
journal:
enabled: true
net:
# 指定第二个实例的端口
port: 27018
processManagement:
timeZoneInfo: /usr/share/zoneinfo
# 指定第二个实例的PID文件路径
pidFilePath: /var/run/mongodb3/mongod.pid
启动文件的配置
vim /usr/lib/systemd/system/mongodb3.service
[Unit]
Description=MongoDB3 Database Server
Documentation=https://docs.mongodb.org/manual
After=network.target[Service]
Environment="OPTIONS=-f /opt/mongodb-4.4.6/mongodb3.conf --replSet rs0"
EnvironmentFile=-/opt/mongodb-4.4.6/bin/mongod
ExecStart=/opt/mongodb-4.4.6/bin/mongod $OPTIONS
ExecStartPre=/usr/bin/mkdir -p /var/run/mongodb3
ExecStartPre=/usr/bin/chmod 0755 /var/run/mongodb3
ExecStartPre=/usr/bin/mkdir -p /var/lib/mongodb3
ExecStartPre=/usr/bin/chmod 0755 /var/lib/mongodb3
ExecStartPre=/usr/bin/mkdir -p /var/log/mongodb3
ExecStartPre=/usr/bin/chmod 0755 /var/log/mongodb3
PermissionsStartOnly=true
PIDFile=/var/run/mongodb3/mongod.pid
Type=simple
LimitFSIZE=infinity
LimitCPU=infinity
LimitAS=infinity
LimitNOFILE=64000
LimitNPROC=64000
LimitMEMLOCK=infinity
TasksMax=infinity
TasksAccounting=false[Install]
WantedBy=multi-user.target
启动命令
# 启动服务
sudo systemctl start mongodb3.service
# 检测服务启动情况
sudo systemctl status mongodb3.service# 更改配置重启节点
vim /usr/lib/systemd/system/mongodb3.service
systemctl daemon-reload
sudo systemctl restart mongodb3.service# 停止节点
sudo systemctl stop mongodb3.service
# 设置开机自启动
sudo systemctl enable mongodb3.service
集群组建
# 组建集群至少三个节点,将上面的额mongodb3 更改为 mongodb1/mongodb2. 分别更改绑定的端口号。
cd /opt/mongo-4.4.6/bin
# 进入mongodb
./mongo 127.0.0.1:27018/admin
##切换数据库
use admin
##初始化复制集
> rs.initiate({_id:"rs0", members : [{_id:0,host:"127.0.0.1:27018"},{_id:1,host:"127.0.0.1:27019"},{_id:2,host:"127.0.0.1:27020"}]})##查看复制集配置
> rs.conf()
##查看复制集状态
> rs.status();如果因为没有设置replSet导致组建集群失败,启动脚本按照上述样例设置replSet即可。