Sam Asked: 2013-12-07 13:40:39 +0800 CST2013-12-07 13:40:39 +0800 CST 2013-12-07 13:40:39 +0800 CST 使用 Galera Cluster 而不是 Master/Slave Replication 的缺点是什么? 772 使用 Galera Cluster 而不是常规的 Master/Slave Replication 有什么缺点?Galera 的 0 从属延迟时间、同步复制和无单点故障看起来非常吸引人,那么为什么 Galera 集群不常见呢? mysql replication 2 个回答 Voted Best Answer Bill Karwin 2013-12-07T14:34:28+08:002013-12-07T14:34:28+08:00 因为与任何其他优化一样,它并不适合所有工作负载。 Galera 可能会因事务的高速率或事务更新许多行而不堪重负。它还可能使您的应用程序在集群同步时遇到 COMMIT 延迟。 Galera 也不会同步更新其他节点。它只是同步传输工作集。这样,有点像半同步模式下的标准复制。因此,从另一个集群节点读取过时数据的可能性仍然很小。您可以设置一个选项来强制 SELECT 等待,直到工作集队列更新数据库,但这意味着您在 SELECT 上有延迟。甚至有可能在 SELECT 上出现死锁,这似乎违反直觉。 Galera 非常出色,但不是一种万能的技术。仍然有充分的理由使用异步复制。 dbdemon 2017-10-23T05:34:03+08:002017-10-23T05:34:03+08:00 Galera 的一些缺点包括: 存储引擎支持:仅限于 InnoDB/XtraDB(加上对 MyISAM 的实验性支持) 操作系统支持:仅 Linux/类 Unix 操作系统 还有一些限制需要注意,但也许可以解决: 默认情况下(Total Order Isolation)DDL 操作会阻塞整个集群,直到它们完成 每个表都必须有一个明确的主键,单列或多列 锁定:不支持某些类型的显式锁定。 有关更多信息,请参阅Codership(以及此处关于阻止 DDL)、MariaDB和Percona的详细信息。 编辑:另请注意,有些人认为紧密耦合的数据库集群,如 Galera,不应该有地理分布的节点,因为网络层固有的不可靠性引起的问题。相反,在这些情况下必须使用异步解决方案。请参阅:如何不做 MySQL 高可用性:地理节点分布与基于 Galera 的复制滥用。尽管如此,Galera 博客指出(2015 年): 构建地理分布式数据库集群的理由很充分。Galera 复制方法和产品中的特定功能使得构建跨多个数据中心的 Galera 集群变得切实可行,并且多个用户已经在生产中拥有这样的集群。
因为与任何其他优化一样,它并不适合所有工作负载。
Galera 可能会因事务的高速率或事务更新许多行而不堪重负。它还可能使您的应用程序在集群同步时遇到 COMMIT 延迟。
Galera 也不会同步更新其他节点。它只是同步传输工作集。这样,有点像半同步模式下的标准复制。因此,从另一个集群节点读取过时数据的可能性仍然很小。您可以设置一个选项来强制 SELECT 等待,直到工作集队列更新数据库,但这意味着您在 SELECT 上有延迟。甚至有可能在 SELECT 上出现死锁,这似乎违反直觉。
Galera 非常出色,但不是一种万能的技术。仍然有充分的理由使用异步复制。
Galera 的一些缺点包括:
还有一些限制需要注意,但也许可以解决:
有关更多信息,请参阅Codership(以及此处关于阻止 DDL)、MariaDB和Percona的详细信息。
编辑:另请注意,有些人认为紧密耦合的数据库集群,如 Galera,不应该有地理分布的节点,因为网络层固有的不可靠性引起的问题。相反,在这些情况下必须使用异步解决方案。请参阅:如何不做 MySQL 高可用性:地理节点分布与基于 Galera 的复制滥用。尽管如此,Galera 博客指出(2015 年):