主方案更改后,Mysql复制失败

时间:2017-07-12 12:32:15

标签: mysql mariadb database-replication

我有从MariaDB(主服务器)到服务器的主从复制到Mysql(从服务器)。一切正常,但是当我改变主设备的方案时,我对奴隶有错误,并且在它之后破坏复制。 如何在我的奴隶身上无错误地改变我的主计划?

2 个答案:

答案 0 :(得分:0)

当然,您必须考虑如何推出架构更改。

  • 除非您正在调试或获取关联数组,否则永远不要SELECT * ...。否则,额外的列可能会破坏事物。
  • 协调代码的部署和架构更改。
  • 停机。

对于复杂的部署,停机时间最短:

  1. 更改代码以处理发现和处理 架构(额外/缺少列,一个表拆分为两个等)
  2. 更改架构并等待它传播到所有Slaves。
  3. 清理代码(仅处理新架构)。

答案 1 :(得分:0)

  1. 在MySQL中运行“ALTER TABLE”以添加其他列和索引会锁定表,并可能导致复制中断。以下是在不破坏复制的情况下进行模式更改的两种方法:1。等待模式更改复制到所有从属服务器,并且不会在主服务器上执行任何其他查询,直到模式更改全部应用为止。在主服务器上执行的ALTER将执行将更改应用于表,并可能需要相当长的时间,具体取决于表大小。在此应用程序时间内,表将被阻止读取和写入。如果已复制架构更改,请检查从站,然后在MySQL服务器上恢复操作。

  2. 交换主服务器和从服务器。停止其中一个Slaves上的复制(将其称为“Server A”)并将架构更改应用于所需的表。使当前主服务器(将其称为“服务器B”)成为“服务器A”的从服务器,以便现在“服务器B”和“服务器A”处于主服务器主服务器复制中。等到服务器都同步,然后在'服务器A'上执行“STOP SLAVE”,使其成为新的主服务器。“