Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


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

25.2.7.10 多个 NDB Cluster 节点相关的限制

多个 SQL 节点。 下面是使用多个 MySQL 服务器作为 NDB Cluster SQL 节点相关的问题,特指NDBCLUSTER存储引擎:

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

  • 没有分布式表锁定。 LOCK TABLES 语句或GET_LOCK() 调用只能在锁定语句所在的 SQL 节点上生效;其他 SQL 节点在集群中不见这个锁定。这是对任何语句的锁定操作的真实情况。 (请参阅下一个项目以获取示例。)

    NDBCLUSTER中实现表锁定可以通过API应用程序来实现,并确保所有应用程序都设置LockModeLM_ReadLM_Exclusive。关于如何实现的更多信息,请参阅NdbOperation::getLockHandle()NDB Cluster API Guide中的描述。

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

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

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

  • 当管理服务器启动时,它首先检查是否有其他在同一个 NDB 集群中的管理服务器,并且在成功连接到其他管理服务器后使用其配置数据。这意味着,管理服务器--reload--initial启动选项除非是唯一运行的管理服务器否则将被忽略。它也意味着,在对多个管理节点进行 NDB 集群的滚动重启时,管理服务器读取自己的配置文件,如果(且仅如果)它是这个 NDB 集群中的唯一管理服务器。在第25.6.5节,“滚动重启 NDB 集群”中有更多信息。

多个网络地址 每个数据节点不支持多个网络地址。使用这些可能会导致问题:在数据节点故障时,SQL 节点等待确认该数据节点下线,但从未收到确认,因为另一个路由仍然保持打开状态。这可以使集群处于不可用状态。

Note

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