用户申请注销,主库记录删了,冷备和对象存储里的历史备份还能查到,客服按手机号一搜就出来。乍看像缓存或者权限的锅,追下去往往不是。

SELECT user_id FROM deleted_users
WHERE deleted_at < now() - interval '180 days';

追下去是这么回事:删除只做了主库的逻辑删除,备份按策略保留 180 天,对象存储里的报表快照没人清理。合规要求的是全链路删除。

「备份数据彻底清除」相关的验证我通常做两遍,改完一次、隔天再看一次,确认不是临时生效。接口问题先分清是没发出去、发出去了没收到,还是收到了处理失败。

偶发问题先统计频率,一小时几次和一天一次,查法完全不同。改完顺手把文档补一句,省得下次自己重新推一遍。

监控和日志的时间要对上,时区不一致会多绕很大一圈。

具体做法是,建删除登记表 记录要清除的标识;备份恢复后跑一遍删除清单;对象存储按前缀定期清理;留存期限写进备份策略。

验收就看一点,按注销手机号在备份和对象存储里都查不到记录。

作者 9823189