先演练、再执行:给一次数据清理写一份可回滚的检查清单
一、先说结论
数据清理真正危险的时刻,往往不是执行那一秒,而是执行之前没有把问题想清楚:要删的是哪一批数据、判断依据是什么、删错了能不能找回来。把这三个问题写下来,再动手,清理就从一次冒险变成一次可核对的操作。
二、执行前的四个问题
第一,范围是否唯一。不要只说清理旧数据,而要写出明确条件,例如创建时间早于某个日期、状态已经结束、并且没有被其他业务引用。条件越具体,误伤的空间越小。
第二,数量是否合理。先用只读查询统计符合条件的记录数,再和业务方的预期对比。如果数量明显偏大或偏小,先停下来查原因,而不是先执行再解释。
第三,抽查是否通过。随机抽取少量记录,逐条确认它们确实符合清理条件。抽查不是形式,而是最后一次发现条件写错的机会。
第四,回滚是否准备好。清理之前要有可用的备份或可恢复的副本,并确认恢复步骤有人验证过。没有回滚方案的清理,不应该进入执行环节。
三、一个可复用的检查清单
| 步骤 | 要确认的事 | 通过标准 |
|---|---|---|
| 确认范围 | 清理条件是否写完整 | 条件可以被第二个人复述 |
| 只读演练 | 先统计数量,再抽查样本 | 数量与预期一致,样本全部符合 |
| 准备回滚 | 备份完成,恢复方法明确 | 备份时间与范围可查 |
| 小步执行 | 分批执行,而不是一次全量 | 每一批都有结果记录 |
| 执行后核对 | 再查一次数量与关键指标 | 结果与预期一致,无异常波动 |
四、小步执行的好处
分批执行的最大好处,是把错误的影响范围控制住。第一批结果正常,再继续下一批;第一批出现异常,立刻停止,问题只停留在第一批。相比一次全量执行,分批看起来慢一些,但它把事后救火的时间省了下来。
执行后同样需要核对:符合条件的数据是否减少了预期数量,相关业务指标有没有异常变化,日志里有没有报错。核对通过,才算完成;核对不通过,就按回滚方案处理,而不是再补一次删除。
五、三个常见坑
第一个坑,是把测试环境的结论直接搬到生产环境。两个环境的数据分布可能不同,条件在测试环境成立,不代表在生产环境同样成立。
第二个坑,是条件里漏掉关联关系。主记录删了,关联记录还留着,或者反过来,都会留下不一致的数据。清理前要先理清关联,再决定处理顺序。
第三个坑,是没有留下操作记录。谁在什么时候、按什么条件、清理了多少数据,这些信息在事后复盘和问题排查时非常关键。记录本身也是清理工作的一部分。
六、结尾
好的清理流程不依赖胆量,而依赖清单:范围写清楚、数量先统计、样本先抽查、回滚先准备、执行分小步、结果再核对。把这张清单固定下来,下一次清理就不需要重新凭感觉做决定,也不需要为一次误操作付出高昂代价。
- 点赞
- 收藏
- 关注作者
评论(0)