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.8K0
举报
文章被收录于专栏:进击的全栈进击的全栈
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 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Mongodb主从复制/ 副本集/分片集群介绍
前面的文章介绍了Mongodb的安装使用,在 MongoDB 中,有两种数据冗余方式,一种 是 Master-Slave 模式(主从复制),一种是 Replica Sets 模式(副本集)。 Mongodb一共有三种集群搭建的方式: Replica Set(副本集)、 Sharding(切片) Master-Slaver(主从)【目前已不推荐使用了!!!】 其中,Sharding集群也是三种集群中最复杂的。 副本集比起主从可以实现故障转移!!非常使用! mongoDB目前已不推荐使用主从模式,取而代之的
洗尽了浮华
2018/01/22
17.7K2
Mongodb主从复制/ 副本集/分片集群介绍
006.MongoDB副本集
复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性, 并可以保证数据的安全性。
木二
2019/07/01
8880
mongoDB (四) mongoDB认证
三台副本集机器,设置好各自的端口:27017,27018,27019 我这边先用单节点三副本配置: 其余的配置文件改成对应端口和目录即可
alexhuiwang
2020/09/24
1.9K0
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
7660
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
3380
MongoDB 副本集搭建与管理详解
单节点的 MongoDB 在数据的安全和冗余方面是比较低的,在生产环境中,我们为 MongoDB 配置副本集,这样可以提高数据的高可用性和安全性。
星哥玩云
2022/08/18
1.7K0
MongoDB 副本集搭建与管理详解
MongoDB副本集
  MongoDB的副本集至少需要两个节点。其中一个是主节点,负责处理客户端请求,其余的都是从节点,负责复制主节点上的数据,建议提供仲裁节点,侧节点不存储数据,作用是当主节点出现故障时,选举出某个备用节点成为主节点,保证MongoDB的正常服务。客户端只需要访问主节点或者从节点,不需要访问仲裁节点。
Se7eN_HOU
2022/05/07
5510
MongoDB副本集
mongodb 4.0副本集搭建
近期有同学问mongodb副本集难不难部署,我的回答是不难,很快,几分钟搞定,比mysql MHA简单的不止一点半点。那么到底如何部署呢?请看下文。
俊才
2020/08/13
1.3K0
Monogo副本集
MongoDB 副本集(Replica Set)是有自动故障恢复功能的主从集群,有一个Primary节点和一个或多个Secondary节点组成。类似于MySQL的MMM架构
mikelLam
2022/10/31
9220
Monogo副本集
MongoDB 7.0.14 副本集部署
MongoDB 副本集是一个用于数据高可用性和冗余的集群配置。副本集由多个 MongoDB 实例组成,其中一个是主节点(Primary),其余是从节点(Secondary)。主节点负责所有写入操作,从节点则从主节点复制数据,提供读操作的负载均衡,(主节点-从节点-从节点)(推荐);如果情况(例如成本)禁止添加第三个数据承载节点,则可以是两个数据承载节点加一个仲裁节点(主节点-从节点-仲裁节点)
DBA实战
2024/10/21
1660
MongoDB 7.0.14 副本集部署
MongoDB——Ubuntu安装及配置带认证的副本集(亲测)
要安装 mongodb-org,我们需要更新我们的包数据库,以便系统知道可用的新包
凡人飞
2020/09/21
1K0
MongoDB——Ubuntu安装及配置带认证的副本集(亲测)
MongoDB之副本集
MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
小忽悠
2018/08/27
6580
mongodb4.0.2 复制集主从部署
复制集(Replica Sets),是一个基于主/从复制机制的复制功能,进行同一数据的异步同步,从而使多台机器拥有同一数据的都多个副本,由于有自动故障转移和恢复特性,当主库宕机时不需要用户干预的情况下自动切换到其他备份服务器上做主库,一个集群最多可以支持7个服务器,并且任意节点都可以是主节点。所有的写操作都被分发到主节点,而读操作可以在任何节点上进行,可以实现读写分离,提高负载。
程序员同行者
2018/09/27
2.3K0
mongodb4.0.2 复制集主从部署
mongodb副本集搭建
副本集(Replica Set)是一组MongoDB实例组成的集群,由一个主(Primary)服务器和多个备份(Secondary)服务器构成。通过Replication,将数据的更新由Primary推送到其他实例上,在一定的延迟之后,每个MongoDB实例维护相同的数据集副本。通过维护冗余的数据库副本,能够实现数据的异地备份,读写分离和自动故障转移。
端碗吹水
2020/09/23
1.1K0
mongodb副本集搭建
【最佳实践】高可用mongodb集群(1分片+3副本):规划及部署
结合我们的生产需求,本次详细整理了最新版本 MonogoDB 7.0 集群的规划及部署过程,具有较大的参考价值,基本可照搬使用。
雪人
2023/10/11
2.5K1
MongoDB 实战笔记 第01期:5.x 副本集部署
从这一期开始,将分几期聊聊 MongoDB 的一些基础实战经验,包括副本集、备份、常用命令等。
数据库交流
2022/04/25
4400
MongoDB 实战笔记 第01期:5.x 副本集部署
MongoDB副本集搭建
我们之前的案例都是在单个节点上实现的,在生产环境中这种做法是有风险的,如果服务宕机、崩溃或者硬盘坏了都会对公司业务造成损失,因此我们需要数据备份。在MongoDB中我们可以通过副本集来实现这一需求,MongoDB副本集(Replica Set)是有自动故障恢复功能的主从集群,有一个Primary节点和一个或多个Secondary节点组成,如果Primary崩溃了,会自动从Secondary中选择一个将其升级为新的主服务器,本文我们先来看看副本集环境的搭建。 ---- 单台服务器模拟 我们在实际的生产环境中肯
江南一点雨
2018/04/02
1.3K0
mongodb副本集加分片集群安全认证使用账号密码登录 原
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
拓荒者
2019/09/16
2.7K0
微系列:7、在Centos系统中,搭建MongoDB副本集
创建mongodb的源文件 /etc/yum.repos.d/mongodb-org-5.0.repo,添加内容
老张的哲学
2023/01/09
6770
MongoDB副本集用一致性快照方法添加从节点步骤
2)从节点上进行一致性快照恢复,仅仅对数据部分进行恢复,暂时不要对oplog进行恢复
星哥玩云
2022/08/18
5420
相关推荐
Mongodb主从复制/ 副本集/分片集群介绍
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档