首页主机资讯Debian环境下MongoDB集群搭建步骤

Debian环境下MongoDB集群搭建步骤

时间2025-11-03 15:33:03发布访客分类主机资讯浏览1456
导读:Debian环境下MongoDB集群搭建步骤(以副本集为例) 一、准备工作 服务器要求:至少需要3台Debian服务器(物理机或虚拟机),用于组成副本集(MongoDB高可用性的最小节点数)。确保服务器之间网络互通,且防火墙开放对应端口(...

Debian环境下MongoDB集群搭建步骤(以副本集为例)

一、准备工作

  1. 服务器要求:至少需要3台Debian服务器(物理机或虚拟机),用于组成副本集(MongoDB高可用性的最小节点数)。确保服务器之间网络互通,且防火墙开放对应端口(默认27017)。
  2. 系统更新:在所有服务器上执行以下命令,确保系统包为最新版本:
    sudo apt update &
        &
         sudo apt upgrade -y
    

二、安装MongoDB

  1. 导入MongoDB官方GPG密钥(用于验证软件包完整性):
    wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
    
  2. 添加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
    
  3. 安装MongoDB
    sudo apt update
    sudo apt install -y mongodb-org
    
  4. 启动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()

正常情况下,应显示所有节点处于SECONDARYPRIMARY状态(其中一个节点会自动选举为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. 将密钥文件复制到所有节点

使用scpnode1的密钥文件复制到node2node3

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)。以下是简要步骤:

  1. 配置Config Server:部署3个Config Server副本集(存储集群元数据)。
  2. 配置Shard Server:每个Shard为一个副本集(存储实际数据分片)。
  3. 配置Mongos Router:启动mongos进程(客户端请求入口,负责路由到对应分片)。
  4. 添加Shard到集群:通过mongos连接集群,执行sh.addShard()添加分片。
  5. 启用分片:对需要分片的数据库和集合执行sh.enableSharding()sh.shardCollection()

详细步骤可参考MongoDB官方文档或之前的分片配置指南。

注意事项

  • 生产环境中,建议将bindIp设置为节点实际IP,而非0.0.0.0,并通过防火墙限制访问。
  • 副本集节点数量建议为奇数(3或5),以保证选举机制正常运行。
  • 定期备份数据(可使用mongodump工具),并测试恢复流程。
  • 监控集群状态(使用mongostatmongotop或第三方工具如Prometheus+Granafa)。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Debian环境下MongoDB集群搭建步骤
本文地址: https://pptw.com/jishu/740881.html
MongoDB与Debian网络配置注意事项 Linux backlog管理技巧有哪些

游客 回复需填写必要信息