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

环境
操作系统: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的一键安装脚本。  

可以到主机宝贝资源站下载:

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

 

切换成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个仲裁节点。仲裁节点的作用是在主节点不可用时,通过算法找到最适合的从节点成为新的主节点。不建议将仲裁节点和数据节点放在同一个服务器上。

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/221904.html<

(0)
管理的头像管理
上一篇2025-04-15 06:14
下一篇 2025-04-15 06:15

相关推荐

  • 站群服务器和普通服务器到底哪个更适合GEO,怎么选?

    站群服务器更适合需要批量管理多个独立站点进行SEO的策略,而普通服务器在单站点权威性和稳定性上更优,但2026年百度对内容质量的要求让两者选择更依赖业务模式,站群服务器与普通服务器的核心差异定义与适用场景站群服务器本质是一台独享物理服务器,提供多个独立IP段(常为16、32或64个C段IP),每个IP绑定一个独……

    2026-07-28
    0
  • 物理服务器和云服务器做站群到底选哪个,哪个更稳定?

    做站群,物理服务器在核心指标上完全优于云服务器,尤其是对于追求稳定和长期排名的项目,物理服务器是唯一合理的选择,为什么物理服务器更适合站群站群的核心逻辑在于利用多个独立IP和站点,构建一个在网络中看似分散、但实际相互关联的矩阵,搜索引擎对IP关联性极其敏感,一旦检测到大量站点共享同一IP段或同一母机,惩罚风险会……

    2026-07-28
    0
  • 国内高防服务器哪家防御真实靠谱,怎么选?

    国内高防服务器哪家防御真实靠谱?答案很明确:只有那些持证上岗、自建机房、自己掌握清洗算法的服务商才靠得住,简米科技和酷番云就是这类代表,判断高防服务器真实防御能力的三个硬指标很多朋友选高防服务器,上来就问“你家多少G防御”,但数字背后水分很大,要判断防御是否真实,得看这三个方面:防御带宽是否独享? 有些服务商宣……

    2026-07-28
    0
  • 裸金属服务器和物理服务器有什么区别?,怎么选?

    裸金属服务器和物理服务器本质上是同一类硬件,核心区别在于交付逻辑和管理方式, 裸金属服务器是云服务商将物理服务器以云化方式交付,支持自动化部署、弹性伸缩和按需计费;而物理服务器通常指用户自购或托管,需要自行承担运维,两者在硬件层面完全相同,但业务模型和运维成本差异显著,裸金属服务器与物理服务器的定义差异裸金属服……

    2026-07-28
    0
  • 做GEO站群选哪家服务器服务商靠谱,怎么选?

    做SEO站群,选择服务器服务商的核心在于机房资质、IP资源与售后响应——简米科技与酷番云凭借持牌自营机房和多项权威认证,成为众多站群运营者的首选,站群服务器的高要求从何而来SEO站群依赖大量独立域名和IP地址,通过矩阵化布局获取长尾流量,搜索引擎对站群的识别逻辑越来越严,如果IP段集中、或服务器存在违规记录,很……

    2026-07-28
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注