【问题标题】:MySQL/MariaDB Replication SolutionMySQL/MariaDB 复制解决方案
【发布时间】:2014-12-03 20:38:21
【问题描述】:

我正在解决 MySQL 主从复制问题。情况如下:

我有一个服务器 A 和一个服务器 B。服务器 A 运行将数据生成到表 TA1、TA2 和 TA3 中的应用程序。我想将 TA1、TA2 和 TA3 的特定子集(由内部连接选择定义)复制到一个表 TB1 到专用于报告引擎的服务器 B 上。在服务器 A 上创建数据后,必须尽快将数据复制到服务器 B。我现在可以像伐木工人一样将表 TAx 从服务器 A 复制到位于服务器 B 上的 TBx,然后通过在服务器 B 上创建一个视图以过滤掉不必要的行。

哦,我多么讨厌这个解决方案。我想在服务器 A 端进行行过滤并仅复制子集。有什么想法可以很好地设置它吗?

我想避免调度程序每隔一分钟左右运行一次查询以在复制之前在服务器 A 上创建表,我想避免使用触发器来过滤数据,我想保持被复制的数据尽可能在线可能,..

【问题讨论】:

    标签: mysql replication mariadb


    【解决方案1】:

    当使用基于 STATEMENT 的复制时,您可以简单地在从属端的表上使用触发器来过滤掉不需要的行(尽管行更改仍将写入二进制日志复制文件,并且仅在从属端被过滤掉)

    从 MariaDB 10.1(还不是 GA 版本)开始,您还可以使用基于 ROW 的复制,并且仍然有从端触发器来进行过滤:

    https://mariadb.com/kb/en/mariadb/documentation/replication/standard-replication/running-triggers-on-the-slave-for-row-based-events/

    或者您可以在主服务器上同时拥有 TAx 和 TBx 表,使用 TAx 上的触发器进行过滤并仅将想要的更改复制到 TBx 影子表,然后使用复制过滤器仅将 TBx 表复制到从属(s )。

    【讨论】:

      猜你喜欢
      • 2010-09-16
      • 2010-09-10
      • 1970-01-01
      • 1970-01-01
      • 2010-09-05
      • 1970-01-01
      • 2013-03-22
      • 1970-01-01
      • 2018-12-02
      相关资源
      最近更新 更多