MongoDB 4.4 扩展为副本集(qbit)
前言
- 有一台单实例 MongoDB 服务器已经运行半年了,需要将其扩展为副本集
- 3 台服务器的操作系统均为 Ubuntu 20.04
- 3 台服务器的 MongoDB 版本均为 4.4
- 扩展示意图
操作步骤
- 备份
mongo0
上的数据 修改配置文件
/etc/mongod.conf
,官方文档: https://docs.mongodb.com/v4.4...# 增加或修改 security: authorization: enabled keyFile: /data/mongo/security/rs0.key replication: replSetName: rs0
创建目录,并修改所有者
sudo mkdir /data/mongo/security sudo chown -R mongodb:mongodb /data/mongo/security/
生成密钥文件,分发到各机器。官方文档:https://docs.mongodb.com/v4.4...
openssl rand -base64 756 > /data/mongo/security/rs0.key sudo chown mongodb:mongodb /data/mongo/security/rs0.key sudo chmod 400 /data/mongo/security/rs0.key
重启 MongoDB 服务
sudo systemctl restart mongod.service
配置
/etc/hosts
文件# 添加或修改 192.168.31.20 mongo0 192.168.31.34 mongo1 192.168.31.35 mongo2
登录
mongo0
初始化副本集节点mongo mongodb://user:password@192.168.31.20:27017/?authSource=admin
rs.initiate({ _id: "rs0", members: [{ _id: 0, priority: 9, // 0-1000,值越大优先级约高 host: "mongo0:27017" }, { _id: 1, priority: 7, host: "mongo1:27017" }, { _id: 2, priority: 7, host: "mongo2:27017" }] })
查看副本集状态
rs0:PRIMARY> rs.status()
查看从节点数据同步状态
rs0:PRIMARY> rs.printSecondaryReplicationInfo() source: mongo1:27017 syncedTo: Thu Jan 01 1970 08:00:00 GMT+0800 (CST) 1615602247 secs (448778.4 hrs) behind the primary source: mongo2:27017 syncedTo: Thu Jan 01 1970 08:00:00 GMT+0800 (CST) 1615602247 secs (448778.4 hrs) behind the primary
修改优先级
rs0:PRIMARY> conf = rs.conf() rs0:PRIMARY> conf.members[1].priority = 11 rs0:PRIMARY> conf.members[2].priority = 11 rs0:PRIMARY> rs.reconfig(conf)
- 如果数据量大,同步时间过长,可以考虑拷贝文件的 resync 方式来进行全量同步(initial sync)。
MongoDB 副本集的 10 种状态
官方文档:https://docs.mongodb.com/v4.4...
STARTUP PRIMARY SECONDARY RECOVERING STARTUP2 UNKNOWN ARBITER DOWN ROLLBACK REMOVED
本文出自 qbit snap
qbit snap
开箱即用,拿走不谢。
262 声望
275 粉丝
推荐阅读
Windows 下多版本 Python 共享 Poetry(qbit)
前言技术栈 {代码...} Python 3.8 安装目录 {代码...} Python 3.11 安装目录 {代码...} 安装 poetry设置将以下路径加入 path 环境变量 {代码...} 复制文件 {代码...} 设置 pip 国内镜像源 {代码...} 升级 pip {代...
qbit阅读 87
(学习到实践)七、mongodb测试,php+nginx负载均衡的部署
从测试容器中匹配搜索得到 mongod.conf.orig,设置可以启动,网上查找配置项反不能启动,原因是配置是yaml格式!好像听说过。百度查询得到:官方配置说明,网站卡得出奇。
沧浪水阅读 2.7k
ElasticSearch 必知必会 - 进阶篇
京东物流:康睿 姚再毅 李振 刘斌 王北永说明:以下全部均基于 ElasticSearch 8.1 版本一.跨集群检索 - ccr官网文档地址: [链接]跨集群检索的背景和意义跨集群检索定义跨集群检索环境搭建官网文档地址: [链接]...
京东云开发者赞 2阅读 516
centos7安装mongodb
准备工作:1、在root目录下创建文件夹software {代码...} 2、进入software文件 {代码...} 以下是mongodb的具体安装步骤和文件配置1. 下载mongodb3.6.3版本 {代码...} 2. 解压文件 {代码...} 3. 把解压后文件移动...
sourcenode阅读 2.2k
Mac环境下安装MongoDB数据库
一、下载安装1.1 下载MongoDB首先,从MongoDB官网下载自己想要使用的版本。解压缩下载的压缩包重命名为mongodb,将mongodb文件夹复制到/usr/local目录下。当然,除了上面的安装方式外,我们还可以使用Mac OSX的br...
xiangzhihong赞 1阅读 403
bug solved | zsh: command not found: mongo (Mac M1/M2 )
退回MongoDB 5 解决了,,,后来发现把5安装包的/usr/local/mongodb/bin目录下的mongo文件复制到6中同样也能解决。所以最终方法是:把5安装包的/usr/local/mongodb/bin目录下的mongo文件复制到6中
LiberHome赞 2阅读 639评论 1
Kubernetes使用KaiwuDB简介
容器是打包和运行应用程序的好方式。在生产环境中,我们需要管理运行应用程序的容器,并确保不会停机。如果一个容器发生故障,则需要启动另一个容器。如果系统处理此行为,会不会更便捷?这就是 Kubernetes(后文...
KaiwuDB阅读 876
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。