• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • InnoDB ReplicaSet简介

    AdminAPI包括对InnoDB ReplicaSet的支持,使您能够以类似于InnoDB集群的方式管理一组运行基于异步GTID的复制的MySQL实例。InnoDB ReplicaSet由一个主副本和多个副副本(传统上称为MySQL复制主副本和从属副本)组成。您可以使用ReplicaSet对象和AdminAPI操作,例如检查InnoDB ReplicaSet的状态,并在发生故障时手动故障转移到新的主数据库。与InnoDB群集类似,MySQL Router支持针对InnoDB ReplicaSet进行引导,这意味着您可以自动配置MySQL Router以使用InnoDB ReplicaSet,而无需手动配置文件。这使InnoDB ReplicaSet成为启动和运行MySQL复制和MySQL Router的快速简便方法,使其非常适合横向扩展读取,并在不需要InnoDB集群提供的高可用性的用例中提供了手动故障转移功能。

    除了使用AdminAPI部署InnoDB ReplicaSet之外,您还可以采用现有的复制设置。AdminAPI根据复制设置的拓扑配置InnoDB ReplicaSet。一旦采用了复制设置,就可以与从头开始部署的InnoDB ReplicaSet一样的方式对其进行管理。这使您可以利用AdminAPI和MySQL Router,而无需创建新的副本集。有关更多信息,请参见“采用现有的复制设置”。

    InnoDB复制集限制

    与InnoDB群集相比,InnoDB ReplicaSet具有多个限制,因此,建议您尽可能部署InnoDB群集。通常,InnoDB ReplicaSet本身不能提供高可用性。InnoDB ReplicaSet的限制包括:

    • 没有自动故障转移。如果主服务器不可用,则需要使用AdminAPI手动触发故障转移,然后才能再次进行任何更改。但是,辅助实例仍然可用于读取。
    • 无法防止因意外停止或不可用而导致部分数据丢失。暂停之前尚未应用的事务可能会丢失。
    • 无法防止崩溃或不可用后出现不一致情况。如果故障转移在辅助节点仍可用的情况下提升了辅助节点(例如,由于网络分区),则可能会因脑裂而引起不一致。