Configurei um cluster ndb com 7 nós. 3 nós de dados em seus próprios servidores e 2 nós de gerenciamento, cada um com um nó sql em 2 servidores. Eu reduzi o que acho que é o meu problema. Meu cluster parece não conseguir eleger um nó de dados presidente, mas não tenho ideia de como definir as regras eleitorais. Alguém pode me ajudar com minha configuração? Minha configuração está errada? Obrigado. Abaixo estão todos os detalhes.
Aqui está a configuração do meu nó de gerenciamento:
[ndbd default]
NoOfReplicas=3
#DataMemory=2048M
#IndexMemory=512M
#Management Nodes
[ndb_mgmd]
hostname=192.168.0.1
NodeId=1
datadir=/var/lib/mysql-cluster
[ndb_mgmd]
hostname=192.168.0.2
NodeId=2
datadir=/var/lib/mysql-cluster
#Data Nodes
[ndbd]
hostname=192.168.0.3
NodeId=3
datadir=/usr/local/mysql/data
[ndbd]
hostname=192.168.0.4
NodeId=4
datadir=/usr/local/mysql/data
[ndbd]
hostname=192.168.0.5
NodeId=5
datadir=/usr/local/mysql/data
#front end servers
[mysqld]
hostname=192.168.0.1
#NodeId=11
[mysqld]
hostname=192.168.0.2
#NodeId=22
Aqui está minha configuração do nó sql - my.cnf
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
[mysqld]
ndbcluster
[mysql_cluster]
ndb-connectstring=192.168.0.1,192.168.0.2
Aqui está a string de conexão do nó de dados
[mysql_cluster]
# Options for NDB Cluster processes:
ndb-connectstring=192.168.0.1,192.168.0.2
Isto é o que ndb_mgm> show está dizendo
id=3 @192.168.0.3 (mysql-8.3.0 ndb-8.3.0, starting, Nodegroup: 0)
id=4 @192.168.0.4 (mysql-8.3.0 ndb-8.3.0, starting, Nodegroup: 0)
id=5 @192.168.0.5 (mysql-8.3.0 ndb-8.3.0, starting, Nodegroup: 0)
[ndb_mgmd(MGM)] 2 node(s)
id=1 @192.168.0.1 (mysql-8.3.0 ndb-8.3.0)
id=2 @192.168.0.2 (mysql-8.3.0 ndb-8.3.0)
[mysqld(API)] 2 node(s)
id=6 (not connected, accepting connect from 192.168.0.1)
id=7 (not connected, accepting connect from 192.168.0.2)
Os nós 3,4 e 5 estão presos no status
ndb_mgm> 3 status
Node 3: starting (Last completed phase 0) (mysql-8.3.0 ndb-8.3.0)
ndb_mgm> 4 status
Node 4: starting (Last completed phase 0) (mysql-8.3.0 ndb-8.3.0)
ndb_mgm> 5 status
Node 5: starting (Last completed phase 0) (mysql-8.3.0 ndb-8.3.0)
Os nós SQL 6 (11) e 7 (22) não serão conectados.
Os nós SQL e de dados não têm nada em seus logs de erros. O log do cluster para os nós de gerenciamento repete isso a cada minuto:
TIME [MgmtSrvr] INFO -- Alloc node id 6 rejected, no new president yet
TIME [MgmtSrvr] WARNING -- Unable to allocate nodeid for API at 192.168.0.1. Returned error: 'Cluster not ready for nodeid allocation.'
TIME [MgmtSrvr] INFO -- Node 3: Initial start, waiting for 4 and 5 to connect, nodes [ all: 3, 4 and 5 connected: 3 no-wait: ]
TIME [MgmtSrvr] INFO -- Node 5: Initial start, waiting for 3 and 4 to connect, nodes [ all: 3, 4 and 5 connected: 5 no-wait: ]
TIME [MgmtSrvr] INFO -- Node 4: Initial start, waiting for 3 and 5 to connect, nodes [ all: 3, 4 and 5 connected: 4 no-wait: ]