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

MySQL Cluster (NDB) 核心架構與部署指南:管理節點、資料節點、SQL 節點三角色協同

     編輯:MySQL 資料庫相關知識

架構概覽

MySQL Cluster 採用共享無架構,NDB 儲存引擎將資料分片分散於多個資料節點,透過管理節點協調,SQL 節點提供 MySQL 介面存取。

三大節點角色

節點類型進程名核心職責啟動指令
管理節點 (MGM)ndb_mgmd叢集配置分發、節點啟停、備份協調、日誌收集ndb_mgmd -f config.ini
資料節點ndbd / ndbmtd儲存資料分片、處理交易、同步複寫、檢查點ndbd -c mgm_host:1186
SQL 節點mysqld解析 SQL、路由至資料節點、回傳結果、支援標準 MySQL 協定mysqld --ndbcluster

最小部署拓撲

  • 3 節點:1 MGM + 2 Data (NoOfReplicas=2) + 1 SQL (可與 MGM 同機)。
  • 生產建議:3 台物理機,各跑 1 MGM + 1 Data + 1 SQL,MGM 獨立機或雙機熱備。

配置檔核心參數

[ndbd default]
NoOfReplicas=2
DataMemory=2G
IndexMemory=512M
MaxNoOfConcurrentOperations=100000

[ndb_mgmd]
HostName=10.0.0.1
DataDir=/var/lib/mysql-cluster

[ndbd]
HostName=10.0.0.2
DataDir=/var/lib/mysql-cluster

[ndbd]
HostName=10.0.0.3
DataDir=/var/lib/mysql-cluster

[mysqld]
HostName=10.0.0.2
[mysqld]
HostName=10.0.0.3

啟動順序 (關鍵)

  1. MGM 節點:ndb_mgmd -f /etc/my.cnf --initial (首次加 --initial)
  2. 資料節點:ndbd -c 10.0.0.1 --initial (首次加 --initial)
  3. SQL 節點:systemctl start mysqld

管理客戶端常用指令

ndb_mgm -e "SHOW"                    # 叢集狀態
ndb_mgm -e "ALL START"               # 啟動所有節點
ndb_mgm -e "NODE_ID START"           # 啟動特定節點
ndb_mgm -e "BACKUP"                  # 線上備份
ndb_mgm -e "DUMP 1000"               # 觸發記憶體報告

應用程式存取

  • 標準 MySQL 連接器 (JDBC/ODBC/PHP/Python) 直連 SQL 節點,無感知叢集拓撲。
  • 連線池建議均勻分散至多 SQL 節點,避免單點熱點。

監控關鍵指標

  • DataMemoryUsage / IndexMemoryUsage < 80%
  • Ndb_api_wait_meta_request_count 等待計數
  • 資料節點心跳 HeartbeatIntervalDbDb (預設 1500ms)

結語

MySQL Cluster 提供高可用、自動分片、線性擴展的記憶體內交易能力。部署核心在於配置檔集中管理、嚴格啟動順序、記憶體容量規劃。現代替代方案:TiDB、Vitess、PolarDB-X 提供兼容 MySQL 協定的分散式方案,選型時綜合評估運維成本與生態相容性。

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