Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >mongodb副本集搭建

mongodb副本集搭建

原创
作者头像
shirley
修改于 2019-07-09 02:31:57
修改于 2019-07-09 02:31:57
3.7K0
举报
文章被收录于专栏:进击的全栈进击的全栈
mongodb集群的副本集和sharding模式目前是用的最广的方案,通常这2种方案的选择通过数据量和并发数来权衡。在GB级别的基本上副本集方案可满足,TB级别或以上采用sharding模式,解决单机容量和单机并发能力。这两种既有自己的优势也有自己的缺点,比如sharding模式分片越多,性能自然下降越多。

摘自:Mongodb 集群keyFile认证

  • 环境、安装包版本
  • 一、安装、配置
  • 二、更改服务器节点
  • 三、mongodb.conf文件配置
  • 四、参考资料
mongodb 副本集理论请移步mongoDB复制(译 v4.0)
环境、安装包版本
操作系统:CentOS 7.2
MongoDB版本:4.0.10

安装软件包

安装 mongodb 的服务器

服务器端口地址

默认角色

10.13.8.232:27017

primary

10.5.101.8:27017

secondary

10.16.4.200:27110

arbiter

一、安装、配置
1. 分别在3台机器上都创建文件夹
代码语言:txt
AI代码解释
复制
# mkdir -p /data/mongodb/data
# mkdir -p /data/mongodb/log
# mkdir -p /data/mongodb/keyfile
2. 分别在3台机器上安装mongodb,安装目录统一为/usr/local/
代码语言:txt
AI代码解释
复制
1.去官网上下载mongodb 版本:
https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.0.10.tgz
2.分别上传到3台机器上,并解压,修改目录名,删除安装包:
[/usr/local/]$ tar -xzvf mongodb-linux-x86_64-rhel70-4.0.10.tgz
[/usr/local/]$ mv mongodb-linux-x86_64-rhel70-4.0.10 mongodb-4.0.10
[/usr/local/]$ rm -rf mongodb-linux-x86_64-rhel70-4.0.10.tgz
3. 分别在3台机器上上传同一份 mongodb.conf 文件,放在/usr/local/mongodb-4.0.10目录下(具体配置文件见文末)
代码语言:txt
AI代码解释
复制
/usr/local/mongodb-4.0.10/]$ mkdir conf
[/usr/local/mongodb-4.0.10/]$ cd conf
[/usr/local/mongodb-4.0.10/conf/]$ rz
4. 分别在3台机器上都启动mongodb,在路径/usr/local/mongodb-4.0.10/bin下启动
代码语言:txt
AI代码解释
复制
[/usr/local/mongodb-4.0.10/bin/]$ ./mongod -f /usr/local/mongodb-4.0.10/conf/mongodb.conf

可通过 ps -aux|grep mongo 或者 lsof -i:27017来查看是否启动成功

5. 进入其中一个节点(主节点)的mongo控制台, 配置集群(务必保证节点防火墙关闭或开放mongo服务端口)
代码语言:txt
AI代码解释
复制
[/usr/local/mongodb-4.0.10/bin/]$ ./mongo
// 下面配置中的_id:"mongors"要与mongodb.conf文件中的replSetName一致。priority 参数的值决定了选举中该节点的优先级。值越高,优先级越高
> config = { _id: "mongors", members: [
{_id: 0, host: "10.13.8.232:27017", priority:2},
{_id: 2, host: "10.5.101.8:27017", priority:1},
{_id: 1, host: "10.16.4.200:27110",arbiterOnly:true}]
}
 // 初始化副本集,配置成功:"ok" : 1
> rs.initiate(config)
 // 查看副本集状态,确认主节点
