在前一篇寫過 MySQL Cluster 的安裝文件:架設 HA 高可用性:MySQL Cluster 叢集 – 7.4.11(5.6.29)
在裡面的每一台 node 都有很好的備援機制,唯獨 management node 僅有一台,雖然他僅僅是監控 cluster 而無其他用途,但身為系統人員如果要安心的放個假,睡個覺的話,management node 也加入第二台也讓 management node 也有容錯機制吧!
LAB 實驗環境:
- Add Manage Node2:172.10.0.139
- Manage Node1:172.10.0.140
- SQL Node1:172.10.0.141
- SQL Node2:172.10.0.142
- Data Node1:172.10.0.143
- Data Node2:172.10.0.144
承上篇已經有架設了一套 MySQL Cluster,將原本的架構進行延伸,增加一台 Manage Node2 (172.10.0.139)
架設第二台 Manage Node 管理者
Step.1 首先先在 Manage Node1 上面增加 Manage Node2 的連線資訊
# in Manage Node1 $ vim /var/lib/mysql-cluster/config.ini [NDBD DEFAULT] NoOfReplicas=2 DataMemory=1024M IndexMemory=256M [MYSQLD DEFAULT] [NDB_MGMD DEFAULT] DataDir=/var/lib/mysql-cluster [TCP DEFAULT] [NDB_MGMD] NodeId=1 HostName=172.10.0.140 [MYSQLD] NodeId=2 HostName=172.10.0.141 [MYSQLD] NodeId=3 HostName=172.10.0.142 [NDBD] NodeId=4 HostName=172.10.0.143 DataDir=/var/lib/mysql-cluster [NDBD] NodeId=5 HostName=172.10.0.144 DataDir=/var/lib/mysql-cluster [NDB_MGMD] NodeId=6 HostName=172.10.0.139
增加了 NodeId 6,IP 是 172.10.0.139
Step.2 讓 config 生效
# stop ndb_mgmd pid $ pkill ndb_mgmd # start ndb_mgmd with reload config $ ndb_mgmd -f config.ini --configdir=/var/lib/mysql-cluster --reload
如果你原先就已經設定過 config.ini,請一定要加上 –reload 讓他重新去抓 config.ini 使其生效
Step.3 驗證 Manage Node1 的設定正確,並且增加 nodeid 6
# in Manage node1 $ ndb_mgm -- NDB Cluster -- Management Client -- ndb_mgm> show Connected to Management Server at: localhost:1186 Cluster Configuration --------------------- [ndbd(NDB)] 2 node(s) id=3 @172.10.0.143 (mysql-5.6.29 ndb-7.4.11, Nodegroup: 0) id=4 @172.10.0.144 (mysql-5.6.29 ndb-7.4.11, Nodegroup: 0, *) [ndb_mgmd(MGM)] 1 node(s) id=1 @172.10.0.140 (mysql-5.6.29 ndb-7.4.11) id=6 (not connected, accepting connect from 172.10.0.139) [mysqld(API)] 2 node(s) id=2 @172.10.0.141 (mysql-5.6.29 ndb-7.4.11) id=3 @172.10.0.142 (mysql-5.6.29 ndb-7.4.11)
此時我只是將 Manage Node2 的設定檔加上去而已,使其允許 172.10.0.139 可以連上並且擔任 MGM
Step.4 設定 Manage Node2
和其他 Node 一樣,都需要安裝 mysql-cluster
$ wget https://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/mysql-cluster-gpl-7.4.11-linux-glibc2.5-i686.tar.gz $ tar zxvf mysql-cluster-gpl-7.4.11-linux-glibc2.5-i686.tar.gz $ mkdir /usr/local/mysql && mv mysql-cluster-gpl-7.4.11-linux-glibc2.5-i686 !$
啟動 Manage Node2 連線到 Manage Node1
# first connect mgm $ ndb_mgmd -c 172.10.0.141 --ndb-nodeid=6 --configdir=/var/lib/mysql-cluster MySQL Cluster Management Server mysql-5.6.29 ndb-7.4.11 2016-07-12 11:04:28 [MgmtSrvr] INFO -- Trying to get configuration from other mgmd(s) using 'nodeid=6,172.10.0.139:1186'... 2016-07-12 11:04:28 [MgmtSrvr] INFO -- Connected to '172.10.0.141:1186'...
從上面的訊息就可以明白為何第二台 Manage Node2 不需要設定 config.ini,是因為 Manage Node2 連線到 Manage Node1 :1186 順便獲取到了 config
如果你的 config 有改變,一樣要加上 –reload 才會生效!
確認 Manage Node2 上線
# in Manage node1 ,2 $ ndb_mgm -- NDB Cluster -- Management Client -- ndb_mgm> show Connected to Management Server at: localhost:1186 Cluster Configuration --------------------- [ndbd(NDB)] 2 node(s) id=3 @172.10.0.143 (mysql-5.6.29 ndb-7.4.11, Nodegroup: 0) id=4 @172.10.0.144 (mysql-5.6.29 ndb-7.4.11, Nodegroup: 0, *) [ndb_mgmd(MGM)] 1 node(s) id=1 @172.10.0.140 (mysql-5.6.29 ndb-7.4.11) id=6 @172.10.0.139 (mysql-5.6.29 ndb-7.4.11) [mysqld(API)] 2 node(s) id=2 @172.10.0.141 (mysql-5.6.29 ndb-7.4.11) id=3 @172.10.0.142 (mysql-5.6.29 ndb-7.4.11)
config 和 log 也都 load 進來了
$ ls /var/lib/mysql-cluster/ ndb_5_config.bin.3 ndb_5.pid ndb_3_out.log ndb_5_cluster.log ndb_5_out.log
這樣你的 Manage Node 也可以容錯一台了,安心睡覺吧