【问题标题】:MySQL Replication: Row based?MySQL 复制:基于行?
【发布时间】:2012-12-25 12:34:38
【问题描述】:

假设我有两个数据中心,其中托管了 MySQL 数据库的两个实例。为了有高可用性,我可以在这两个实例之间实现主从复制,这样两个数据库总是有最新的信息。但是主-主复制有它自己的一系列问题,我试图避免它。 就我而言,我知道数据的以下特征 -

如果用户表有两条记录,键为 U1 和 U2,则 U1 将仅在一个实例中更新。因此,对给定记录的写入仅在一个实例中完成。所有,我需要做的就是将此记录复制到其他实例,以便以后我想将另一个实例作为主实例,它具有最新的记录。 此外,有可能在某个时间点,实例 1 是 U1 的主实例,而在另一个时间实例 2 是 U1 的主实例。

我认为这比真正的主主复制低一步,其中 U1 的写入可以发生在两个数据库实例中的任何一个中。

鉴于此,是否有更好的方法来实现此场景的复制。我想避免主-主复制,因为将来我们可能有超过 2 个数据中心,并且实现多主复制并不简单。

【问题讨论】:

    标签: mysql database-replication


    【解决方案1】:

    听起来你想要一个主从设置,然后有能力在某个时候将一个从服务器提升为主服务器,并使其他服务器成为新主服务器的从服务器。

    这是可能的并记录在案,请参阅:http://dev.mysql.com/doc/refman/5.0/en/replication-solutions-switch.html

    【讨论】:

    • 我不想为 User 表中的所有行创建一个实例主实例或从属实例。我想做的是使实例 1 成为特定行集的主实例,实例 2 成为 User 表中完全不相交的行集的主实例。
    • 哦,我明白了。是的,看看@praseodym 写了什么,你在谈论分片......你可能不想这样做。几乎总是有更好的扩大规模的方法。
    【解决方案2】:

    您实际上是在描述sharded database,这是可能的,但不推荐,因为它涉及对您的应用程序的大量更改。 another Stack Overflow post 中概述了缺点。

    据说 MySQL Cluster CGE 软件可以做transparent sharding,但它会产生额外的许可费用。

    【讨论】:

    • 是的,你是对的,根据我的描述,现在我想得更多,这听起来很像分片。唯一的区别是我更多地考虑动态分片,其中分片中的条目动态变化。所以分片 1 可能现在负责密钥 U1,但有可能在稍后的时间点分片 2 负责 U1。
    • 在常规共享方法中重新分片会很昂贵,但是如果您在应用程序和数据库之间使用额外的层来管理分片,您确实可以动态地执行此操作。但是,缺点仍然存在(比如用... 4U 服务器杀死苍蝇等等)。
    【解决方案3】:

    如果您的意思是 MySQL 异步主-主复制不能很好地扩展到超过 2 个节点,那么这是正确的 - 但您的大部分问题都非常困惑。

    虽然可能有一些看起来像表但在 2 个数据库服务器之间有效分区的东西,这样两者都具有 100% 的读取访问权限,但每个节点只能写入数据库中的特定行,那么这是完全可能的,但在实践中将难以管理。它肯定比 master-master asynch 复杂得多 - 并不简单。

    多主同步复制与异步复制有一组非常不同的优点和缺点。恕我直言,它在复杂性方面与 MMA 相当——如果您认为它复杂得多,那么您至少无法理解其中一项技术。

    也许您只需要联合表和视图。或混合使用本地数据库和共享数据库。

    在您开始提出正确的问题之前,您还有一段路要走;比起将数据资产的未来押注在此处的答案上,您可能会更好地为一些优质的咨询服务付费。

    【讨论】:

    • 是的,我仍在尝试理解这个问题并提出一些可能的解决方案。这会被其他人评估,所以我有限的知识应该不是问题。在此之前,我正在尝试自己想出一些解决方案。如果您必须在 3 个节点之间进行主-主复制,您会选择哪种复制技术?
    • 肯定是多主复制。我也推荐 Percona - 除了提供一些很棒的工具(其中大部分是开源的,因此您可以在没有任何财务承诺的情况下使用它们),它们还提供专业支持和咨询
    猜你喜欢
    • 2010-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-24
    • 1970-01-01
    • 1970-01-01
    • 2014-01-12
    相关资源
    最近更新 更多