误删后的恢复思路要点
- 误删后立刻停写,避免新数据覆盖待恢复的位置
- 有备份就按备份点恢复,最稳也最常用
- 开了 binlog 可用 mysqlbinlog 按时间点回放补救
- 事务内未提交的 DELETE 直接 ROLLBACK 即可撤销
- 从库延迟复制可临时暂停,从延迟副本捞回数据
- 恢复前先在测试库验证,确认行数一致再上生产
误删后的恢复思路示例
-- 事务内发现删错,直接回滚
START TRANSACTION;
DELETE FROM user WHERE status = 'test';
ROLLBACK; -- 撤销刚才的删除
-- 已提交时靠 binlog 按时间点恢复
-- mysqlbinlog --start-datetime='2024-06-01 10:00:00' binlog.0001 | mysql
避坑提醒:最好的『恢复』是预防:DELETE 前先 SELECT、关键表加软删除字段,真出事时软删除比硬删除好救一百倍。