MongoDB 副本集搭建及实践

阅读时长 5 分钟读完

前言

MongoDB 是一款开源、高性能、分布式 NoSQL 数据库产品,广泛应用于大数据存储和实时数据分析场景中。在实际应用场景中,为了保证数据的可靠性和高可用性,我们通常会采用副本集的方式来搭建 MongoDB 集群。本篇文章将介绍 MongoDB 副本集的搭建和实践,带你深入了解 MongoDB 的副本集技术。

MongoDB 副本集简介

MongoDB 副本集是一种数据库复制架构,通过将数据复制到多个服务器,从而提高数据库的可用性和性能。一个 MongoDB 副本集通常由一个主节点和多个从节点组成,主节点是唯一的写入节点,而从节点只负责读取数据。当主节点宕机时,从节点可以自动选举新的主节点,从而保持系统的可用性。

一个 MongoDB 副本集可以由最少 3 个节点组成,包括一个主节点和两个从节点。最大支持 50 个节点,其中主节点只有一个,其余节点都是从节点。副本集支持数据自动同步、故障转移和数据备份等功能。

MongoDB 副本集搭建步骤

1. 下载 MongoDB 安装包

MongoDB 提供了各种平台的安装包,可以从官网的下载页面获取相应的安装包。选择与你操作系统匹配的版本并下载即可。

2. 解压 MongoDB 安装包

将下载的 MongoDB 安装包解压到你想要的目录下,比如 /usr/local/mongodb

3. 创建数据目录

创建 MongoDB 的数据目录,用于存放数据文件。比如 /data/mongodb

4. 创建配置文件

在 MongoDB 安装目录下创建配置文件 mongodb.conf,设置副本集的配置信息。

配置文件内容如下:

-- -------------------- ---- -------
----------
  ------------ ----
  ----- ------------------------
  ---------- ----
--------
  ------- -------------
  --------
    -------- ----
------------
  ------------ ---------
----
  ------- ---------
  ----- -----

上述配置中,systemLog 部分用来设置日志文件路径和记录格式,storage 部分用来设置数据文件路径和启用日志写入,replication 部分用来设置副本集名称,net 部分用来设置绑定 IP 和端口。这里将副本集命名为 myreplica,你可以根据需要修改此处参数。

5. 启动 MongoDB 服务

使用以下命令启动 MongoDB 服务:

这个命令将会以配置文件 /usr/local/mongodb/mongodb.conf 中的参数启动 MongoDB 服务,同时这个服务会以前台模式运行。

6. 初始化副本集

打开一个新的终端窗口,进入 MongoDB 操作控制台:

在控制台中执行以下命令初始化副本集:

初始化完成后,可以通过以下命令查看副本集状态:

7. 添加从节点

打开一个新的终端窗口,启动 MongoDB 服务并加入副本集。使用以下命令启动 MongoDB 服务:

这个命令将把此服务加入到副本集 myreplica 中,并监听端口号 27018

回到之前开着的 MongoDB 操作控制台中,执行以下命令将此服务添加到副本集中:

这个命令将会把监听在 27018 端口的服务添加到副本集中。

8. 添加更多从节点

根据需要,你可以重复上述步骤,添加更多的从节点。

MongoDB 副本集实践

1. 写入数据

在 MongoDB 控制台中执行以下命令,往数据库中插入一条数据:

此时,这条数据会被写入主节点的数据库中。

2. 读取数据

在 MongoDB 控制台中执行以下命令,从数据库中查询数据:

此时,这条数据会被从从节点的数据库中读取出来。

3. 切换主节点

在 MongoDB 控制台中执行以下命令,停止主节点服务:

此时,副本集会自动选举新的主节点,然后从节点会开始同步数据。你可以通过以下命令查看副本集状态:

4. 数据备份和恢复

在 MongoDB 中,我们可以使用 mongodump 命令来备份数据库,使用 mongorestore 命令来恢复备份的数据。

备份数据库:

其中,<hostname><port> 分别表示 MongoDB 服务的主机名和端口号,<backup_directory> 表示备份数据的目标目录。

恢复数据:

结论

本文详细介绍了 MongoDB 副本集的搭建和实践,希望能够对你有所帮助。副本集是 MongoDB 在高可用性方面的核心技术之一,可以有效地提高生产环境中 MongoDB 数据库的可靠性和可用性。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/674dbdb9947dc5bcb301b4b7

纠错
反馈