一、误删场景分类与恢复策略
常见误操作场景:
DROP TABLE
误删单表(高频事故)DELETE
误删数据(可通过事务回滚抢救)DROP DATABASE
删除整个库(需全量备份)- 服务器rm -rf(物理文件删除)
恢复方案选择矩阵:
场景 | 推荐方案 | 时间窗口 |
---|---|---|
表结构删除(DROP) | 备份恢复 + Binlog | 备份周期内 |
数据删除(DELETE) | Binlog回滚 | Binlog保留期内 |
全库删除 | 全量备份 + 增量备份 | 备份有效期内 |
物理文件删除 | 磁盘恢复工具 | 立即停止写入 |
二、方案一:备份恢复(Java自动化实现)
1. 备份策略配置(mysqldump每日全备)
public class MySQLBackup {// 每日凌晨全量备份public static void fullBackup() throws IOException, InterruptedException {String backupPath = "/backup/full_" + LocalDate.now() + ".sql";String command = "mysqldump -uroot -p123456 --databases mydb > " + backupPath;Process process = Runtime.getRuntime().exec(command);int exitCode = process.waitFor();if(exitCode == 0) {System.out.println("全量备份成功:" + backupPath);} else {throw new RuntimeException("备份失败,退出码:" + exitCode);}}
}
2. Java执行恢复脚本
publi