MySQL复制过去30天

有没有办法设置MySQL复制添加新行并删除旧行? 例如我有大约5年的主MySQL的表。 我希望复制只能跟上最近30天的时间。 30天后的任何内容都将从复制中删除。 我怎么能做到这一点?

  • 提前致谢

不,原来不是复制品的复制品不是复制品。

你不能通过这条路线到达你想去的地方。 你的第一个问题是,MySQL需要一种方法来确定要保留的数据和要删除的内容。 如果表之间没有依赖关系,那么可以在每个表中使用时间戳或date字段,在这种情况下,您只需在每个表上运行一个简单的查询。

有可能你可以通过日志做到这一点,但这将是棘手的和容易出错的。

虽然你不能用本地MySQL支持来做到这一点,但是正如其他许多人所指出的那样,在大多数情况下,它可以通过脚本很容易地完成。 不过,容易取决于你的模式有多复杂。

下面是一个使用date和时间函数从具有时间戳字段的表中删除的查询的示例…

delete from table where DATE_ADD( DATE_FORMAT( table.timestamp,'%Y-%m-%d %T'), INTERVAL 4 HOUR) < NOW() 

设置复制并使数据库完全相同后,发出“停止从站”并删除旧数据。 它不会再出现,除非主人做了涉及这些行的东西。 然后“开始奴隶”。