首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

Windows Server 2003 上部署 MySQL Cluster 叢集完整指南

     編輯:MySQL 綜合教學

Windows Server 2003 部署 MySQL Cluster 叢集完整指南

MySQL Cluster 是基於 NDB 存儲引擎的高可用、高冗余分布式資料庫解決方案。本文詳細記錄在 Windows Server 2003 SP2 環境下,使用 MySQL Cluster 7.1.3 版本搭建雙節點叢集的完整流程,涵蓋架構概念、節點規劃、配置文件編寫、服務啟動順序及驗證測試。

核心架構與節點角色

MySQL Cluster 採用「無共享」架構,每個節點擁有獨立記憶體與磁碟,避免單點故障。叢集包含三類邏輯節點:

  • 管理節點 (MGM):負責叢集配置分發、日誌記錄、節點狀態監控(啟動/關閉/重啟指令)。
  • 數據節點 (NDBD):實際存儲數據,處理同步複製與恢復,不直接對外提供 SQL 服務。
  • SQL 節點 (MySQLD):對外提供標準 MySQL 介面,解析 SQL 請求並轉發給數據節點。

邏輯節點可部署在同一物理機器上,但生產環境強烈建議管理節點與數據節點物理隔離,防止單機故障導致整個叢集癱瘓。

實驗環境規劃

角色IP 地址承擔邏輯節點
機器 A10.0.0.201MGM、SQL1、NDBD1
機器 B10.0.0.202SQL2、NDBD2

軟體版本:MySQL Cluster GPL 7.1.3 (對應 MySQL 5.1.44),下載免安裝版 mysql-cluster-gpl-noinstall-7.1.3-win32.zip。

網路需求:節點間通訊未加密,需高速區域網絡(建議千兆以上),不建議跨網段或公網部署。

詳細配置步驟

1. 管理節點配置 (機器 A)

建立目錄 D:\mysql-cluster,編寫 config.ini:

[NDBD DEFAULT]
NoOfReplicas=1

[MYSQLD DEFAULT]

[NDB_MGMD DEFAULT]

[TCP DEFAULT]

# Management Server
[NDB_MGMD]
hostname=10.0.0.201

# Storage Engines (Data Nodes)
[NDBD]
hostname=10.0.0.201
datadir=D:\data

[NDBD]
hostname=10.0.0.202
datadir=D:\data

# SQL Engines
[MYSQLD]
hostname=10.0.0.201

[MYSQLD]
hostname=10.0.0.202

關鍵參數說明:NoOfReplicas=1 表示單副本(測試用,生產建議 2);管理節點預設端口 1186,數據節點 2202 (5.0.3+ 可自動分配)。

2. 兩台機器通用:MySQL 服務安裝與基礎配置

  1. 解壓縮安裝包至 D:\mysql-cluster-gpl-noinstall-7.1.3-win32,將 bin 目錄加入系統 PATH。
  2. 以管理員身份開啟 CMD,註冊 Windows 服務:
    mysqld.exe -install mysql
  3. 在「服務」中將 mysql 服務設置為「手動」啟動。
  4. 複製 my-small.ini 為 my.ini,建立 D:\tmp 目錄。

3. SQL 節點與數據節點配置 (兩台機器同步操作)

  1. 建立數據目錄 D:\data。
  2. 編輯 my.ini,在 [mysqld] 區段末尾添加:
    # SQL 叢集節點
    ndbcluster
    ndb-connectstring=10.0.0.201
    
  3. 在文件末尾新增 [mysql_cluster] 區段供數據節點使用:
    [mysql_cluster]
    ndb-connectstring=10.0.0.201
    

叢集啟動順序 (嚴格遵守)

  1. 啟動管理節點 (機器 A):
    ndb_mgmd.exe -f D:\mysql-cluster\config.ini --configdir=D:\mysql-cluster
    看到 ==CONFIRMED== 表示成功。
  2. 啟動數據節點 (兩台機器):
    首次啟動需初始化:ndbd.exe --initial
    後續啟動:ndbd.exe
    警告:正常運行時切勿加 --initial,否則會清空數據節點所有數據。
  3. 啟動 SQL 節點 (兩台機器):
    啟動 Windows 服務 net start mysql 或直接執行 mysqld.exe。

叢集管理與驗證

使用 ndb_mgm.exe 客戶端連接管理節點:

  • SHOW:查看節點連接狀態。
    未連接狀態顯示 (not connected, accepting connect from ...)。
    正常狀態顯示節點 ID、IP、版本、Nodegroup、Master 等資訊。
  • SHUTDOWN:關閉管理節點及所有數據節點 (SQL 節點需單獨關閉)。

功能測試

-- 在 SQL1 建表並插入數據 (必須指定 ENGINE=NDBCLUSTER)
CREATE TABLE city (
  nId MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
  sName VARCHAR(20) NOT NULL
) ENGINE=NDBCLUSTER DEFAULT CHARSET=utf8;

INSERT INTO city VALUES (1, 'city-1'), (2, 'city-2');

-- 在 SQL2 查詢
SELECT * FROM city;

若能查到數據,說明同步正常。另可測試單點故障:中斷一個 ndbd.exe,觀察 SQL 節點是否仍可讀寫;重啟該數據節點後,驗證數據自動恢復一致性。

常見問題與建議

  • 若機器曾安裝過普通 MySQL Server,務必徹底卸載乾淨,避免二進制衝突。
  • 叢集配置極其敏感,網路抖動、記憶體不足易觸發仲裁機制強制關閉數據節點。
  • 版本選擇:優先選用社區驗證穩定的版本,不盲目追求最新,亦不使用過舊功能受限版本。
  • 結合負載均衡器 (如 HAProxy、Nginx) 可進一步提升可用性與讀寫效能。

MySQL Cluster 架構圖

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved