我想在 Hyper-V 上创建一个 MySQL NDB 集群进行测试,所以我在这方面有一些问题。
- 我可以使用 Windows XP 32 位吗?(因为我已经有一个虚拟机)如果没有,我可以使用 Windows 7 或 10 吗?
- 我是否只需要一个 VM 来安装两个节点(我不知道 MySQL 是否支持多个实例或类似的东西)或者我是否需要至少两个 VM?
- 我读到 NDB 集群需要负载均衡器。我可以不用负载均衡器吗?我的意思是我将在 server1 上手动运行语句(插入/更新/删除)以检查它是否转到 server2 而不是使用某些 PHP 应用程序。
- 我需要免费版的 MySQL 还是一些企业版?
- 我是否只需要 MySQL 或其他一些软件也需要设置集群?
你在这里有支持平台的列表: http ://www.mysql.com/support/supportedplatforms/cluster.html
从那里我可以看到有 32 位二进制文件和几个 Windows 版本,但请检查您的特定组合。由于内存限制,我建议尽可能不要对 MySQL 使用 32 位二进制文件/操作系统,但你说它是
所以我假设对于一个小的(< 2GB 数据)测试没问题?
对于生产,建议使用 4 个节点。从技术上讲,您可以在 2 个节点上运行它 - 是的,您可以在同一台物理服务器上运行 MySQL(和 ndbd)的多个实例,但同样,您正在进行测试,因此取决于您关心哪个部分或多或少地进行实际测试会不会为你工作-。网络分区和延迟问题以及内存压力不会在单个(或几个)小型机器测试中显示出来。即使对于同一台物理服务器上的不同虚拟机,您也不会得到真实的场景。但也许您对此不感兴趣,而只对学习如何设置它和/或纯粹的受控切换任务感兴趣。
是的,您可以这样做,但是拥有一个集群有什么意义呢?您至少需要 4 个节点(2 个 SQL 节点和 2 个数据节点,您可以随时崩溃并进行透明故障转移)。为什么不在您的情况下设置单个主从复制拓扑(或主从复制拓扑,具有只读辅助主)?
MySQL 具有双重许可模型。NDB Cluster 有一个社区版本。它是免费的(免费),但在 GPL 下获得许可,这意味着它对如何使用它有限制(链接的应用程序也必须是 GPL)。如果您是 ISV 或向客户提供一些可交付成果的开发人员商店,您可能需要购买企业许可证。对于测试,您不打算将服务器或应用程序分发给任何人,您可以使用社区版。我不是律师,请阅读许可证或聘请律师为您阅读。
除了真正考虑负载平衡解决方案(或将其集成到您的应用程序中)之外,对于生产部署,我认为必须具备:监控解决方案(提供趋势和警报)、使您的生活更轻松的管理工具。可能最重要的部分是有人调整你的应用程序——MySQL 集群与典型的 MySQL/InnoDB 设置有很大不同,在大多数情况下,迁移到它对于应用程序访问它的方式并不透明(它是更多的内存和键值专注)。
在这里,您总结了 MySQL NDB Cluster 与其他类似概念之间的差异: