【问题标题】:How does MySQL replication work?MySQL 复制是如何工作的?
【发布时间】:2012-08-20 12:04:23
【问题描述】:

我有一个关于 MySQL 复制的问题。我对数据库的了解非常有限。请有人帮我澄清这一点。我的目标是能够进行可以避免停机的部署。

假设我复制了一个数据库(主从数据库)。假设我想做一个新版本,我需要运行一个迁移脚本。我的计划是停止复制。并在从站中运行脚本。迁移脚本可以是:

  • 基于某些业务逻辑,运行多个查询为表中的列设置新值。
  • 添加新列

当我再次开始复制时实际会发生什么?从站将赶上主站的任何更改。但是主服务器如何获得应用于从服务器的更改?如果我运行相同的数据库脚本,迁移脚本将不会针对 master 上的相同数据集再次运行。

如果slave追上master,使用slave的快照并将其用作新的slave,是否有意义。老奴当主子?

我希望这实际上很清楚。谢谢。非常感谢任何帮助。

【问题讨论】:

    标签: mysql database replication database-replication


    【解决方案1】:

    您要么必须进行跨主机复制,以便从机赶上主机,主机才能复制从机上进行的修改,要么有一些停机时间并运行主机的脚本。

    1-您可以将slave master replcaition更改为cross master,而无需任何停机时间。
    2- 阻止前从服务器复制主服务器。
    3- 运行您的脚本。
    4-再次启动前奴隶。

    我建议您使用 vmware 之类的工具设置测试环境并尝试一下。这就是我所做的。

    这里有一个说明如何设置的链接

    http://onlamp.com/onlamp/2006/04/20/advanced-mysql-replication.html

    在将更改应用到真实环境之前,我不能对测试施加足够的压力,因此请反复测试,直到您认为自己已准备好。当这种情况发生时,再测试一次。不要忘记也进行备份

    【讨论】:

    • 感谢您的回答。我无法轻易找到有关跨主复制的任何信息,但我找到了多主复制。这是一样的吗?
    • 应该是。我做了一个快速的谷歌搜索并得到onlinehowto.net/setup-mysql-cross-replication/1433
    • 我再次建议在实际操作之前建立一个测试实验室。
    • vmware 提供了一个虚拟网络,其中包含您可以连接和使用的虚拟机。我根本没有复制经验,在工作中他们让我负责 4 台机器上的复制,所有这些机器都是从属设备,所以我开始设置一个虚拟网络并开始使用它。收集一个系统真的很容易,所以直到你在测试系统上做对了,不要这样做。
    • 谢谢...是的,肯定会测试它。我已经有 4 个虚拟机的虚拟机 :)
    猜你喜欢
    • 1970-01-01
    • 2012-06-22
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 2016-01-19
    • 2014-08-25
    • 2011-10-02
    • 2011-10-22
    相关资源
    最近更新 更多