MongoDB 集群的安装部署详细流程
# 前言
MongoDB 是一个基于分布式架构的 NoSQL 数据库,它可以通过复制集和分片集群实现高可用和扩展性。本文详细介绍如何在多个节点上部署 MongoDB 集群,包括复制集和分片集群的安装配置过程。
# 环境准备
假设我们有三台服务器,IP 地址分别为:
192.168.1.101
192.168.1.102
192.168.1.103
每台服务器的 MongoDB 数据存储路径为 /data/mongodb
,日志路径为 /var/log/mongodb
。MongoDB 安装路径为 /usr/local/mongodb
。
# 1. 安装 MongoDB
# 1.1 下载 MongoDB
在每个节点上下载 MongoDB 二进制文件:
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-6.0.4.tgz
tar -zxvf mongodb-linux-x86_64-6.0.4.tgz
sudo mv mongodb-linux-x86_64-6.0.4 /usr/local/mongodb
1
2
3
2
3
# 1.2 配置环境变量
编辑 /etc/profile
文件,添加 MongoDB 路径:
export PATH=/usr/local/mongodb/bin:$PATH
1
然后执行以下命令使环境变量生效:
source /etc/profile
1
# 2. 配置 MongoDB 复制集
复制集提供数据冗余和故障转移功能,保证 MongoDB 数据的高可用性。我们将三台服务器配置成复制集模式。
# 2.1 创建数据和日志目录
在每台服务器上创建 MongoDB 数据和日志目录:
sudo mkdir -p /data/mongodb
sudo mkdir -p /var/log/mongodb
sudo chown -R mongodb:mongodb /data/mongodb /var/log/mongodb
1
2
3
2
3
# 2.2 配置 MongoDB 配置文件
在每台服务器上编辑 MongoDB 配置文件 /etc/mongod.conf
:
# /etc/mongod.conf
systemLog:
destination: file
path: "/var/log/mongodb/mongod.log"
logAppend: true
storage:
dbPath: "/data/mongodb"
journal:
enabled: true
net:
bindIp: 0.0.0.0
port: 27017
replication:
replSetName: "rs0"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
# 2.3 启动 MongoDB 服务
在每台服务器上启动 MongoDB:
mongod --config /etc/mongod.conf --fork
1
# 2.4 初始化复制集
在 192.168.1.101
节点上连接 MongoDB 并初始化复制集:
mongo --host 192.168.1.101
rs.initiate({
_id: "rs0",
members: [
{ _id: 0, host: "192.168.1.101:27017" },
{ _id: 1, host: "192.168.1.102:27017" },
{ _id: 2, host: "192.168.1.103:27017" }
]
})
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
可以通过 rs.status()
查看复制集状态。
# 3. 配置 MongoDB 分片集群
分片集群可以通过将数据水平拆分到多个节点上来实现扩展性。
# 3.1 配置分片服务器
假设我们有两台服务器用作分片,IP 地址分别为 192.168.1.104
和 192.168.1.105
。
在这两台服务器上分别安装并配置 MongoDB,类似于复制集的安装步骤。配置文件 /etc/mongod.conf
应该如下:
# /etc/mongod.conf
systemLog:
destination: file
path: "/var/log/mongodb/mongod.log"
logAppend: true
storage:
dbPath: "/data/mongodb"
journal:
enabled: true
net:
bindIp: 0.0.0.0
port: 27018
sharding:
clusterRole: shardsvr
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
启动分片服务器:
mongod --config /etc/mongod.conf --fork
1
# 3.2 配置路由服务器
在另一台服务器上作为路由服务器,编辑 MongoDB 配置文件 /etc/mongos.conf
:
# /etc/mongos.conf
systemLog:
destination: file
path: "/var/log/mongodb/mongos.log"
logAppend: true
net:
bindIp: 0.0.0.0
port: 27017
sharding:
configDB: rs0/192.168.1.101:27017,192.168.1.102:27017,192.168.1.103:27017
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
启动路由服务器:
mongos --config /etc/mongos.conf --fork
1
# 3.3 添加分片到集群
连接路由服务器并添加分片:
mongo --host 192.168.1.101 --port 27017
sh.addShard("rs0/192.168.1.104:27018")
sh.addShard("rs0/192.168.1.105:27018")
1
2
3
2
3
# 4. 验证安装
通过以下命令验证分片和复制集是否正确配置:
sh.status() # 查看分片状态
rs.status() # 查看复制集状态
1
2
2
上次更新: 10/2/2024
- 02
- Flink 集群部署指南 原创09-20
- 03
- MongoDB 集群Config Server 复制集的工作原理09-14