MySQL闪回需满足:binlog开启(log_bin=ON)、格式为ROW、binlog_row_image=FULL;精确定位DELETE_ROWS_EVENT起止偏移;用mysqlbinlog加--base64-output=DECODE-ROWS -v解析生成INSERT语句;恢复时需停复制、绕过GTID与外键约束。确认 binlog 是否开启且格式为 ROWMySQL 闪回依赖 binlog 记录每行数据变更,但默认可能关闭,或设为 STATEMENT 格式------这种格式不记录具体行变化,无法还原 DELETE。必须先验证:执行 SHOW VARIABLES LIKE 'log_bin';,返回 ON 才有日志可查执行 SHOW VARIABLES LIKE 'binlog_format';,值必须是 ROW,MIXED 在某些情况下也不可靠检查 my.cnf 中是否有 binlog_row_image = FULL(5.6.2+ 默认开启,但低版本或手动调过可能为 MINIMAL,会导致闪回缺失旧值)定位误删语句对应的 binlog 位置不能靠时间粗略估算,DELETE 操作在 binlog 中表现为 DELETE_ROWS_EVENT,需精确定位起止偏移。常用方法是用 mysqlbinlog 解析并过滤:先查误删大致时间:SELECT NOW(); 或从应用日志确认,再用 mysqlbinlog --base64-output=DECODE-ROWS -v --start-datetime="2024-04-01 10:00:00" /var/lib/mysql/mysql-bin.000001 查看重点找含 ### DELETE FROM `db`.`table` 和 ### @1=... 的块(这是 ROW 格式记录的旧值),记下 # at 12345 开始位置和下一个事件的 # at 67890如果误删跨多个 binlog 文件,得依次检查,注意 mysqlbinlog 不支持自动拼接,需人工衔接用 mysqlbinlog 反向生成 INSERT 语句ROW 格式 binlog 里存的是被删行的"快照",但 mysqlbinlog 默认输出的是反向操作(即把 DELETE 转成 INSERT),前提是参数用对: 通义听悟 阿里云通义听悟是聚焦音视频内容的工作学习AI助手,依托大模型,帮助用户记录、整理和分析音视频内容,体验用大模型做音视频笔记、整理会议记录。
相关推荐
暴躁小师兄数据学院1 分钟前
【AI大数据工程师特训笔记】第02讲:PostgreSQL数据库生态全景沐风___1 分钟前
App 上架之后:如何看数据、获取用户与持续迭代产品暴躁小师兄数据学院4 分钟前
【AI大模型应用开发工程师特训笔记】第04讲(第9章):文件目录操作夜微凉413 分钟前
三、MySQL疯狂打码的少年20 分钟前
CISC vs RISC 对比小新同学^O^24 分钟前
Redis的简单总结暴躁小师兄数据学院25 分钟前
【AI大数据工程师特训笔记】第11讲:正则表达式与正则函数IT龟苓膏33 分钟前
MySQL InnoDB 内存结构与性能调优:Buffer Pool、脏页、刷盘、临时表和 filesort 一篇讲清城数派34 分钟前
2026年500米分辨率DEM地形数据(全球/全国/分省/分市)AAA大运重卡何师傅(专跑国道)39 分钟前
力扣hot100