博客
关于我
linux搭建mongodb数据库副本集
阅读量:796 次
发布时间: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 常用命令之cat、tac、nl
查看>>
linux 根目录扩容
查看>>
Linux 环境下将 ASM 磁盘映射到物理磁盘的完整指南
查看>>
Linux 磁盘和文件系统管理2
查看>>
Linux 系统备份与恢复详解
查看>>
linux 系统服务管理
查看>>
linux 解压tar包
查看>>
linux 让php支持mysql_转 linux下php扩展mysqli的支持
查看>>
Linux 进程间通信 --- 信号通信 --- signal --- signal(SIGINT, my_func); --- 按键驱动异步通知...
查看>>
linux 配置 skywalking
查看>>
linux 防火墙操作
查看>>
Linux&Debian系统安装nginx
查看>>
Linux(ubuntu)使用dd从iso制作win7安装u盘(读卡器一样),以及备份分区
查看>>
Linux--gdb/cgdb
查看>>
Linux--git
查看>>
linux--make/进度条
查看>>
Linux--NFS和DHCP服务器
查看>>
Linux--基本指令4(完结)和权限
查看>>
Linux--操作系统/进程
查看>>
Linux--环境变量
查看>>