我一直在寻找一种方法来防止MySQL删除语句被奴隶处理,我正在研究数据仓库项目,我希望在将数据复制到slave之后从生产服务器中删除数据。
完成这项工作的最佳方法是什么?
谢谢
答案 0 :(得分:6)
有几种方法可以做到这一点。
SET SQL_LOG_BIN=0;
以获取相关会话。这样就不会写入二进制日志BEFORE DELETE
触发器以忽略删除。我倾向于使用方法#1来表达我不想复制的语句。它需要SUPER
权限。
我没有尝试#2,但它应该是可能的。
答案 1 :(得分:3)
你只能用黑客来实现这个目标,这可能会导致问题。 MySQL复制不是为此而设计的。
想象一下,你在主人中插入一条记录,它会复制到奴隶。然后从主服务器中删除,但不会从服务器中删除。如果有人添加了具有相同唯一键的记录,则从站上将存在冲突。
一些替代方案:
也许如果您提供没有删除的镜像数据库的原因,我可以为您提供更具针对性的解决方案。