• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • InnoDB集群的已知限制

    本节描述了InnoDB集群的已知限制。由于InnoDB集群使用组复制,因此您还应该注意其限制,请参见“组复制限制”。

    • 如果在创建全局会话时未指定会话类型,则MySQL Shell提供自动协议检测功能,该方法会尝试首先创建NodeSession,如果失败,它将尝试创建ClassicSession。对于由三个服务器实例组成的InnoDB群集,其中有一个读写端口和两个只读端口,这可能导致MySQL Shell仅连接到一个只读实例。因此,建议在创建全局会话时始终指定会话类型。
    • 将非沙箱服务器实例(您已手动配置而不是使用的实例dba.deploySandboxInstance())添加到群集时,MySQL Shell无法将任何配置更改持久保存在实例的配置文件中。这导致以下一种或两种情况:

      1. 组复制配置不会保留在实例的配置文件中,并且在重新启动后,实例不会重新加入群集。
      2. 该实例对于群集使用无效。尽管可以使用验证实例dba.checkInstanceConfiguration(),并且MySQL Shell进行必要的配置更改以使实例可用于群集使用,但是这些更改不会保留在配置文件中,因此一旦重新启动就会丢失。

      如果仅a发生这种情况,则实例在重新启动后不会重新加入群集。

      如果b还发生这种情况,并且您发现实例在重新启动后没有重新加入群集,则dba.rebootClusterFromCompleteOutage()在这种情况下您不能使用推荐的方法使群集重新联机。这是因为该实例丢失了MySQL Shell所做的任何配置更改,并且由于这些更改未保留,因此在为集群配置之前,该实例将恢复为先前的状态。这将导致组复制停止响应,最终命令超时。

      为避免此问题,强烈建议dba.configureInstance()在将实例添加到群集之前使用,以保留配置更改。

    • --defaults-extra-fileInnoDB集群服务器实例不支持使用选项指定选项文件。InnoDB集群仅在实例上支持单个选项文件,不支持其他选项文件。因此,对于使用实例的选项文件进行的任何操作,应指定主要操作。如果要使用多个选项文件,则必须手动配置文件,并考虑到使用多个选项文件的优先规则,并确保它们已正确更新,并确保所需的设置不会被其他无法识别的选项中的选项错误地覆盖。文件。
    • 尝试使用主机名解析为与真实网络接口不匹配的IP地址的实例the hostname失败,并显示错误消息,该实例将自己的地址报告为。组复制通信层不支持此功能。在基于Debian的实例上,这意味着实例无法使用地址,例如,user@localhost因为localhost解析为不存在的IP(例如127.0.1.1)。这会影响沙盒部署的使用,沙盒部署通常在单台计算机上使用本地实例。

      一种解决方法是report_host在每个实例上配置系统变量以使用计算机的实际IP地址。检索计算机的IP并添加到每个实例的文件中。您需要确保实例随后重新启动以进行更改。report_host=IP of your machinemy.cnf