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