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

MySQL Cluster 叢集部署配置實戰 (CentOS 7 + MySQL 5.1)

     編輯:MySQL 資料庫相關知識

架構規劃

角色數量IP備註
管理節點 (MGM)1192.168.76.131仲裁、配置分發
SQL 節點 (API)2192.168.76.132, .133應用連線入口
資料節點 (NDB)2192.168.76.132, .133實際儲存資料,與 SQL 節點同機

注意:生產環境建議管理節點、SQL 節點、資料節點**物理隔離**部署,避免單點故障。

編譯安裝關鍵參數

./configure \
  --prefix=/usr/local/mysql \
  --with-plugins=ndbcluster \   # 關鍵:啟用 NDB Cluster 支援
  --with-charset=utf8 \
  --with-collation=utf8_general_ci \
  --with-extra-charsets=utf8,gbk \
  --with-mysqld-user=mysql \
  ...

編譯安裝後初始化:scripts/mysql_install_db --user=mysql

管理節點配置 (config.ini)

[NDBD DEFAULT]
NoOfReplicas=1                 # 副本數 (建議生產環境 ≥2)
DataMemory=200M                # 每資料節點資料記憶體
IndexMemory=100M               # 每資料節點索引記憶體

[TCP DEFAULT]
portnumber=2202                # 節點間通訊埠

[NDB_MGMD]
id=1
hostname=192.168.76.131
datadir=/db/mysql-cluster

[NDBD]
id=2
hostname=192.168.76.132
datadir=/db/mysql

[NDBD]
id=3
hostname=192.168.76.133
datadir=/db/mysql

[MYSQLD]
hostname=192.168.76.132

[MYSQLD]
hostname=192.168.76.133

[MYSQLD]                       # 允許任意 IP 連線的 SQL 節點

SQL/資料節點配置 (my.cnf)

[mysqld]
ndbcluster
ndb-connectstring=192.168.76.131

[mysql_cluster]
ndb-connectstring=192.168.76.131

啟動順序

  1. 管理節點:ndb_mgmd --config-file=/db/mysql-cluster/config.ini
  2. 資料節點 (首次加 --initial):
    • Node 2:ndbd --ndb-nodeid=2 --initial
    • Node 3:ndbd --ndb-nodeid=3 --initial
  3. SQL 節點:mysqld_safe --ndb-nodeid=4 --user=mysql & (依序啟動)

驗證叢集狀態

ndb_mgm -e show

正常應顯示所有節點 Connected,資料節點狀態 STARTED。

測試資料同步

# Node 1 建表寫入
CREATE DATABASE test;
USE test;
CREATE TABLE t1 (id INT PRIMARY KEY) ENGINE=NDBCLUSTER;
INSERT INTO t1 VALUES (1);

# Node 2 查詢驗證
SELECT * FROM test.t1;

故障模擬與恢復

  • 拔網線/關機測試單節點失效,觀察叢集持續服務
  • 重啟失效節點資料節點:ndbd --ndb-nodeid=ID (無需 --initial)
  • 管理節點失效不影響資料節點運作,但無法新增節點/配置變更

關鍵參數調校建議

  • NoOfReplicas=2 確保高可用 (需 4+ 資料節點)
  • DataMemory/IndexMemory 依資料量規劃,預留 20% 餘量
  • HeartbeatIntervalDbDb、ArbitrationTimeout 調整故障偵測敏感度
  • 監控 ndb_mgm -e "ALL REPORT MEMORYUSAGE"
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved