MongoDB 副本集用一致性快照方法添加从节点

副本集信息:

192.168.1.1 PRIMARY
192.168.1.2 SECONDARY
192.168.1.3 SECONDARY

192.168.1.4 SECONDARY(新增)

一、步骤:

1.主或从节点上进行一致性快照备份
2.从节点上进行一致性快照恢复,仅仅对数据部分进行恢复,暂时不要对oplog进行恢复
3.初始化oplog.rs集合,并恢复oplog记录
4.初始化local数据库的其他两个集合db.replset.election,db.system.replset
5.修改数据库配置并重启数据库(这一步操作前实例不开启认证模式、复制集的配置)
6.用rs.add("HOST_NAME:PORT")命令将从节点添加进集群
7.用rs.status()观察同步状态并校验数据的完整和一致性

二、备份:

主节点或者其他两个从节点上备份数据:

mongodump -uadmin -padmin --host 192.168.1.1 --authenticationDatabase=admin --port=27017 --oplog -o /data/mongo/backup

将备份传输到192.168.1.4进行恢复:

scp -r /data/mongo/backup mongo@192.168.1.4/data/mongo

三、第三个从节点以单实例方式启动:

复制代码
备注:需要注释掉以下副本集参数
# auth = true

#replSet = repl_mongo

#keyFile = /data/mongo/27017/replSet.key

启动:
mongod -f /data/mongo/27017/conf/mongodb.conf

在192.168.1.4上进行一致性快照恢复:
mongorestore --oplogReplay --port=27017 /data/mongo/backup
复制代码

四、创建oplog.rs集合并初始化大小:

>use local

>db.createCollection("oplog.rs",{"capped":true,"size":100000000})

五、查询主节点replset.election集合的数据并将这些数据存储到192.168.1.4节点

在PRIMARY上的操作:若没权限,添加权限:db.grantRolesToUser( "admin", [{ role: "read", db: "local"}])
> use local

> db.replset.election.find()
{ "_id" : ObjectId("60ab1a31c16378e2712acaf4"), "term" : NumberLong(1), "candidateIndex" : NumberLong(0) }

在SECONDARY上保存PRIMARY上replset.election集合的数据内容:

> use local

> db.replset.election.save({ "_id" : ObjectId("60ab1a31c16378e2712acaf4"), "term" : NumberLong(1), "candidateIndex" : NumberLong(0) })

六、关闭第三个从节点,以副本集方式启动mongodb:

复制代码
修改第三个从节点配置,注释去掉:

auth = true

replSet = repl_mongo

keyFile = /data/mongo/27017/replSet.key

以副本集方式启动mongodb:
mongod -f  /data/mongo/27017/conf/mongodb.conf
复制代码

七、在PRIMARY上添加SECONDARY节点:若权限不够:db.grantRolesToUser ( "admin", [ { role: "__system", db: "admin" } ] )

> rs.add("192.168.1.4:27017")

 

posted @   __Yoon  阅读(347)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示