Mysql 组复制与 Mysql 集群

tda*_*get 4 mysql replication mysql-cluster mysql-innodb-cluster group-replication

[免责声明]我对数据库并不陌生,但对复制和集群完全是新手......

您可能知道 Mysql 提供了一项新功能:MySql 组复制

有人可以向我解释这种架构和集群之间的根本区别吗?任何主要功能仅存在于两者之一吗?节点容错 ? 是否有能力回到现场状态?欢迎提出任何建议...

谢谢

Ric*_*mes 5

组复制与 Galera(又名 PXC)

组复制只有几个月的历史;Galera 已经存在很多年了。一旦GR确立了它的价值(我认为它会的),答案可能是这样的......

他们非常相似。两者都在高可用性方面做得非常出色——任何单节点崩溃都可以恢复,通常是自动恢复。两者都提供高度的读取扩展。GR 承诺提供更多的写入扩展。

在不了解您的要求以及您对各种事物的容忍度的情况下,我无法建议您走哪条路。也许这个论坛上 90% 的 MySQL/MariaDB/Percona 用户不使用任何形式的复制。所以,第一个问题是,您需要任何复制解决方案吗?

架构不同,但目标相似。也就是说,“剥猫皮的方法不止一种”。

在我看来,只有当您愿意将节点放置在至少 3 个不同的地理位置(例如洪水/龙卷风/地震/等)时,才可以实现容错。两者都允许这样做。我使用在任何单点故障中幸存的规则,并将“数据中心”作为故障点。

GR 是对 Oracle 之前的产品 Fabric 的重大改进。

既然你没有提到Sharding,我也就没有提到。

MySQL集群

“MySQL Cluster”这个术语很容易混淆;从技术上讲,它指的是“NDB Cluster”,与“Group Replication”又名“InnoDB Cluster”有显着不同。

易卜拉欣简要讨论了 NDB,但我不会说“有史以来最好的解决方案”。

NDB 最初是一个电信应用程序,用于非常可靠地处理电话交换。MySQL、Oracle 和 FiveNines 对其进行了增强,使其接近于通用 RDBMS。它保留了其高可靠性。

我会将 NDB 的使用限制在需要它提供的特定功能的应用程序中。

建议

对于刚开始接触 MySQL 的数据库世界的人来说,我会选择基于非复制 InnoDB 的数据集。当需要复制/HA/扩展时,请考虑组复制或Galera。仅当 NDB 更适合您的应用程序时才转向它。