
linux搭建mongodb数据库副本集
发布日期:2025-04-09 08:35:21
浏览次数:12
分类:精选文章
本文共 2260 字,大约阅读时间需要 7 分钟。
MongoDB 是一个基于分布式文件存储的高性能数据库,由 C++ 语言编写,旨在为 Web 应用提供灵活、高扩展的数据存储解决方案。作为介于关系数据库和非关系数据库之间的产品,MongoDB 在非关系数据库中功能最为丰富,最像关系数据库。
副本集原理
MongoDB 的副本集机制通过多个节点协同工作,确保数据的高可用性和可扩展性。副本集由主节点(Primary)、备用节点(Secondary)和仲裁节点(Arbiter)组成。
- Primary(主节点):副本集中唯一一个提供读写服务的节点。如果主节点故障,副本集会自动选出备用节点作为新的主节点。
- Secondary(备用节点):多个备用节点与主节点保持数据同步,偶遇网络中断或故障时,备用节点可通过复制其他节点的数据重新同步并恢复备用状态。
- Arbiter(仲裁节点):负责监控副本集成员状态,参与选主过程。仲裁节点不存储数据,主要用于投票选主。
环境配置
本次实验采用一台服务器部署 MongoDB 3.4.1 版本。线上环境建议至少使用三台服务器,分别担任主节点、备用节点和仲裁节点。以下是部署步骤:
软件下载与部署
1. 软件下载
通过官网下载 MongoDB 可能较为复杂,建议关注“运维家”公众号,回复“mongodb”获取下载链接。
2. 软件解压与部署
- 解压并复制 MongoDB 安装包到对应目录:
$ cd /home/yunweijia/mongodb$ ./master/bin/mongod -f master/conf/mongodb.conf
3. 配置文件创建
为每个节点创建相应的配置文件:
- 主节点配置:
dbpath=/home/yunweijia/mongodb/master/datalogpath=/home/yunweijia/mongodb/master/log/mongodb.logpidfilepath=/home/yunweijia/mongodb/master/master.piddirectoryperdb=truelogappend=truereplSet=testrsbind_ip=0.0.0.0port=27017oplogSize=10000fork=truenoprealloc=true
- 备用节点配置:
dbpath=/home/yunweijia/mongodb/slave/datalogpath=/home/yunweijia/mongodb/slave/log/mongodb.logpidfilepath=/home/yunweijia/mongodb/slave/slave.piddirectoryperdb=truelogappend=truereplSet=testrsbind_ip=0.0.0.0port=28018oplogSize=10000fork=truenoprealloc=true
- 仲裁节点配置:
dbpath=/home/yunweijia/mongodb/arbiter/datalogpath=/home/yunweijia/mongodb/arbiter/log/mongodb.logpidfilepath=/home/yunweijia/mongodb/arbiter/arbiter.piddirectoryperdb=truelogappend=truereplSet=testrsbind_ip=0.0.0.0port=29019oplogSize=10000fork=truenoprealloc=true
4. 启动 MongoDB
分别启动主节点、备用节点和仲裁节点:
$ ./master/bin/mongod -f master/conf/mongodb.conf$ ./slave/bin/mongod -f slave/conf/mongodb.conf$ ./arbiter/bin/mongod -f arbiter/conf/mongodb.conf
5. 配置副本集
通过主节点执行以下命令创建副本集:
$ ./master/bin/mongo 192.168.112.130:27017use admindb.admin.command('rs.initiate', { replSet: 'testrs', members: [ { _id: 0, host: '192.168.112.130:27017', priority: 2 }, { _id: 1, host: '192.168.112.130:28018', priority: 1 }, { _id: 2, host: '192.168.112.130:29019', arbiterOnly: true } ] })
配置说明
- yunweijia:可更换为任意名称,但需避免与 MongoDB 关键字冲突。
- arbiterOnly: true:确保仲裁节点不存储数据,否则副本集无法正常选主。
- 配置完成后检查副本集状态,正常情况下应显示主节点状态为 PRIMARY。
注意事项
- 配置生效时间因网络环境而异,建议使用
rs.status()
检查状态。 - 配置错误时常见问题:code:93,确认
replSet
名称与配置一致。
到此,MongoDB 在 Linux 环境下的安装与部署完成。后续文章将介绍 MongoDB 的核心命令使用方法。
发表评论
最新留言
感谢大佬
[***.8.128.20]2025年05月06日 14时41分15秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Linux工作笔记040---Centos8.2安装mysql5.7.18_已经测试成功
2023-02-04
Linux带给了我什么?
2023-02-04
Linux常用vi命令
2023-02-04
linux常用压缩解压命令(tar,zip)
2023-02-04
Linux常用命令
2023-02-04
Linux常用命令
2023-02-04
Linux常用命令
2023-02-04
Linux常用命令
2023-02-04
linux常用命令
2023-02-04
Linux常用命令
2023-02-04
Linux常用命令-
2023-02-04
linux常用命令-grep
2023-02-04
linux常用命令100个(转)
2023-02-04
linux常用命令3
2023-02-04
linux常用命令date
2023-02-04
linux常用命令之打包压缩
2023-02-04
linux常用命令合集及常用工具指令集
2023-02-04
Linux常用命令大全
2023-02-04
Linux常用命令总结
2023-02-04
Linux常用命令汇总
2023-02-04