需要更改副本集的 mongo 辅助节点中的存储数据库路径

Need to change storage db path in mongo secondary node of replica set

我们有 mongo 数据库的 3 个成员副本集(MongoDB 服务器版本:4.2.9)。其中一个成员(辅助成员)在默认存储数据库路径上 运行 并且此存储空间快满了。我们需要更改 3 成员副本集的特定辅助节点的路径。我是 mongodb 的新手。我需要你的专业知识来完成这项任务。

MongoDB服务器版本:4.2.9 OS 版本:CentOS Linux 发布 7.8.2003(核心)。

此致,


选项 1:(保留当前已同步的数据)

  1. 停止 mongod 服务:

    mongo --host xxxx --port yyyy  
    use admin
    db.shutdownServer()
    
  2. 将数据从旧位置复制到新位置:

    cp -R /oldPath/ /newPath/
    
  3. 更改 /etc/mongodb.conf 中的 dbPath 以指向新位置。

  4. 启动mongodb服务。


选项 2) 从其他成员开始同步成员。

与选项 1) 相同,只是省略了点 2) 只是您需要稍等片刻,直到其他成员的成员初始化同步(复制数据),这取决于数据大小和压缩。


选项 3) 更好的高可用性:

  1. 从 PRIMARY 成员添加另一个将使用新路径的成员:

    rs.add("newMember:XXXX")
    
  2. 等待新成员初始化同步

  3. 删除旧的 SECONDARY 成员:

    rs.remove("oldMember:YYYY")
    
  4. 清理旧文件和配置。 (此选项的一个小缺点是,如果在同一主机上,您将需要更改新成员的端口)

选项 2) 似乎最适合您的情况...