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 的核心命令使用方法。

上一篇:linux搭建NFS支持windws2008访问
下一篇:Linux搭建HTTP服务

发表评论

最新留言

感谢大佬
[***.8.128.20]2025年05月06日 14时41分15秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章