Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  ...  /  Limitations Relating to Multiple NDB Cluster Nodes

25.2.7.10 多个 NDB 集群节点的限制

多个 SQL 节点。 下面是使用多个 MySQL 服务器作为 NDB 集群 SQL 节点时的限制,这些限制特定于 NDBCLUSTER 存储引擎:

  • 存储程序不分布。 存储过程、存储函数、触发器和计划事件都支持使用 NDB 存储引擎的表,但是这些不 自动 在 MySQL 服务器之间传播,必须在每个 SQL 节点上单独重新创建。请参阅 NDB 集群中的存储例程和触发器

  • 没有分布式表锁。 LOCK TABLES 语句或 GET_LOCK() 调用仅适用于发出锁定的 SQL 节点;集群中的其他 SQL 节点不 看到 这个锁。这适用于任何作为操作的一部分锁定表的语句。(见下一项。)

    NDBCLUSTER 中实现表锁可以在 API 应用程序中完成,并确保所有应用程序都从设置 LockModeLM_ReadLM_Exclusive 开始。有关如何执行此操作的更多信息,请参阅 NdbOperation::getLockHandle()NDB 集群 API 指南 中的描述。

  • ALTER TABLE 操作。 ALTER TABLE 在运行多个 MySQL 服务器(SQL 节点)时不完全锁定。(如前一项所讨论的,NDB 集群不支持分布式表锁。)

多个管理节点。 使用多个管理服务器时:

  • 如果任何管理服务器在同一主机上运行,则必须在连接字符串中为节点分配明确的 ID,因为自动分配节点 ID 在同一主机上的多个管理服务器之间不起作用。这不是必需的,除非每个管理服务器都驻留在不同的主机上。

  • 当管理服务器启动时,它首先检查同一 NDB 集群中的其他管理服务器,并在成功连接到其他管理服务器后使用其配置数据。这意味着管理服务器 --reload--initial 启动选项将被忽略,除非管理服务器是唯一运行的。在执行 NDB 集群的滚动重新启动时,管理服务器将读取其自己的配置文件,只有当它是唯一运行的管理服务器时。请参阅 第 25.6.5 节,“执行 NDB 集群的滚动重新启动”,以获取更多信息。

多个网络地址。 不支持每个数据节点的多个网络地址。使用这些可能会导致问题:在数据节点失败时,SQL 节点等待确认数据节点关闭,但从不收到确认,因为到该数据节点的另一个路由仍然打开。这可能会使集群不可用。

Note

可以使用单个数据节点的多个网络硬件 接口(例如以太网卡),但这些必须绑定到同一个地址。这也意味着不能在 config.ini 文件中使用多个 [tcp] 部分。请参阅 第 25.4.3.10 节,“NDB 集群 TCP/IP 连接”,以获取更多信息。