上次的博文項目進階 之 集群環境搭建(二)MySQL集群中,我們搭建了一個基礎的MySQL集群,這篇博客咱們繼續講解MySQL集群的相關內容,同時針對上一篇遺留的問題提出一個解決方案。
1、單管理節點MySQL集群和多管理節點MySQL集群
上一篇的博客中,我們搭建的MySQL集群架構中,只存在一個管理節點,這樣搭建的集群可以用如下所示的結構表示。
仔細分析上圖就會發現,上圖所示的單管理節點MySQL集群存在當唯一的管理節點由於網絡、斷電、壓力過大等各種原因宕機后,數據節點和SQL節點將會各自為戰,成為一盤散沙。這樣搭建的MySQL集群可用性較低,所以我們要將單管理節點集群改變成如下圖所示的多管理節點集群。
在上圖的多管理節點MySQL集群中,由於管理節點存在多個,所以當其中的某一個管理節點出現宕機之后,其他的管理節點自動接過MySQL集群的管理權限,保證MySQL集群的正常運行。
2、多管理節點MySQL集群配置
多管理節點MySQL的配置非常簡單,僅需要修改之前的博文中提高的三種節點的三個地方。
1)修改管理節點配置
打開管理節點C:\mysql\bin下的config.ini文件,將其中ndb_mgmd的相關配置修改為如下內容:
[ndb_mgmd] # Management process options: # Hostname or IP address of management node HostName=192.168.24.16 # Directory for management node log files DataDir=C:/mysql/bin/cluster-logs [ndb_mgmd] # Management process options: # Hostname or IP address of management node HostName=192.168.24.43 # Directory for management node log files DataDir=C:/mysql/bin/cluster-logs
即修改之后的config.ini存在多個ndb_mgmd管理節點的相關配置。
2)修改數據節點配置
打開數據節點C:\mysqlcluster\datanode\mysql下的my.ini文件,將其中mysql_cluster的相關配置修改為如下內容:
[mysql_cluster] # Optionsfor data node process: #location of management server ndb-connectstring=192.168.24.16,192.168.24.43
即修改之后的mysql_cluster節點下的ndb-connectstring對應多個管理節點的IP地址。(如果管理節點修改了服務端口號,則需要添加相應的端口號,例如:192.168.24.16:3306,192.168.24.43:3306)
3)修改SQL節點配置
與修改數據節點類似,修改SQL節點配置需要打開C:\mysqlcluster\sqlnode\mysql下的my.ini文件,將其中mysqld的相關配置修改為如下內容:
[mysqld] # Options for mysqld process: # run NDB storage engine ndbcluster # location of management server ndb-connectstring=192.168.24.16,192.168.24.43
即修改之后的mysqld節點下的ndb-connectstring對應多個管理節點的IP地址。
3、多管理節點MySQL集群配置啟動和測試
多管理節點MySQL集群的啟動和測試與單管理節點MySQL集群的啟動和測試沒有區別,可以參考上一篇文章中的相關介紹。需要注意的是在啟動MySQL集群的時候,除第一個啟動的管理節點以外,其他管理節點會出現如下圖所示的警告:

以上警告的意思是節點1和3,2和4的arbitrator在一台主機上,可能引起整個集群失敗,這個警告可以不用放在心上繼續操作即可。
到目前為止,咱們的多管理節點的MySQL集群就搭建完畢了,這樣的集群的在正常情況下可以滿足一般需求,但並不是說它就真的無懈可擊,它從架構和實用度來講還可以進行更多的優化和完善,具體都有哪些可以優化和完善的地方呢?敬請期待接下來的文章!