> rs.status()
// 查看副本同步状态
> db.printSlaveReplicationInfo()
6. 创建相关用户及权限,只在其中一个节点上(主节点)操作即可
代码语言:txt
AI代码解释
复制
//在主节点上
> use admin
> db.createUser({user: 'root', pwd: 'pwd', roles: ['root']})
> db.auth('root','pwd')
> use ApiHub
> db.createUser({user: 'test', pwd: 'testpwd', roles: ['readWrite']})
> db.auth('test', 'testpwd')

//查看创建的用户
> use admin
> db.system.users.find().pretty()
7. 关闭所有节点(先关闭仲裁和从节点, 再关闭主节点, 避免主节点切换)
代码语言:txt
AI代码解释
复制
> use admin
> db.shutdownServer()       #关闭mongo后台进程
8. 开启用户认证

(1)创建 keyfile 文件。在其中1台机器上执行以下命令生成 keyfile 文件(修改权限的chmod命令使用方法):

代码语言:txt
AI代码解释
复制
//生成key
[/usr/local/]$ openssl rand -base64 745 > /data/mongodb/keyfile/keyfile
[/usr/local/]$ chmod 600 /data/mongodb/keyfile/keyfile

(2)将这份keyfile文件拷贝到另外2台机器上的相同路径下:/data/mongodb/keyfile/。

(3)分别在三个节点的 mongod.conf 文件中添加以下配置:

代码语言:txt
AI代码解释
复制
security:
		keyFile: "/data/mongodb/keyfile/keyfile"
		authorization: enabled

(4)重新启动3个节点

代码语言:txt
AI代码解释
复制
./mongod -f /usr/local/mongodb-4.0.10/conf/mongodb.conf

(4)进行认证(因为已启用身份认证功能):

代码语言:txt
AI代码解释
复制
> use admin
> db.auth('root','pwd')
10. 副本集更改权重模拟主宕机,验证配置是否成功。

若验证主从节点切换成功,则配置 OK。

二、更改服务器节点

根据实际情况,需要将10.5.101.8:27017变成10.5.101.9:27017。

策略:先添加从节点再删除不再使用的从节点,避免出错。
1. 按“一、安装、配置”的方法在10.5.101.9上安装同一版本的 mongodb、创建相关文件夹、同步上面生成的 keyfile 和 mongodb.conf 文件,并用 mongod 命令启动数据库。
2. 在主节点(10.13.8.232)上进入数据库
代码语言:txt
AI代码解释
复制
[/usr/local/mongodb-4.0.10/bin]$ ./mongo
mongors:PRIMARY> use admin
mongors:PRIMARY> db.auth('root','pwd')
mongors:PRIMARY> rs.add("10.5.101.9:27017")
// 使用 rs.printReplicationInfo() 来确认复制集的oplog状态。
mongors:PRIMARY> rs.printReplicationInfo()
// 删除不再使用的从节点
mongors:PRIMARY> rs.remove("10.5.101.8:27017")
//使用rs.status()或者 rs.conf()来确认配置
3. 使用第二步中的第10点来验证节点变更是否成功。
三、mongodb.conf文件配置

mongodb配置字段说明

为了安全,bindIp需要配置具体的 ip,只允许特定 ip 接入,避免暴露在公网上。
代码语言:txt
AI代码解释
复制
systemLog:
   destination: file
   path: "/data/mongodb/log/mongodb.log"
   logAppend: true
storage:
   dbPath: "/data/mongodb/data/"
   journal:
      enabled: true
   wiredTiger:
      engineConfig:
         cacheSizeGB: 6
replication:
    oplogSizeMB: 10000
    replSetName: "mongors"
processManagement:
   fork: true
   pidFilePath: "/data/mongodb/mongodb.pid"
net:
   bindIp: 127.0.0.1,10.13.8.232,10.5.101.8,10.16.4.200
   port: 27017
setParameter:
   enableLocalhostAuthBypass: false
