一、誤刪場景分類與恢復策略
?常見誤操作場景?:
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