OPTIONS
翻译或纠错本页面

迁移配置服务器到不同的域名

概述

集群使用三个配置服务器存储集群的元信息,只有这三个配置服务器都可用时,集群的元信息才可以概念,包括数据块分裂与数据块迁移.如果一个配置服务器不能访问或者出现故障,应该尽快替换掉.

这篇教程将 doc:集群 </core/sharding> 中的一个 配置服务器 迁移到一个使用不同域名的新系统中.只有在配置服务器不能使用原来的域名时使用,尽可能不要替换配置服务器的域名,参见 迁移配置服务器到相同的域名机器上.

注意事项

改变 配置服务器的 的域名 需要宕机时间 ,并且需要充气集群中的每个实例.

在迁移配置服务器时,要确保所有的 mongos 都配置了三台配置服务器,且这三台配置服务器在 configDB 配置中使用了相同的顺序.

过程

  1. 暂时禁用集群的均衡,参见 禁用均衡器 获得更多细节.

  2. 关闭配置服务器

    这使得集群所有的配置服务器变得只读.

  3. 拷贝旧配置服务器的 dbPath 目录到新的配置服务器上.

    举例

    比如,为了将 dbPath 拷贝到名为 mongodb.config2.example.net 的机器上,你需要使用像这样的命令:

    rsync -az /data/configdb mongodb.config2.example.net:/data/configdb
    
  4. 启动新系统的配置服务器,默认的指令为:

    mongod --configsvr
    
  5. 关闭集群中所有的MongoDB实例,包括:

    • 分片中的 mongod复制集.

    • 其他几个 :ref:` 配置服务器 <config-database>`.

    • mongos 实例.

  6. 重启分片上所有的 mongod 实例.

  7. 更新每个 mongosconfigDB 配置.

  8. 重启所有的 mongos 实例.

  9. 重新启用集群的均衡过程,恢复正常的数据迁移任务.参见 禁用均衡器 章节获得管理均衡过程的更多细节.