mongodb 4.0副本集搭建的全过程

下面将详细讲解mongodb 4.0副本集搭建的全过程。在这个过程中,为了更好地说明问题,我将会提供两个示例。

什么是mongodb副本集?

MongoDB是一个基于分布式文件存储的数据库程序,并且支持主从复制和副本集等高可用性方案。

副本集是一个由几个MongoDB实例组成的集群,其中有一个主节点和多个从节点。主节点负责所有写入操作,并自动将写操作的结果同步到所有从节点上。如果主节点宕机,副本集会自动切换到一个从节点作为新的主节点。这种方案可以提高MongoDB的可用性。

搭建MongoDB副本集的全过程

接下来,将详细介绍MongoDB副本集的全过程,包括搭建主节点、从节点和副本集等环节,下面以两个实例为例。

实例一:使用Docker搭建MongoDB副本集

1、安装Docker

在官网上下载Docker CE,并按照官方指南进行安装:Docker官网安装文档

2、创建Docker容器

使用如下命令,在docker容器中运行MongoDB:

docker run --name mongo1 -d mongo --replSet rs0
docker run --name mongo2 -d mongo --replSet rs0
docker run --name mongo3 -d mongo --replSet rs0

这将在本地主机上创建一个名为“mongo1”、“mongo2”、“mongo3”容器,并在其中运行MongoDB镜像,其中--replSet rs0表示该实例属于rs0副本集。

3、配置MongoDB副本集

进入mongo1中的控制台,使用以下命令初始化副本集:

docker exec -it mongo1 mongo # 进入mongo1容器中
rs.initiate() # 初始化副本集
rs.add("mongo2:27017") # 添加mongo2实例
rs.add("mongo3:27017") # 添加mongo3实例

这将在mongo1实例上初始化副本集,并将mongo2和mongo3添加至副本集。

4、测试MongoDB副本集

进入任意一个mongo实例中,输入以下命令测试是否成功搭建MongoDB副本集:

rs.status() # 查看副本集状态
db.test.insert({test:1}) # 向test数据库添加一条记录
rs.slaveOk() # 允许从节点读取数据
db.test.find() # 查看test数据库中的数据,该操作在任意一个从节点上均可执行

实例二:使用Mongod搭建MongoDB副本集

相对于使用Docker,使用Mongod搭建MongoDB副本集需要手动安装和配置。

1、安装MongoDB

在官网上下载MongoDB,并按照官方文档进行安装:MongoDB官网安装文档

2、创建MongoDB实例和数据目录

使用以下命令,创建三个MongoDB实例和数据目录:

mongod --replSet rs0 --port 27017 --dbpath /data/mongo1
mongod --replSet rs0 --port 27018 --dbpath /data/mongo2
mongod --replSet rs0 --port 27019 --dbpath /data/mongo3

这将在本地主机上创建了三个MongoDB实例和三个数据文件夹。

3、初始化MongoDB副本集

进入mongo1的控制台,使用以下命令初始化副本集:

mongo --host localhost --port 27017
> rs.initiate()
{
"info2" : "no configuration specified. Using a default configuration for the set",
"me" : "mongo1:27017",
"ok" : 1,
"operationTime" : Timestamp(1575960852, 1),
"$clusterTime" : {
"clusterTime" : Timestamp(1575960852, 1),
"signature" : {
"hash" : BinData(0,"aslkfljksfow33343323"),
"keyId" : NumberLong(0)
}
}
}

执行以上命令之后,将初始化一组没有配置的设置。

接着,在mongo1上添加mongo2和mongo3:

mongo --host localhost --port 27017
> rs.add("mongo2:27018")
{
"operationTime" : Timestamp(1575960914, 6),
"$clusterTime" : {
"clusterTime" : Timestamp(1575960914, 6),
"signature" : {
"hash" : BinData(0,"asl;kfjlksd23mzoksd"),
"keyId" : NumberLong(0)
}
},
"ok" : 1
}
> rs.add("mongo3:27019")
{
"operationTime" : Timestamp(1575960929, 1),
"$clusterTime" : {
"clusterTime" : Timestamp(1575960929, 1),
"signature" : {
"hash" : BinData(0,"alksf2rwe994ef"),
"keyId" : NumberLong(0)
}
},
"ok" : 1
}

4、测试MongoDB副本集

接下来在任意一个mongo实例中,输入以下命令测试是否成功搭建MongoDB副本集:

mongo --host localhost --port 27017
> rs.status()

