Debian环境下MongoDB集群搭建步骤
导读:Debian环境下MongoDB集群搭建步骤(以副本集为例) 一、准备工作 服务器要求:至少需要3台Debian服务器(物理机或虚拟机),用于组成副本集(MongoDB高可用性的最小节点数)。确保服务器之间网络互通,且防火墙开放对应端口(...
Debian环境下MongoDB集群搭建步骤(以副本集为例)
一、准备工作
- 服务器要求:至少需要3台Debian服务器(物理机或虚拟机),用于组成副本集(MongoDB高可用性的最小节点数)。确保服务器之间网络互通,且防火墙开放对应端口(默认27017)。
- 系统更新:在所有服务器上执行以下命令,确保系统包为最新版本:
sudo apt update & & sudo apt upgrade -y
二、安装MongoDB
- 导入MongoDB官方GPG密钥(用于验证软件包完整性):
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add - - 添加MongoDB官方APT源(以Debian 11 Bullseye为例,若使用Debian 10 Buster,需将
bullseye替换为buster):echo "deb [arch=amd64,arm64] https://repo.mongodb.org/apt/debian bullseye/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list - 安装MongoDB:
sudo apt update sudo apt install -y mongodb-org - 启动MongoDB服务并设置开机自启:
sudo systemctl start mongod sudo systemctl enable mongod
三、配置MongoDB副本集
1. 修改配置文件
编辑MongoDB主配置文件(/etc/mongod.conf),添加或修改以下关键参数:
storage:
dbPath: /var/lib/mongodb # 数据存储路径(需提前创建:sudo mkdir -p /var/lib/mongodb)
journal:
enabled: true # 启用日志(确保数据持久化)
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log # 日志路径(需提前创建:sudo mkdir -p /var/log/mongodb)
net:
port: 27017 # 监听端口(默认27017)
bindIp: 0.0.0.0 # 允许所有IP访问(生产环境建议限制为节点IP)
replication:
replSetName: rs0 # 副本集名称(所有节点需一致)
保存后重启MongoDB服务使配置生效:
sudo systemctl restart mongod
2. 初始化副本集
连接到任意一个MongoDB节点(如node1)的shell:
mongo --host <
node1_ip>
--port 27017
在shell中执行初始化命令(将<
node1_ip>
、<
node2_ip>
、<
node3_ip>
替换为实际节点IP):
rs.initiate({
_id: "rs0",
members: [
{
_id: 0, host: "<
node1_ip>
:27017" }
,
{
_id: 1, host: "<
node2_ip>
:27017" }
,
{
_id: 2, host: "<
node3_ip>
:27017" }
]
}
)
初始化成功后会返回"ok": 1。
3. 验证副本集状态
在mongo shell中执行以下命令,查看副本集节点状态:
rs.status()
正常情况下,应显示所有节点处于SECONDARY或PRIMARY状态(其中一个节点会自动选举为PRIMARY,负责写操作)。
四、(可选)配置副本集安全性
1. 创建密钥文件(用于节点间认证)
在所有节点上生成相同的密钥文件(需保密):
openssl rand -base64 756 >
/etc/mongodb-keyfile
sudo chmod 600 /etc/mongodb-keyfile
2. 配置MongoDB使用密钥文件
编辑/etc/mongod.conf,添加以下配置:
security:
keyFile: /etc/mongodb-keyfile
重启所有节点的MongoDB服务:
sudo systemctl restart mongod
3. 将密钥文件复制到所有节点
使用scp将node1的密钥文件复制到node2和node3:
scp /etc/mongodb-keyfile username@node2_ip:/etc/mongodb-keyfile
scp /etc/mongodb-keyfile username@node3_ip:/etc/mongodb-keyfile
4. 重新初始化副本集(若已初始化过)
若之前已初始化副本集,需先删除数据目录(/var/lib/mongodb),再重新执行初始化步骤。
五、(可选)扩展为分片集群
若需要更高的数据量和性能,可将副本集扩展为分片集群(包含Config Server、Shard Server、Mongos Router)。以下是简要步骤:
- 配置Config Server:部署3个Config Server副本集(存储集群元数据)。
- 配置Shard Server:每个Shard为一个副本集(存储实际数据分片)。
- 配置Mongos Router:启动mongos进程(客户端请求入口,负责路由到对应分片)。
- 添加Shard到集群:通过mongos连接集群,执行
sh.addShard()添加分片。 - 启用分片:对需要分片的数据库和集合执行
sh.enableSharding()和sh.shardCollection()。
详细步骤可参考MongoDB官方文档或之前的分片配置指南。
注意事项
- 生产环境中,建议将
bindIp设置为节点实际IP,而非0.0.0.0,并通过防火墙限制访问。 - 副本集节点数量建议为奇数(3或5),以保证选举机制正常运行。
- 定期备份数据(可使用
mongodump工具),并测试恢复流程。 - 监控集群状态(使用
mongostat、mongotop或第三方工具如Prometheus+Granafa)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian环境下MongoDB集群搭建步骤
本文地址: https://pptw.com/jishu/740881.html
