酷!學園
技術討論區 => Linux 討論版 => 主題作者是: noki 於 2020-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 新增嗎?
萬分感謝。
-
自問自答一下,
新增data node 好像要偶數機器量才能加入。
研讀了mysql官網的資料 NoOfReplicas 這個參數只接受 1 ~ 2 的數值,
新增一台data node,即使 NoOfReplicas 改為 3 也是會報錯(要維持在1 或2)。
所以官網及網路上的資料才會都以新增兩台 node 為範例....
以上是小弟這幾天查詢網上資料的結果,若有錯誤請各位大大不吝糾正。