我需要一些关于MySQL-集群(NDB)设置的说明。
我想要实现完整的HA,但我的服务器预算很低,而且不能为我正在开发的简单解决方案租用十几台服务器。
在一个节点失败的情况下,达到完全HA的最小主机数量是多少?
我的意思是,当任何单个物理服务器发生故障时,集群都应该继续工作,不会出现任何错误。失败的服务器可以是任何MySQL群集组件(管理、sql或数据)
我不需要极端的性能,只需要在少量服务器上完全自动化地处理服务器故障
从MySQL集群文档中,我知道至少需要两个完整的数据副本(副本)。一个副本需要在多个主机上吗?
HA能在4个服务器上实现吗?2个管理节点(类似于小型VPS) +2个物理服务器,每个服务器运行SQL和数据节点?
我知道MySQL主从程序,但它不提供自动故障转移,需要应用程序重写
发布于 2012-08-25 15:36:32
你真的需要从数量上定义你想要的"HA“的等级--一个人的”晚上睡得着觉“是另一个男人的”这件事是一张房子里的卡片“。
系统的最小数量是两个(2) --一个活动的和一个备用的副本(带有一些类似于心跳或自定义的脚本来处理故障转移)。
对于MySQL集群,这意味着至少有两个SQL节点和两个数据节点(在任何一个节点发生故障时继续服务请求)。(如果您还需要对管理服务器的功能进行修改,那么您还需要其中的两个)。
这里的关键部分是在开发环境中测试故障转移--这意味着您至少还需要两台机器(或一台虚拟机)。您还希望测试升级和维护过程,以确保它们不会引发意外的后果(理想情况下,您不应该对未经开发测试和验证的产品采取任何措施)。
如果不能正确测试,可能会触发故障转移,这意味着您需要支付故障转移的过程(可能还有业务)成本--通常需要重新构建前活动服务器,使其成为新的备用服务器。
这可以防止硬件故障(电源、网卡、磁盘、开关(如果它们位于单独的开关上)。
请注意,这不仅适用于您的DB服务器--您需要两个*所有的东西: Web服务器、DBI服务器、防火墙、DNS服务器.
如果堆栈中仍然有一堆单点故障,那么一个组件的冗余是没有意义的。
下一个保护级别是网络故障(“如果我的ISP崩溃了怎么办?”)--这需要将上面的整个冗余环境复制到远程数据中心。
重要的是你要多样化的网络连接,电力等等-你不希望你的备用数据中心在街道对面,它是由同样的电力和光纤作为你的主要设施。
我所咨询的一家公司规定,用于DR的任何远程设备必须“至少15度经度”(即:“在下一个时区”)。在美国,常见的做法是东海岸/西海岸,或纽约/芝加哥洛杉矶/得克萨斯州。
上面的下一个层次是真正的分布式资源(比如谷歌),它需要一个支持复制和切分的数据库系统(比如MongoDB)。
如果实现得当,几乎不可能出现真正的“中断”,尽管服务有时会退化,恢复可能需要一段时间。
发布于 2012-08-26 01:42:34
回答你的问题: 2。
所有这些数据、sql和管理节点都可以在一台机器上运行。有了两台这样的三节点机器,您就有了完全的冗余。
请记住,NDB在内存中。所有节点的失败意味着不是“服务暂时不可用”,而是“所有数据永远消失”。我不知道在这样的设置中我需要多少个节点才能在晚上睡觉。至少向磁盘数据库添加一些复制。
我个人的结论是根本不使用MySQL集群。今天有大量的集群数据库。
发布于 2015-09-14 19:14:15
如果您认为您的网络足够健壮,那么物理服务器就足以满足整个HA的需要。否则,集群仲裁需要额外的小型物理服务器--以避免在数据节点之间丢失网络连接的情况下分裂大脑。
默认和推荐的副本数量为2,这意味着给定的数据存储在两个节点上:一个是“主”节点,另一个是“备份”节点。详情请参见https://dev.mysql.com/doc/refman/5.6/en/mysql-cluster-ndbd-definition.html#ndbparam-ndbd-noofreplicas。
https://dba.stackexchange.com/questions/24638
复制相似问题