首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL NDB Cluster 叢集部署完整流程:雙資料節點 + 管理節點架構

     編輯:MySQL 資料庫相關知識

架構需求

  • 最少 3 台機器:2 台資料節點 + 1 台管理節點
  • 管理節點啟動後理論可關閉,但強烈建議常駐,否則單點故障後叢集無法重組
  • 僅支援 MySQL-Max 版本(含 NDB 儲存引擎)

環境規劃

步驟 1:資料節點安裝 MySQL-Max(兩台同步)

wget https://dev.mysql.com/get/Downloads/MySQL-4.1/mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz
mv *.tar.gz /usr/local/
cd /usr/local
groupadd mysql
useradd -g mysql mysql
tar -zxvf mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz
mv mysql-max-4.1.9-pc-linux-gnu-i686 mysql
cd mysql
scripts/mysql_install_db --user=mysql
chown -R root .
chown -R mysql data
chgrp -R mysql .
cp support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod +x /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
# 先不要啟動!

步驟 2:管理節點只裝管理工具

mkdir /usr/src/mysql-mgm
cd /usr/src/mysql-mgm
tar -zxvf mysql-max-4.1.9-pc-linux-gnu-i686.tar.gz
cd mysql-max-4.1.9-pc-linux-gnu-i686
mv bin/ndb_mgm bin/ndb_mgmd .
chmod +x ndb_mg*
mv ndb_mg* /usr/bin/
cd && rm -rf /usr/src/mysql-mgm

步驟 3:管理節點 config.ini


mkdir /var/lib/mysql-cluster
cd /var/lib/mysql-cluster
cat > config.ini <<'EOF'
[NDBD DEFAULT]
NoOfReplicas=2

[MYSQLD DEFAULT]
[NDB_MGMD DEFAULT]
[TCP DEFAULT]

[NDB_MGMD]
HostName=192.168.0.3

[NDBD]
HostName=192.168.0.1
DataDir=/var/lib/mysql-cluster

[NDBD]
HostName=192.168.0.2
DataDir=/var/lib/mysql-cluster

[MYSQLD]
[MYSQLD]
EOF

ndb_mgmd  # 啟動管理服務

步驟 4:資料節點 my.cnf 與啟動


vi /etc/my.cnf
[mysqld]
ndbcluster
ndb-connectstring=192.168.0.3

[mysql_cluster]
ndb-connectstring=192.168.0.3

mkdir /var/lib/mysql-cluster
cd /var/lib/mysql-cluster
/usr/local/mysql/bin/ndbd --initial  # 首次必加
/etc/rc.d/init.d/mysqld start

步驟 5:驗證叢集


ndb_mgm
ndb_mgm> show
# 應看到 2 ndbd nodes, 1 mgmd, 2 mysqld (API) 皆 connected

步驟 6:功能測試


/usr/local/mysql/bin/mysql -u root -p
USE test;
CREATE TABLE ctest (i INT) ENGINE=NDBCLUSTER;
INSERT INTO ctest VALUES (1);
SELECT * FROM ctest;

在另一節點同樣查詢/插入,驗證資料同步。

步驟 7:破壞性測試

  • 拔網線或 kill -9 $(pidof ndbd) 模擬節點故障
  • 觀察另一節點繼續服務
  • 管理終端 show 顯示故障節點狀態
  • 恢復:重啟 ndbd(不加 --initial)

生產環境建議

  • 管理節點使用獨立機器,並設定開機自啟
  • 資料節點間使用專用網卡/交換機做心跳通訊
  • 定期備份 config.ini 並納入版控
  • 監控 ndb_mgm -e show 狀態納入告警體系
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
角色主機名IP
Data Node 1MySQL1192.168.0.1
Data Node 2MySQL2192.168.0.2
ManagementMySQL3192.168.0.3