1

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

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

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

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

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

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

4

1 回答 1

3

您要么必须进行跨主复制以使从属赶上主控,而主控才能复制在从属上执行的修改,或者有一些停机时间并运行主控的脚本。

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

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

这是一个解释如何设置的链接

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

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

于 2012-08-20T12:13:21.097 回答