MongoDB搭建高可用集群的完整步骤

搭建高可用的MongoDB集群已经成为现在互联网开发必不可少的环节之一,但是,搭建这个集群需要付出非常多的心血和精力,在这里,我们就为大家详细介绍MongoDB搭建高可用集群的完整步骤。

一、安装MongoDB

首先,我们需要将MongoDB安装在我们的服务器上,以下是具体的步骤:

1. 创建一个MongoDB的源列表:

sudo vi /etc/yum.repos.d/mongodb-org-4.4.repo

在该文件中添加以下内容:

[mongodb-org-4.4]

name=MongoDB Repository

baseurl=https://repo.mongodb.org/yum/amazon/2/mongodb-org/4.4/x86_64/

gpgcheck=1

enabled=1

gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc

2. 安装MongoDB:

sudo yum install -y mongodb-org

在安装完成之后,启动MongoDB服务:

sudo service mongod start

二、配置ReplicaSet

1. 创建数据存储文件夹,这个文件夹是我们之后MongoDB数据的存储路径:

sudo mkdir -p /data/db1

sudo mkdir -p /data/db2

sudo mkdir -p /data/db3

2. 编辑MongoDB配置文件:

sudo vi /etc/mongod.conf

注释掉bindIP参数,然后加入如下内容:

replication:

oplogSizeMB: 100

replSetName: myReplSet

storage:

dbPath: /data/db1

systemLog:

destination: file

path: /var/log/mongodb/mongod.log

logAppend: true

net:

port: 27017

上面的配置指定了ReplicaSet的名称为myReplSet,Oplog的大小为100MB,数据存储路径为/data/db1,而日志文件的路径则指定为/var/log/mongodb/mongod.log。

3. 复制mongodb.conf文件到/db2和/db3路径下,修改数据存储目录:

sudo cp /etc/mongod.conf /etc/mongod2.conf

sudo cp /etc/mongod.conf /etc/mongod3.conf

sudo vi /etc/mongod2.conf

sudo vi /etc/mongod3.conf

更改存储路径:

sudo vi /etc/mongod2.conf

dbPath:/data/db2

sudo vi /etc/mongod3.conf

dbPath: /data/db3

4. 重启MongoDB服务,启动副本集:

sudo service mongod stop

sudo service mongod restart

mongo 127.0.0.1:27017

rs.initiate({

_id: "myReplSet",

members: [

{ _id: 0, host: "localhost:27017" },

{ _id: 1, host: "localhost:27018" },

{ _id: 2, host: "localhost:27019" }

]

})

rs.status()

上面的代码分别为:停止MongoDB服务,启动MongoDB服务,连接MongoDB,初始化ReplicaSet,查看ReplicaSet状态。

三、测试

1. 查看ReplicaSet的状态:

mongo 127.0.0.1:27017

rs.status()

2. 在主节点中创建一个文档:

db.test.insert({name:"MongoDB ReplicaSet"})

3. 在从节点中查看是否同步成功:

mongo --port 27018

use test

db.test.find().pretty()

小结

如此,在这个过程中,我们使用了ReplicaSet来实现高可用集群的搭建。但是,这里还有很多需要注意的问题,比如数据的同步、复制等,这些需要完整的实践才能更好的掌握,但是我们希望本篇文章能够带给读者足够的知识来搭建MongoDB高可用集群。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

数据库标签