每日MySQL(部分和过滤)复制的最佳实践?

时间:2014-04-14 16:34:05

标签: mysql sql database-replication

我有一个合理的大型数据库> 40张桌子。我只需复制几张桌子(+/- 5)。并且每个表也都被过滤了。

我正在寻找一些复制这些数据的最佳实践(每日就足够了),我可以选择几个表,并为每个表包含一些WHERE子句。

我想为每个表启动mysqldump(带有where子句),并为每个表创建一个单独的.sql文件。然后,我可以在目标数据库上截断所有表(所有数据每天都被覆盖),并运行mysql以分别导入每个表。

示例:

   # dump each table 
   mysqldump -u repl_user my_database my_table -w 'id between 1000 and 1005' > my_table.sql

我知道复制完整的数据库并使用 blackhole 表类型。但由于不需要35张桌子,所以看起来有点过分。此外,有些表只需要过滤版本,我无法通过黑洞解决。

有更好的解决方案吗?

1 个答案:

答案 0 :(得分:4)

MySQL原生支持replication filters,但仅限于数据库或表级别。这不符合您从这些表中过滤行子集的要求。

FlexViews是一个读取二进制日志并仅重放与保持物化视图最新相关的更改的工具。您可以通过这种方式定义物化视图以实现表过滤。

相关问题