分享

MYSQL: 主库不保留数据,但从库保留数据的操作

 Evilpot 2014-06-25

现在有这样的应用场景:
主库上有表A现在不想保留数据,但是从库上仍然需要保留。
操作流程如下:
1. 客户端登录主库,将sql_log_bin参数会话级关闭。保证不影响其他会话记录日志。
mysql > set session sql_log_bin = 0;
2. 关闭从库同步。这步操作主要是为了确保失败的情况下数据不丢失。
3. 清除目标表数据:
mysql > truncate table A;
4. 清除完毕后,开启从库同步。
mysql > start slave;
5. 如果表A仍在使用,则需要修改表A的AUTOCOMMIT字段。
mysql > alter table A AUTOCOMMIT = 原值+10000.
保证新录入的数据不会出现主键冲突。
6. 检查从库上的表数据是否存在。

注意:这样的操作流程会丢失部分数据。但相对亿级别的数据量,这样的数据丢失是可容忍的。同时还要注意的是,这样的操作只能应用于只有INSERT操作的表中。如果该表同时存在UPDATE的逻辑,则不能使用该流程清除表数据。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多