多个SQL节点。以下是与使用多个MySQL服务器作为NDB集群SQL节点有关的问题,并且是特定于NDBCLUSTER
存储引擎:
存储的程序没有分发。类支持的表都支持存储过程、存储函数、触发器和计划事件
NDB
存储引擎,但是这些有不在作为集群SQL节点的MySQL服务器之间自动传播,并且必须在每个SQL节点上分别重新创建。看到NDB集群中的存储程序.没有分布式表锁。一个
锁表
只对发出锁的SQL节点有效;集群中没有其他SQL节点”看到”这个锁。对于任何语句发出的锁也是如此,该语句将锁表作为其操作的一部分。(参见下一项的例子。)ALTER TABLE操作。
ALTER TABLE
当运行多个MySQL服务器(SQL节点)时,没有完全锁定。(如前文所述,NDB集群不支持分布式表锁。)
如果有任何管理服务器运行在同一主机上,则必须在连接字符串中为节点提供显式id,因为节点id的自动分配不能跨同一主机上的多个管理服务器进行。如果每个管理服务器都位于不同的主机上,则不需要这样做。
当管理服务器启动时,它首先检查同一NDB集群中是否有其他管理服务器,在成功连接到其他管理服务器时使用其配置数据。这意味着管理服务器
——重新加载
而且——初始
启动选项将被忽略,除非管理服务器是唯一正在运行的服务器。这也意味着,当一个有多个管理节点的NDB集群执行滚动重启时,当(且仅当)管理服务器是该NDB集群中唯一运行的管理服务器时,管理服务器读取自己的配置文件。看到第21.5.5节“NDB集群滚动重启”,以查询更多资料。
多个网络地址。每个数据节点不支持多个网络地址。使用这些方法容易导致问题:在数据节点故障的情况下,SQL节点等待数据节点故障的确认,但永远接收不到它,因为到该数据节点的另一条路由仍然是打开的。这可以有效地使集群不可操作。
可以使用多个网络硬件接口(如以太网卡),但这些数据节点必须绑定到相同的地址。这也意味着不可能使用多个(tcp)
的每个连接的节config.ini
文件。看到第21.3.3.10节,“NDB集群TCP/IP连接”,以查询更多资料。