目录
一、搭建复制集
创建一个三个节点 node17 、node18、node19
创建配置文件 mongodb.conf
启动
操作主库写数据、读数据
操作从库读数据
可以通过执行 rs.secondaryOk() 开启读权限
二、验证主库down掉,从库是否升为主库
原理
一、搭建复制集
单机部署参考上一篇
云服务器安装MongoDB-资源包安装-CSDN博客文章浏览阅读268次,点赞2次,收藏3次。本文详细介绍了在Linux云服务器上通过离线资源包方式安装MongoDB的完整流程,包括创建目录、上传解压安装包、配置环境变量、编写mongodb.conf配置文件、创建数据与日志目录、以配置文件方式启动mongod服务,以及本地和Navicat客户端连接验证。适用于无外网或受限网络环境下的MongoDB部署。https://blog.csdn.net/guo13313/article/details/168133600?sharetype=blogdetail&sharerId=168133600&sharerefer=PC&sharesource=guo13313&spm=1011.2480.3001.8118
复制集部署架构图
#
创建复制集文件夹,
将mongodb-linux-x86_64-rhel70-4.4.8.tgz文件解压到新目录中(单机版已经配置了mongo的环境变量,此处可忽略)mkdir /usr/local/mongodb_cluster
创建一个三个节点 node17 、node18、node19
创建配置文件 mongodb.conf
新增内容如下
# 注意 yaml格式不要tab
systemLog: destination: file path: /usr/local/mongodb_cluster/logs/node17/mongod.log logAppend: true storage: dbPath: /usr/local/mongodb_cluster/data/node17/db net: bindIp: 0.0.0.0 port: 28017 replication: replSetName: rs0 processManagement: fork: true
修改完配置文件后,从node17复制另两个文件夹 node18,node19
修改对应端口&路径
vim 后 大A 直接到最后一行
创建配置文件中对应的目录&日志文件
mkdir -p /usr/local/mongodb_cluster/logs/node17/ mkdir -p /usr/local/mongodb_cluster/data/node17/db touch /usr/local/mongodb_cluster/logs/node17/mongod.log mkdir -p /usr/local/mongodb_cluster/logs/node18/ mkdir -p /usr/local/mongodb_cluster/data/node18/db touch /usr/local/mongodb_cluster/logs/node18/mongod.log mkdir -p /usr/local/mongodb_cluster/logs/node19/ mkdir -p /usr/local/mongodb_cluster/data/node19/db touch /usr/local/mongodb_cluster/logs/node19/mongod.log
启动
mongod -f /usr/local/mongodb_cluster/node17/mongodb.conf mongod -f /usr/local/mongodb_cluster/node18/mongodb.conf mongod -f /usr/local/mongodb_cluster/node19/mongodb.conf
查看日志
# 进入任何一个mongo中,输入命令,查看复制集状态
mongo --port 28017
rs.status();
看到 replset复制集没有配置,接下来需要初始化
命令如下
rs.initiate({ _id:"rs0", members:[{ _id:0, host:"localhost:28017" },{ _id:1, host:"localhost:28018" },{ _id:2, host:"localhost:28019" }] })
再次查看 rs.status();
操作主库写数据、读数据
操作从库读数据
mongo --port 28018
直接失败
# 默认情况下非主节点不允许读数据,只能备份数据
可以通过执行rs.secondaryOk()开启读权限
二、验证主库down掉,从库是否升为主库
ps -ef|grep mongo
查看 28018
mongo --port 28018
rs.status()
原理
参考下一篇
mongodb集群模式的原理-CSDN博客mongo集群部署一起结合着方便理解云服务器mongo搭建复制集-CSDN博客本文详细介绍了在云服务器上通过离线资源包方式安装MongoDB的完整流程,包括创建目录、上传解压安装包、配置环境变量、编写mongodb.conf启动配置文件、创建数据与日志目录、以配置文件方式启动mongod服务,以及使用mongo客户端或Navicat连接验证。创建复制集文件夹,将mongodb-linux-x86_64-rhel70-4.4.8.tgz文件解压到新目录中。https://blog.csdn.net/guo13313/article/details/168651477?spm=1001.2014.3001.5501