主备切换方法

注意!
灾难恢复能力在 YMatrix 6.0.0 版本中仅作为实验性功能

当灾难发生时,若主集群侧所有机器物理不可用,此时用户只能在备份集群侧进行操作。

主备切换完成后,备份集群的数据内容不在与主集群保持一致,且无法再次切换回备份集群角色。

操作备份集群

  1. 在备份集群的 Master 机器,以 mxadmin 的用户身份,执行 mxdr switchmxdr switch -a 命令进行主备切换。

    a. 若使用 mxdr switch 进行切换的过程中,会产生以下对话,需再次确认是否进行主备切换。

     Continue promoting cluster for disaster recovery to normal cluster? Yy|Nn (default=N):

    b. 若使用 mxdr switch -a 进行切换,则可以跳过上述的对话确认过程。

操作 Publisher

  1. 在 Publisher 机器,以 mxadmin 用户身份执行以下命令,以获取 supervisor 管理的 Publisher 的 name
supervisorctl status

输出结果如下图所示,本例中 namepublisher_5V967HARnCHfRMTeyiLQgS

dr_switch_1

  1. 获取 name 之后,执行以下命令用来停止 Publisher
supervisorctl stop publisher_5V967HARnCHfRMTeyiLQgS
  1. 最后执行以下命令,检查 Publisher 状态是否变为 exited
supervisorctl status

示例:

dr_switch_2

切换后的数据库集群使用

  • 灾难恢复切换后,备份集群的 YMatrix 数据库集群切换为主集群角色提供正常服务,此时该集群的使用方式与正常 YMatrix 数据库集群使用方式一致。
  • 数据库服务的应用可以切换连接至主备切换后的主集群继续进行正常服务。
  • 如果对集群有高可用需求,可以添加 standby 和 mirror segments 来实现 YMatrix 数据库集群的高可用功能。

备注

命令行工具

该部分提供了有关灾难恢复功能的命令行操作工具。

  • mxdr

    mxdr 命令用于运行 Subscriber 和 Publisher,以及控制备份数据库集群的切换。

      Usage:
        mxdr [flags]
        mxdr [command]
    
      Available Commands:
        completion  Generate the autocompletion script for the specified shell
        help        Help about any command
        switch      Promote disaster recovery cluster
    
      Flags:
        -c, --config-file string   path of the configuration file to start up
        -h, --help                 help for mxdr
        -s, --shard-cnt int        number of shards of the source database cluster
        -v, --version              version for mxdr
  • mxbox deployer dr

    mxbox deployer dr 用于部署灾难恢复组件和备份集群。

      Usage:
        mxbox deployer dr [command]
    
      Available Commands:
        pub         Publisher deployer for dr
    
      Flags:
        -h, --help   help for dr
    
      Usage:
        mxbox deployer dr pub [command]
    
      Available Commands:
        config      Generate a config template file
        plan        Generate plan for migrating host.
        setup       Execute steps to deploy physical publisher.
    
      Flags:
        -h, --help   help for pub

已知问题

  • 不支持增加分片的集群扩容
    目前的灾难恢复功能尚未支持数据库集群拓扑发生变化的情况,因此不支持增加分片的集群扩容。

  • 备份集群的只读查询结果不保证一致性
    备份集群的数据一致性只在全局一致性点处有效。
    备份集群在在灾难发生进行主备切换后,会切换至一个全局一致性点,以保证备份数据的最终一致性。但在数据备份过程中,备份集群虽然支持只读查询,但由于各个数据片的日志播放同步粒度只控制在了全局一致性点的位置,并不能保证任意时刻查询结果的正确性。