前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Ubuntu 18.04下部署MongoDB复制集(副本集)

Ubuntu 18.04下部署MongoDB复制集(副本集)

作者头像
星哥玩云
发布2022-08-17 15:22:48
5530
发布2022-08-17 15:22:48
举报
文章被收录于专栏:开源部署

环境

操作系统:Ubuntu 18.04

MongoDB: 4.0.3

服务器

首先部署3台服务器,1台主节点 + 2台从节点

3台服务器的内容ip分别是:

10.140.0.5 (主节点)

10.140.0.6 (从节点01)

10.140.0.7 (从节点02)

安装MongoDB

接下来,需要在每一台服务器上安装MongoDB

完整安装过程可参考官方文档。

为了方便,本文提供MongoDB的一键安装脚本。

可以到Linux公社资源站下载:

------------------------------------------分割线------------------------------------------

免费下载地址在 http://linux.linuxidc.com/

用户名与密码都是www.linuxidc.com

具体下载目录在 /2018年资料/11月/3日/Ubuntu 18.04下部署MongoDB复制集(副本集)/

下载方法见 http://www.linuxidc.com/Linux/2013-07/87684.htm

------------------------------------------分割线------------------------------------------

切换成root用户 sudo su -

运行安装脚本 wget https://gitlab.com/caizhifei2003/scripts/raw/master/install/mongodb/ubuntu-1804.sh chmod u+x ubuntu-1804.sh ./ubuntu-1804.sh

此时,可以通过mongo命令进入数据库

配置复制集

设置复制集名称 有两种方式来设置复制集的名称。一种是通过mongod命令,另一种是通过修改配置文件。 本文使用通过修改配置文件的方式来设置复制集名称,确保每次节点重新启动后能够使用相同的配置启动数据库

打开MongoDB在Ubuntu上的配置文件 vim /etc/mongod.conf

找到replication配置节 replication:     replSetName: "rs0"

绑定MongoDB的IP地址 找到net配置节 net:     port: 27017     bindIp: localhost,10.140.0.5这里是主节点的地址,相应的从节点要绑定 10.140.0.6 10.140.0.7

保存文件,重新启动mongod服务 service mongod restart

此时,进入到任何一个节点。查看复制集状态。

初始化复制集 通过mongo shell进入主节点的数据库 执行复制集初始化命令

rs.initiate( {   _id : "rs0",   members: [       { _id: 0, host: "10.140.0.5:27017" },       { _id: 1, host: "10.140.0.6:27017" },       { _id: 2, host: "10.140.0.7:27017" }   ] })

查看复制集状态 rs.status()

到此,复制集已经创建成功。

测试数据同步

执行如下命令,在主节点上插入一条数据

use test db.test.insertOne({"name": "kenny"})

进入任何一个从节点,查看数据是否被同步。 use test rs.slaveOk() db.test.find()

默认情况下,MongoDB只允许在主节点上写入和读取数据。这里的rs.slaveOk()是为了在从节点上也读取数据而需要执行的session(如果退出mongo shell,需要重新执行该命令)级别的命令。

显示的内容如下:

测试重新选举主节点

在3个节点上分别使用rs.isMaster()命令

10.140.0.5:

10.140.0.6:

10.140.0.7

强制关闭主节点上的MongoDB服务 use admin db.shutdownServer()

在两个从节点上,通过rs.isMaster()命令查看状态

10.140.0.6:

10.140.0.7:

从上面的运行结果可以看出,10.140.0.6已经被推选成新的主节点。此时所有服务一切正常。

至此,部署MongoDB复制集的基本操作已经完成。

总结

MongoDB复制集的部署还是比较简单的,官方文档也给出了较为详细的说明。

  同任何其它数据库一样,MongoDB的副本集也是为了增强数据的安全性,避免因为服务器出现异常时,而导致数据服务不可用的情况出现。同时,数据被完整的保存在多个节点中,任何一台服务器的硬盘出现问题,都不会丢失数据。但是这里也存在风险,那就是数据同步存在时间差,如果还没有等到数据被同步到从节点,主节点就当机的话,那么这部分数据是无法找回的。

  官方建议的副本集节点数量是3个,1个主节点+2个从节点。或者是1个主节点+1个从节点+1个仲裁节点。仲裁节点的作用是在主节点不可用时,通过算法找到最适合的从节点成为新的主节点。不建议将仲裁节点和数据节点放在同一个服务器上。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MongoDB
腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档