我有一个基本的 MySQL NDB 集群正在运行——它运行良好。Manager、Data、SQL节点都OK。1 个管理器,2 个 SQL 节点,4 个数据节点。2 个数据节点来自初始创建,2 个是我要添加的节点。
在环境方面,这就是我所拥有的(适用于所有节点)。
OS: CentOS 7
SELinux: disabled
firewalld : not installed
MySQL version: mysql-5.6.28
NDB: ndb-7.4.10
配置视图如下所示:
[root@mysql-ndb-manager ~]# ndb_mgm -e "SHOW"
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 4 node(s)
id=2 @10.133.16.108 (mysql-5.6.28 ndb-7.4.10, Nodegroup: 0, *)
id=3 @10.133.16.196 (mysql-5.6.28 ndb-7.4.10, Nodegroup: 0)
id=6 @10.133.16.121 (mysql-5.6.28 ndb-7.4.10, Nodegroup: 1)
id=7 @10.133.16.112 (mysql-5.6.28 ndb-7.4.10, Nodegroup: 1)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @10.133.16.179 (mysql-5.6.28 ndb-7.4.10)
[mysqld(API)] 3 node(s)
id=4 @10.133.16.117 (mysql-5.6.28 ndb-7.4.10)
id=5 @10.133.16.180 (mysql-5.6.28 ndb-7.4.10)
id=8 (not connected, accepting connect from any host)
NoOfReplicas 设置为 2,所以这个节点数应该没问题。我很快意识到将 NoOfReplicas 设置为 2 意味着添加一个额外的数据节点不起作用。
如您所见,我有一个可用的节点 ID (8),可以分配给 ndb_desc 等。
我要添加的新节点:
IDs: 6 & 7
据我所知,它们配置正确,但没有关于它们的数据。它们已正确启动并被列为集群的一部分。这是重新分配过程对我不起作用。
这些文档非常容易理解,即它们需要使用 ndb_desc 连接到管理器并更改表结构,以便将数据分发到新节点。
当我运行所需的命令时,我得到这个:
[root@mysql-ndb-manager ~]# ndb_desc -c 10.133.16.179:1186 my_table -d
appdb -p --ndb-nodeid=8
Unable to connect to management server.
NDBT_ProgramExit: 1 - Failed```
我见过其他人有类似的问题,而且几乎总是缺少可以分配的节点 ID。据我所知,我的情况并非如此。
我试过连接管理员的 IP 地址,localhost,127.0.0.1。
我试过本地和远程。我试过使用文档中的确切命令,即它们的数据库和表名,但这不起作用(我猜是预期的)。
我现在唯一的数据如下:
Database: `appdb`
Table: `my_table` (ID auto_increment and `name` char(25))
Data: 14 rows, random names
数据在旧/工作节点之间毫无问题地复制,即我可以在其中一个节点上创建数据库或运行任何 SQL 命令,并且更改会立即反映在另一个节点上。离线节点按预期显示为离线,并在我将它们重新启动时显示为在线。
我还有一个滚动重启脚本,它可以正常工作,所以看起来集群方面没问题。
最后,这是我经理的配置文件:
[ndb_mgmd default]
DataDir=/var/lib/mysql-cluster
[mgm]
HostName=10.133.16.179
[ndbd default]
NoOfReplicas=2
DataMemory=256M
IndexMemory=128M
DataDir=/var/lib/mysql-cluster
[ndbd]
HostName=10.133.16.108
[ndbd]
HostName=10.133.16.196
[mysqld]
HostName=10.133.16.117
[mysqld]
HostName=10.133.16.180
[ndbd]
HostName=10.133.16.121
[ndbd]
HostName=10.133.16.112
[mysqld]
还有什么可能导致这个?
谢谢!