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 声望
276 粉丝
推荐阅读
Postman 发送 RSA 签名请求(qbit)
前言Postman 版本 10.13.6qbit 将 RSAForPostman 压缩拷贝到了码云便于国内访问Postman 脚本示例Pre-request Script {代码...} Postman 内置库官方文档:[链接] {代码...} 本文出自 qbit snap
qbit阅读 138
Mongodb-关联表查询
之前使用SQL语法来查询oracle、sqlserver、mysql表之间的关联,但是到mongodb之后完全无从下手,写法完全不一样,于是到网上查询mongodb关联表查询的写法,于是参考代码自己试着写了下,但是发现有好多问题,比如...
Awbeci赞 2阅读 4.6k评论 1
Redis集群介绍及测试思路
Redis集群一般有四种方式,分别为:主从复制、哨兵模式、Cluster以及各大厂的集群方案。在3.0版本之前只支持单实例模式,3.0之后支持了集群方式。在3.0之前各大厂为了解决单实例Redis的存储瓶颈问题各自推出了自...
京东云开发者赞 2阅读 477
Redis缓存高可用集群
在redis3.0以前的版本要实现集群一般是借助哨兵sentinel工具来监控master节点的状态,如果master节点异常,则会做主从切换,将某一台slave作为master,哨兵的配置略微复杂,并且性能和高可用性等各方面表现一般。
京东云开发者赞 2阅读 351
(学习到实践)七、mongodb测试,php+nginx负载均衡的部署
从测试容器中匹配搜索得到 mongod.conf.orig,设置可以启动,网上查找配置项反不能启动,原因是配置是yaml格式!好像听说过。百度查询得到:官方配置说明,网站卡得出奇。
沧浪水阅读 2.9k
MongoDB安装、启动、关闭、授权
安装参考[链接]配置文件 {代码...} 启动MongoDB {代码...} MongoDB的关闭方式kill进程模式(不建议使用) {代码...} 自带模式 {代码...} 注意: mongod进程收到SIGINT或SIGTERM信号,会做一些处理 切忌使用kill -9...
YYGP阅读 1.3k
mongoShake基于go实践应用
通过阿里云自研的MongoShake开源工具,您可以实现MongoDB数据库间的数据同步,该功能可用于数据分析、灾备和多活等业务场景。本文以云数据库MongoDB实例间的数据实时同步为例介绍配置流程。
金闽阅读 1k
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。