如果返回了当前主节点的信息,就表示MongoDB副本集已成功搭建。

结束语

通过以上的实例,讲解了如何使用Docker和Mongod搭建MongoDB副本集,MongoDB副本集的搭建需要按照先后顺序进行,需要初始化副本集并将所有从节点添加至副本集中。副本集的搭建使得MongoDB具有了高可用性,若主节点宕机就会自动选择从节点作为新的主节点,从而确保数据的安全和有效的运转。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:mongodb 4.0副本集搭建的全过程 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • MongoDB分片集群部署详解

    MongoDB分片集群部署详解 1. 环境准备 1.1 安装MongoDB 在进行MongoDB分片集群部署之前,需要先安装MongoDB数据库。在官网 https://www.mongodb.com/ 上下载对应版本,然后进行安装。 1.2 准备三台服务器 分片集群需要至少三台服务器,这里我们准备三台服务器,IP分别为:192.168.0.1、192.16…

    MongoDB 2023年5月16日
    00
  • Go语言转换所有字符串为大写或者小写的方法

    Go语言中转换字符串为大写或小写有多种方式。下面提供三种不同的方法来实现这个目标。 方法一:strings.ToUpper() 和 strings.ToLower() strings.ToUpper() 函数把一个字符串转换为大写,返回一个新的字符串。 strings.ToLower() 函数把一个字符串转换为小写,返回一个新的字符串。 示例代码如下: im…

    MongoDB 2023年5月16日
    00
  • Navicat Premium连接mongodb详细教程

    Navicat Premium连接MongoDB详细教程 简介 Navicat Premium是一款功能强大的数据库管理工具,除了支持关系型数据库外,也支持连接非关系型数据库,如MongoDB。本文将详细介绍如何使用Navicat Premium连接MongoDB。 步骤 1. 下载并安装Navicat Premium 前往Navicat官网下载Navica…

    MongoDB 2023年5月16日
    00
  • MongoDB更新文档方法详解

    MongoDB是一种流行的NoSQL数据库,提供了一个灵活的文档数据模型,使得更新文档相对来说很简单。在本文中,我们将学习在MongoDB中如何更新文档。 更新整个文档 更新整个文档就是把旧的文档替换成一个新的文档。下面是一个使用MongoDB shell语法更新整个文档的例子: db.inventory.updateOne( { item: "a…

    MongoDB 2023年3月14日
    00
  • Mongodb常用的身份验证方式

    对于 Mongodb 常用的身份验证方式,主要有以下两种: 1. SCRAM-SHA SCRAM-SHA 是一种新的身份验证机制,它基于 Salted Challenge Response Authentication Mechanism(SCRAM)协议,提供更安全的密码验证。SCRAM-SHA 分为 SCRAM-SHA-1 和 SCRAM-SHA-256…

    MongoDB 2023年5月16日
    00
  • python连接mongodb操作数据示例(mongodb数据库配置类)

    下面是详细讲解“python连接mongodb操作数据示例(mongodb数据库配置类)”的完整攻略,包含两条示例说明。 1. 安装pymongo 在使用Python连接MongoDB数据库之前,需要先安装pymongo模块,可以使用命令行或者Anaconda Prompt来安装: pip install pymongo 2. 连接MongoDB数据库 连接…

    MongoDB 2023年5月16日
    00
  • MongoDB分片方法详解

    MongoDB分片是让我们能够将数据分散存储在多个服务器上,达到数据水平扩展能力的一种方案。今天我们就来一步步详解MongoDB分片的完整攻略。 前置条件 在使用MongoDB分片之前,需要先明确以下几个前置条件: 需要有三个节点的MongoDB副本集。 所有节点的MongoDB版本必须相同。 所有节点的时间必须同步。 所有节点的存储引擎必须相同。 所有节点…

    MongoDB 2023年3月14日
    00
  • 把MongoDB作为循环队列的方法详解

    那我就给您详细讲解一下“把MongoDB作为循环队列的方法详解”,同时附上两条示例说明。 把MongoDB作为循环队列的方法详解 前言 MongoDB是一个非关系型数据库,因其能够实时存储和处理前所未有的海量数据而备受欢迎。在实际使用中,我们可以使用MongoDB来构建循环队列,这不仅可以提高系统的性能,还可以提供更好的数据调用方式。 步骤 1. 创建Mon…

    MongoDB 2023年5月16日
    00
合作推广
合作推广
分享本页
返回顶部