四、参考资料
  1. MongoDB 副本集部署-3.6版本
  2. Mongodb 集群keyFile认证
  3. CentOS7.4搭建基于用户认证的MongoDB4.0三节点副本集集群详细文档

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Mongo部署副本集
部署副本集 1.0 更改Mongo配置文件 [root@localhost mongo]# vim conf/mongo.conf port=27017 fork=true logpath=/usr/local/mongo/logs/mongodb.log logappend=true dbpath=/usr/local/mongo/data replSet=rs0 # 加入副本集名称,此名称要一致 启动Mongo [root@localhost mongo]# mongod -f conf/mongo.
Yuou
2022/09/26
3320
MongoDB 实战笔记 第01期:5.x 副本集部署
从这一期开始,将分几期聊聊 MongoDB 的一些基础实战经验,包括副本集、备份、常用命令等。
数据库交流
2022/04/25
4290
MongoDB 实战笔记 第01期:5.x 副本集部署
听说MongoDB你很豪横?-------------MongoDB复制集以及管理优化
1、Mongodb复制集由一组Mongod实例(进程)组成,包含一个Primary节点和多个Secondary节点,Mongodb Driver(客户端)的所有数据都写入Primary,Secondary从Primary同步写入的数据,以保持复制集内所有成员存储相同的数据集,提供数据的高可用。
不吃小白菜
2020/09/15
4600
mongoDB(二)mongoDB副本集实战
mongoDB副本集实战 背景 mongoDB单台服务器的特点: - 数据有丢失风险 - 单台服务器无法做高可用 mongoDB副本集的特点: - 高可用架构,预防数据丢失 - 多台副本数据保持同步和一致 - mongodb副本集在有问题的时候自动切换 实战准备 副本集环境配置 生产环境至少三台服务器 机器IP 主机名 mongo端口 配置文件路径 角色 192.168.56.11 centos7-node1 27017 /data/mongodb/27017/mongodb.conf 192.16
alexhuiwang
2020/09/24
7530
微系列:7、在Centos系统中,搭建MongoDB副本集
创建mongodb的源文件 /etc/yum.repos.d/mongodb-org-5.0.repo,添加内容
老张的哲学
2023/01/09
6690
Mongodb主从复制/ 副本集/分片集群介绍
前面的文章介绍了Mongodb的安装使用,在 MongoDB 中,有两种数据冗余方式,一种 是 Master-Slave 模式(主从复制),一种是 Replica Sets 模式(副本集)。 Mongodb一共有三种集群搭建的方式: Replica Set(副本集)、 Sharding(切片) Master-Slaver(主从)【目前已不推荐使用了!!!】 其中,Sharding集群也是三种集群中最复杂的。 副本集比起主从可以实现故障转移!!非常使用! mongoDB目前已不推荐使用主从模式,取而代之的
洗尽了浮华
2018/01/22
17.7K2
Mongodb主从复制/ 副本集/分片集群介绍
MongoDB 副本集配置详解
MongoDB复制是将数据同步在多个服务器的过程。复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性, 并可以保证数据的安全性。 复制还允许您从硬件故障和服务中断中恢复数据。
星哥玩云
2022/08/17
5700
MongoDB 7.0.14 副本集部署
MongoDB 副本集是一个用于数据高可用性和冗余的集群配置。副本集由多个 MongoDB 实例组成,其中一个是主节点(Primary),其余是从节点(Secondary)。主节点负责所有写入操作,从节点则从主节点复制数据,提供读操作的负载均衡,(主节点-从节点-从节点)(推荐);如果情况(例如成本)禁止添加第三个数据承载节点,则可以是两个数据承载节点加一个仲裁节点(主节点-从节点-仲裁节点)
DBA实战
2024/10/21
1570
MongoDB 7.0.14 副本集部署
Monogo副本集
MongoDB 副本集(Replica Set)是有自动故障恢复功能的主从集群,有一个Primary节点和一个或多个Secondary节点组成。类似于MySQL的MMM架构
mikelLam
2022/10/31
8990
Monogo副本集
MongoDB副本集用一致性快照方法添加从节点步骤
2)从节点上进行一致性快照恢复,仅仅对数据部分进行恢复,暂时不要对oplog进行恢复
星哥玩云
2022/08/18
5370
mongoDB (四) mongoDB认证
三台副本集机器,设置好各自的端口:27017,27018,27019 我这边先用单节点三副本配置: 其余的配置文件改成对应端口和目录即可
alexhuiwang
2020/09/24
1.9K0
MongoDB——Ubuntu安装及配置带认证的副本集(亲测)
要安装 mongodb-org,我们需要更新我们的包数据库,以便系统知道可用的新包
凡人飞
2020/09/21
1K0
MongoDB——Ubuntu安装及配置带认证的副本集(亲测)
mongodb 4.0副本集搭建
近期有同学问mongodb副本集难不难部署,我的回答是不难,很快,几分钟搞定,比mysql MHA简单的不止一点半点。那么到底如何部署呢?请看下文。
俊才
2020/08/13
1.3K0
MongoDB教程(六):mongoDB复制副本集
💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快!
用户11147438
2024/07/20
1440
mongodb副本集搭建
副本集(Replica Set)是一组MongoDB实例组成的集群,由一个主(Primary)服务器和多个备份(Secondary)服务器构成。通过Replication,将数据的更新由Primary推送到其他实例上,在一定的延迟之后,每个MongoDB实例维护相同的数据集副本。通过维护冗余的数据库副本,能够实现数据的异地备份,读写分离和自动故障转移。
端碗吹水
2020/09/23
1.1K0
mongodb副本集搭建
MongoDB副本集搭建教程
MongoDB副本集三节点包含主节点(Primary)、副本节点(Secondary)、仲裁节点(Arbiter)。主节点(primary)负责整个副本集的读写,用户也可根据业务需求情况设置全部或部分读请求到副本节点(Secondary);副本集实时同步数据,如果主节点出现故障或宕机,副本节点就会选举一个新的主节点,这一切对于应用服务器不需关心。仲裁节点不存储数据,只负责故障转移的群体投票,这样就少了数据复制的压力。
Power
2025/03/02
860
mongodb副本集加分片集群安全认证使用账号密码登录 原
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
拓荒者
2019/09/16
2.7K0
MongoDB副本集搭建
我们之前的案例都是在单个节点上实现的,在生产环境中这种做法是有风险的,如果服务宕机、崩溃或者硬盘坏了都会对公司业务造成损失,因此我们需要数据备份。在MongoDB中我们可以通过副本集来实现这一需求,MongoDB副本集(Replica Set)是有自动故障恢复功能的主从集群,有一个Primary节点和一个或多个Secondary节点组成,如果Primary崩溃了,会自动从Secondary中选择一个将其升级为新的主服务器,本文我们先来看看副本集环境的搭建。 ---- 单台服务器模拟 我们在实际的生产环境中肯
江南一点雨
2018/04/02
1.3K0
Mongodb7.0.14集群分片部署
MongoDB 集群分片是一种水平扩展数据库的方法,通过将数据分布在多个物理服务器上,提高系统的性能和可扩展性。分片的核心思想是将数据分成多个部分(称为“分片”),每个分片存储在不同的服务器上,从而分散负载,提高查询和写入性能。
DBA实战
2024/10/10
2570
Mongodb7.0.14集群分片部署
MongoDB数据库之主从复制配置实战
MongoDB主从复制是一种数据同步机制,通过该机制可以将一个 MongoDB 实例的数据复制到其他多个实例中,以提高数据的可靠性和可用性。在主从复制中,有一个主节点(也称为主服务器),负责接收写入请求并将数据同步到从节点(也称为从服务器)。从节点只能处理读操作,而不允许写入操作。
江湖有缘
2023/09/13
2.5K0
MongoDB数据库之主从复制配置实战
相关推荐
Mongo部署副本集
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档