MongoDB 副本集搭建教程(Replica Set):主从同步实战详解


猫拾柒
原创
发布时间: 2025-12-13 15:07:24 | 阅读数 0收藏数 0评论数 0
封面
本文以实际部署为例,介绍 MongoDB 副本集(Replica Set)的基本搭建流程,重点讲解副本集相关配置项的作用及主从同步的初始化方式。通过对 mongod.conf 中关键参数的说明,帮助读者理解 MongoDB 副本集的基础配置方法,适合希望快速完成 MongoDB 主从同步部署的开发者和运维人员。
1

下载mongodb

https://www.doitwiki.com/article/details/179710434444288 这篇文章写的不错 具体教程可以看这篇

安装包给大家放附件里面了,大家直接解压即可


放到一个目录下 解压出来三份 分别是27017 27018 27019 这个对应着后面我们更改的他们的端口号


进入到27017目录下 创建两个文件夹 data/db log 用于存放数据 日志 进入到27017目录下输入以下命令即可,其他两个端口也一样 如图345

mkdir -p ./log & mkdir -p ./data/db


TGZ
mongodb-macos-arm64-8.0.16.tgz
76.47MB
2

配置文件

  1. 首先查询ip地址 我的是ifconfig命令 也有的是ipaddr之类的 大家自行查询 如图1所示
  2. 如何输入命令 vim ./conf/mongod.conf
  3. 往文件里填写以下内容 大家记得修改地址和ip 端口 其它节点也是一样的道理修改配置文件即可 如图234

如果你使用的 MongoDB 的版本大于等于 6.1 那就删除 journal: enabled: true

# =========================
# MongoDB 系统日志配置
# =========================
systemLog:
# 日志输出方式:file 表示写入文件
destination: file

# 是否以追加方式写日志(true 不会覆盖原有日志)
logAppend: true

# MongoDB 日志文件存放路径
path: /usr/local/app/mongodb/replica_sets/mongodb-27017/log/mongodb.log


# =========================
# MongoDB 存储配置
# =========================
storage:
journal:
# 是否开启 Journal(建议开启,保证数据安全)
enabled: true

# 数据文件存放目录
dbPath: /usr/local/app/mongodb/replica_sets/mongodb-27017/data/db

# 是否为每个数据库单独创建目录
directoryPerDB: true

# WiredTiger 存储引擎配置(MongoDB 默认引擎)
wiredTiger:
engineConfig:
# WiredTiger 使用的缓存大小(单位:GB)
# 一般建议为物理内存的 50% 左右
cacheSizeGB: 1

# 是否将索引单独存放到 indexes 目录中
directoryForIndexes: true

collectionConfig:
# 集合数据块压缩算法(zlib 压缩率高,CPU 开销稍大)
blockCompressor: zlib

indexConfig:
# 是否启用索引前缀压缩,减少索引占用空间
prefixCompression: true


# =========================
# MongoDB 进程管理配置
# =========================
processManagement:
# 是否以守护进程方式运行(后台运行)
fork: true

# mongod 进程 PID 文件路径
pidFilePath: /usr/local/app/mongodb/replica_sets/mongodb-27017/mongod.pid


# =========================
# MongoDB 网络配置
# =========================
net:
# MongoDB 监听端口
port: 27017

# 允许连接 MongoDB 的 IP 地址
# 127.0.0.1 本机访问
# 192.168.1.131 内网访问你的内外本机ip
bindIp: 127.0.0.1,192.168.1.131


# =========================
# MongoDB 副本集配置
# =========================
replication:
# 副本集名称(所有节点必须一致)
replSetName: rsmg
3

启动mongodb

去每个目录下输入下面这个命令依次启动 如图123

./bin/mongod -f ./conf/mongod.conf
4

初始化主节点

  1. 用mongosh工具连接27017 如图1所示
  2. 输入 rs.initiate() 进行初始化 如图2所示 27017就变成主节点了
5

添加副本节点

还是在27017主节点的里面

输入命令rs.add("192.168.1.131:27018") 如图所示 ok为1就代表添加成功了

6

添加仲裁节点

  1. 输入以下这两个命令那个都可以 进行设置仲裁节点 他有可能会报错 如图1所示
rs.add("192.168.1.131:27019",true) 或者 rs.addArb("192.168.1.131:27019")


以下操作将全局写入关注设置 然后在输入上面的命令 即可解决报错 如图2所示

db.adminCommand({
"setDefaultRWConcern" : 1,
"defaultWriteConcern" : {
"w" : 2
}
})


7

查看配置

输入命令 rs.config() 查看配置 如果是三个节点就正常了 如图所示

8

读写数据测试

在主节点添加一条数据 命令如下

db.user.insertOne({id: "1", username: "test", nickname: "测试", age:18,timestamp: new Date()})


r然后使用mongosh 连接副本节点看看是否有数据 如图2图3所示副本节点有数据就代表成功了

mongosh --port=27018

副本节点只有读的权限没有写的权限

如果大家没有读取权限就说明副本节点没有承认自己是从节点输入以下命令即可

rs. slaveok()


阅读记录0
点赞0
收藏0
禁止 本文未经作者允许授权,禁止转载
猜你喜欢
评论/提问(已发布 0 条)
评论 评论
收藏 收藏
分享 分享
pdf下载 下载
pdf下载 举报