【问题标题】:Mysql replication failed after changes on master scheme主方案更改后,Mysql 复制失败
【发布时间】:2017-07-12 12:32:14
【问题描述】:

我有从带有 MariaDB(主)的服务器到带有 Mysql(从)的服务器的主从复制。一切正常,但是当我更改主机方案时,我在从属设备上出现错误,并且在它之后复制被破坏。 如何更改我的主计划而不会在我的奴隶上出错?

【问题讨论】:

  • 什么是“主方案”?
  • 我的意思是,数据库结构,如果我更改表或添加一些列和 s.o.复制将被破坏。

标签: mysql mariadb database-replication


【解决方案1】:

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

  • 切勿使用SELECT * ...,除非您正在调试或获取关联数组。否则,额外的列可能会破坏内容。
  • 协调代码的推出与架构更改。
  • 暂停一下。

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

  1. 更改代码以处理发现和处理任一架构(额外/缺失的列、一张表分成两部分等)
  2. 更改架构并等待它传播到所有从站。
  3. 清理代码(仅处理新架构)。

【讨论】:

    【解决方案2】:
    1. 在 MySQL 中运行“ALTER TABLE”来添加额外的列和索引会锁定表,并可能导致复制中断。以下是在不中断复制的情况下进行架构更改的两种方法:1.等待架构更改复制到所有从属服务器,并且在整个架构更改应用之前不会在主服务器上执行其他查询。在主服务器上执行的 ALTER 将将更改应用于表,并且可能需要相当长的时间,具体取决于表的大小。在此应用程序期间,表将被阻止读取和写入。检查从属服务器是否已复制架构更改,然后在 MySQL 服务器上恢复操作。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-31
      • 2013-04-29
      • 1970-01-01
      相关资源
      最近更新 更多