MongoDB主从搭建的快速入门指南

1. 前言

随着数据量的逐年增加,单个数据库已经不能满足高并发、海量数据存储的需求,主从架构应运而生。MongoDB主从架构是常用的一种,本文将介绍如何进行MongoDB主从搭建。

2. 主从概述

2.1 主从架构是什么

主从架构是由一个主节点和多个从节点组成的数据复制集群。主节点负责接受客户端请求,从节点负责同步主节点的数据。主节点可以执行写操作,从节点只能执行读操作,实现了分布式数据访问和高可用性。

2.2 主从架构优势

主从架构有着较好的读写分离和数据冗余备份的特点。同时,如果主节点发生故障,可以通过从节点自动选举出新的主节点,提高了系统的可用性。

2.3 主从架构缺陷

主从架构有一定的延迟,因为从节点必须等待主节点的操作完成后才能同步数据。同时,主从架构也存在单点故障的问题,如果主节点发生故障,需要从节点选举新的主节点,期间服务可能会中断。

3. MongoDB主从搭建

3.1 安装MongoDB

在进行MongoDB主从搭建之前,需要先安装MongoDB。

以Ubuntu系统为例,安装命令如下:

sudo apt-get install mongodb

3.2 配置主从节点

在配置主从节点之前,需要先了解以下几个概念:

主节点:接受客户端请求,写入操作。

从节点:从主节点同步数据,只能读取数据。

副本集:由主节点和从节点组成的复制集群。

Oplog:操作日志,记录所有主节点的写操作。

步骤如下:

创建主节点配置文件mongod_primary.conf,配置文件内容如下:

port=27017

dbpath=/data/mongodb/primary

logpath=/var/log/mongodb/primary/mongo.log

logappend=true

oplogSize=1000

fork=true

replSet=myReplicaSet

其中,port为端口号,dbpath为数据存储目录,logpath为日志文件存储目录,oplogSize为日志文件大小,fork为后台运行。

replSet为副本集名称,所有主从节点的副本集名称必须相同。

创建从节点配置文件mongod_secondary1.conf,配置文件内容如下:

port=27018

dbpath=/data/mongodb/secondary1

logpath=/var/log/mongodb/secondary1/mongo.log

logappend=true

fork=true

replSet=myReplicaSet

创建从节点配置文件mongod_secondary2.conf,配置文件内容如下:

port=27019

dbpath=/data/mongodb/secondary2

logpath=/var/log/mongodb/secondary2/mongo.log

logappend=true

fork=true

replSet=myReplicaSet

启动主节点并进入MongoDB交互界面,执行以下代码:

mongo

rs.initiate()

依次启动从节点,进入MongoDB交互界面,执行以下代码:

rs.add("127.0.0.1:27018")

rs.add("127.0.0.1:27019")

4. 测试主从复制

4.1 写入数据

在主节点MyPrimary创建数据库mydb,并添加一个数据记录。

mongo

use mydb

db.myCollection.insertOne({"name":"mongoDB"})

4.2 读取数据

在从节点MySecondary1和MySecondary2中读取mydb数据库中的数据,如果从节点同步数据成功,可以在从节点中查询到刚才写入的数据记录。

mongo 127.0.0.1:27018

use mydb

db.myCollection.find().pretty()

mongo 127.0.0.1:27019

use mydb

db.myCollection.find().pretty()

5. 总结

本文详细介绍了如何进行MongoDB主从搭建,并进行测试。主从架构的优点在于可以实现高可用性和读写分离,但同时也存在一定的延迟和单点故障的问题。

数据库标签