前情提要
真实部署环境是机房环境,不能携带手机,所以需要进行提前演练,我使用的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即可。