酷!學園

技術討論區 => Linux 討論版 => 主題作者是: noki 於 2020-02-08 14:11

主題: MySQL Cluster 新增一台node問題
作者: noki2020-02-08 14:11
各位大大好,
最近小弟因工作關係開始摸索 mysql cluster。
我用三台 vm 架了一個簡單的 cluster 環境,
mgm :10.0.2.11
node1: 10.0.2.12
node2: 10.0.2.13
sql1: 10.0.2.12
sql2: 10.0.2.13

config.ini:
[ndb_mgmd default]
DataDir = /var/lib/mysql-cluster

[ndb_mgmd]
NodeId = 1
HostName = 10.0.2.11

[ndbd default]
NoOfReplicas = 3
DataMemory = 60M
IndexMemory = 16M
DataDir = /var/lib/mysql-cluster

[ndbd]
NodeId = 2
HostName = 10.0.2.12

[ndbd]
NodeId = 3
HostName = 10.0.2.13

[mysqld]
NodeId = 12
HostName = 10.0.2.12

[mysqld]
NodeId = 13
HostName = 10.0.2.13

my.cnf:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

symbolic-links=0

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

ndbcluster
ndb-connectstring = 10.0.2.11

[mysql_cluster]
ndb-connectstring = 10.0.2.11

這環境 mysql 工作正常也有做 replication 同步。
[ndbd(NDB)]     2 node(s)
id=2    @10.0.2.12  (mysql-5.7.27 ndb-7.5.15, Nodegroup: 0)
id=3    @10.0.2.13  (mysql-5.7.27 ndb-7.5.15, Nodegroup: 0, *)

[ndb_mgmd(MGM)] 1 node(s)
id=1    @10.0.2.11  (mysql-5.7.27 ndb-7.5.15)

[mysqld(API)]   2 node(s)
id=12   @10.0.2.12  (mysql-5.7.27 ndb-7.5.15)
id=13   @10.0.2.13  (mysql-5.7.27 ndb-7.5.15)

現在問題出現了,小弟要添加一台機器上去(也是同時跑 data node 與 sql node),
在 config.ini 中添加新機器資料進去,my.cnf 檔案與其他兩台內容相同。
但是在重啟 ndb_mgmd 時,會出現錯誤:
2020-02-08 13:49:34 [MgmtSrvr] ERROR    -- at line 36: Nodegroup 1 has 1 members, NoOfReplicas=2
2020-02-08 13:49:34 [MgmtSrvr] ERROR    -- Could not load configuration from '/var/lib/mysql-cluster/config.ini'
再修改 NoOfReplicas = 3 後,可以啟動 ndb_mgmd,但是裡面的 node 全部斷線了。
但是要重啟舊機器上的 ndbd,又會出現錯誤:
ndb_mgm> Node 2: Forced node shutdown completed. Occured during startphase 1. Caused by error 2350: 'Invalid configuration received from Management Server(Configuration error). Permanent error, external action needed'.

小弟有上網爬過,搜尋到的文章都說的不清楚。NoOfReplicas 應該要設多少小弟仍一無所知。
請問有經驗的大大可以協助小弟在不損資料庫資料下完成 mysql cluster的 node 新增嗎?
萬分感謝。
主題: Re: MySQL Cluster 新增一台node問題
作者: noki2020-02-12 09:37
自問自答一下,
新增data node 好像要偶數機器量才能加入。

研讀了mysql官網的資料 NoOfReplicas 這個參數只接受 1 ~ 2 的數值,
新增一台data node,即使 NoOfReplicas 改為 3 也是會報錯(要維持在1 或2)。
所以官網及網路上的資料才會都以新增兩台 node 為範例....

以上是小弟這幾天查詢網上資料的結果,若有錯誤請各位大大不吝糾正。