现在有这样的应用场景: 主库上有表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的逻辑,则不能使用该流程清除表数据。
|
|