我们目前正在使用MySQL。理想情况下,我们希望基于语句或行的复制到另一个完全不同的集群,除了传入的复制流之外,该集群是只读的。我们不希望复制的唯一语句是 DELETE.......WHERE 格式的语句存档=真。这样,我们的事务数据库可以保留 3 个月的数据以提高速度,而副本数据库可以保留 2.5 年的数据。
我还没有找到一种方法来做到这一点,所以我会很感激此时执行此操作的任何选择。当然,存在事务性删除,我们确实希望复制这些删除。
有办法设置吗?
我一直在谷歌搜索和聊天以获取信息。
哦,我想到的唯一其他选择是首先复制,然后在副本上,向所有表添加触发器,然后将数据复制到另一个表,但在触发器中过滤掉发生删除时的任何行,因此如果发生删除,我们触发并检查 archive=true|false 是否。如果为 false,我们将复制;如果为 true,我们将忽略数据,并且数据现已存档。不幸的是,这导致我们的副本中的数据集大小相当大,但这是我脑海中的一个选择。我希望在它到达副本之前进行过滤。
触发器上的未决问题是我是否确实收到了该值的行数据。
在该查询之前
SET VARIABLE @@log_bin=FALSE;
然后是“TRUE”。查询重写功能可以在看到 上的相关测试时插入这两个语句
archive
。