博客
关于我
linux搭建mongodb数据库副本集
阅读量:794 次
发布时间:2023-02-04

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

转载地址:http://fdkfk.baihongyu.com/

你可能感兴趣的文章
Linux下汇编语言学习笔记53 ---
查看>>
linux下的 lib文件的学习思考
查看>>
Linux下的64位数赋值要加入LL
查看>>
Linux下的串口系列---struct termios结构体
查看>>
Linux下的备份与恢复策略:全方位守护你的数据
查看>>
Linux下的多用户管理和认证:从入门到精通(附实例)
查看>>
Linux下的容器化技术:从入门到实践
查看>>
Linux下的文件权限与访问控制:守护你的数据宝藏
查看>>
Linux下的版本控制系统——Git:初学者指南
查看>>
Linux下的硬件管理与设备驱动全解析
查看>>
Linux下的系统安全加固与入侵检测全解析
查看>>
Linux下的系统监控与性能调优:从入门到精通
查看>>
Linux下的自动化任务与计划任务:让你的系统更智能
查看>>
Linux下磁盘的分区
查看>>
linux下解压命令
查看>>
linux下迅雷远程下载服务,在 Linux 下使用迅雷的另一种无入侵方式
查看>>
Linux下通过ssh访问另一台内网服务器
查看>>
Linux下部署maven-web项目,包括JDK安装、TOMCAT安装、MYSQL安装详细解释
查看>>
Linux下,C++判断指定路径下,是否存在wps打开的文件
查看>>
Linux下,配置nodejs环境两种方法,并使用cron系统任务定时启动web服务
查看>>