MySQL從4.1版開始支持 Cluster,目前MySQL穩定的最新版本是5.0
1. cluster的架構 share-nothing 架構。類似DB2, 不同於Oracle的RAC(share-storage)
MySQL Node -- Data Node -- Management Node
ManagementNode負責 cluster的啟動,配置,備份等。在MySQL CLuster啟動後, 可以關閉Management Node. MySQL Node: 執行數據庫操作。 Data Node: 保存數據和同步數據。所有的數據都保存在Data Node的內存。
2. 數據保存在內存
5.0的 MySQL Cluster是基於內存的,數據都保存在內存。 假設有100G數據. MySQL使用Partition可以把數據分開。每台data node需要的內存計算公式:
(SizeofDatabase × NumberOfReplicas × 1.1 ) / NumberOfDataNodes。
以100G計算,一個冗余,需要 100g*2*1.1/20台 = 11G。 這對硬件是比較高的要求。
在5.1版本將實現數據保存在磁盤,但是索引仍然在內存。
3。 增加node時,必須重啟Cluster. 這對企業的高可靠應用是不利的。 在後面的版本將改進。
4。 負載均衡 MySQL Cluster本身不提供負載均衡。可以考慮使用LVS實現。
摘自:linuxforum.net