必收藏!MySQL误删数据救命指南
本篇文章向大家介绍《必收藏!MySQL误删数据救命指南》,主要包括MySQL、数据库、运维、后端、程序员,具有一定的参考价值,需要的朋友可以参考一下。

作者:年底卖茶冲KPI / 老叶茶馆
出处:https://yq.aliyun.com/article...
首先看下mysql误删数据排名最前的几种是:
1.误删文件
2.误删库、表
3.错误全表删除 / 更新
4.升级操作失误
都来看看你命中过几个,hoho。
简单说下我亲手造的一个大事故吧。
那大概是一个春暖花开的季节,我的内心是激动澎湃的,因为已经安排了休假计划。在这前几天,已经把一个新项目的数据库环境都部署好了,包括自动化备份。
等我美美的出去玩的时候,悲剧发生了,业务要求进行数据回滚,但发现备份文件不可用,原因是 备份时指定的字符集和表字符集不一致。我勒个擦,原来该项目采用新的字符集,但是我没有认真检查确认并修改备份脚本,结果导致备份失效。最后,因为这个事,当季度绩效结果被降档,boss也为此背锅~
好吧,回到正题,先说几点我平时预防误操作导致文件/数据丢失不成熟的建议:
1.欲删除文件时,将rm命令改成mv,可在系统层面将rm命令做个alias(或参考 Windows / Mac OSX做法,删除文件时先进回收站)。
删除数据库、表时,不要用drop命令,而是rename到一个专用归档库里;
2.删除表中数据时,不要直接用delete或truncate命令,尤其是truncate命令,目前不支持事务,无法回滚。
3.用delete命令删除数据时,应当先显式开启事务,这样误操作时,还有机会进行回滚。
4.要大批量删除数据时,可以将这些数据insert...select到一个新表,确认无误后再删除。或者反其道行之,把要保留的数据写到新表,然后将表重命名对掉。
5.执行重要命令之前,先准备好相关命令,再三确认无误才之行,对于新鸟而言,最好请你的boss坐你旁边镇场几次,否则极有可能会连累大家~
以上几条,也是我自己奉行的原则。总之,要时刻保持对线上生产环境的敬畏之心。虽说现在大部分操作可以靠平台来完成了,但平台也不是万能的,不也发生过平台本身的缺陷造成数据丢失、代码回滚、部署失误等事故嘛,我就不点名了。
做好备份,不管是物理备份还是逻辑备份!
做好备份,不管是物理备份还是逻辑备份!
做好备份,不管是物理备份还是逻辑备份!
重要的事情说三遍都不嫌多。
说完预防措施,我们再说万一发生误操作时,怎么以最快速度进行补救。 我们分别列举几种常见的情况:
1.执行DROP DATABASE / DROP TABLE命令误删库表,如果碰巧采用共享表空间模式的话,还有恢复的机会。如果没有,请直接从备份文件恢复吧。神马,你连备份文件都没有?那麻烦退出DBA届吧,一个连备份都懒得做的人,不配成为DBA的。
2.接上,采用共享表空间模式下,误删后立刻杀掉(kill -9)mysql相关进程(mysqld_safe、mysqld),然后尝试从ibdataX文件中恢复数据。
3.误删除正在运行中的MySQL表ibd或ibdataX文件。请立即申请对该实例进行维护,当然,不是指把实例关闭,而是把业务暂停,或者把该实例从线上环境摘除,不再写入新数据,然后利用linux系统的proc文件特点,把该ibd文件从内存中拷出来,再进行恢复,因为此时mysqld实例在内存中是保持打开该文件的,切记这时不要把mysqld实例关闭了。
4.接上,把复制出来的ibdataX或ibd文件拷贝回datadir后,重启mysqld进入recovery模式,innodb_force_recovery 选项从 0 - 6 逐级测试,直至能备份出(整个实例或单表的)所有数据后,再重建实例(或单表),恢复数据。
5.未开启事务模式下,执行delete误删数据。意识到后立即将mysqld(以及mysqld_safe)进程杀掉(kill -9),不要任何犹豫,然后再用工具将表空间数据读取出来。因为执行delete删除后,实际数据并没被物理清除,只是先打上deleted-mark标签,后续再统一清理,因此还有时间差。
5.执行truncate误清整表。如果没使用共享表空间模式的话,基本别想了,走备份恢复+binlog吧。
6.执行不带where条件的update,或者update错数据。也别费劲了,走备份恢复+binlog吧。
终于介绍完啦!小伙伴们,这篇关于《必收藏!MySQL误删数据救命指南》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布数据库相关知识,快来关注吧!
Mysql性能优化与测试
- 上一篇
- Mysql性能优化与测试
- 下一篇
- 数据库密码配置项都不加密?心也太大了吧!
-
- 朴实的战斗机
- 太全面了,收藏了,感谢博主的这篇博文,我会继续支持!
- 2023-03-04 14:14:47
-
- 糟糕的唇彩
- 受益颇多,一直没懂这个问题,但其实工作中常常有遇到...不过今天到这,帮助很大,总算是懂了,感谢作者大大分享文章内容!
- 2023-03-02 18:41:33
-
- 专注的白开水
- 这篇博文太及时了,细节满满,很有用,已加入收藏夹了,关注作者大大了!希望作者大大能多写数据库相关的文章。
- 2023-02-12 05:56:04
-
- 数据库 · MySQL | 1星期前 | MySQL · 慢查询 · 索引优化 · COUNT查询 · 汇总表 · 联合索引 覆盖索引 汇总表 MySQL COUNT慢 COUNT(*)优化
- MySQL COUNT(*) 总数查询变慢怎么办:从扫描行数到汇总表的完整治理流程
- 329浏览 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 485次学习
-
- ljg-skills
- ljg-skills 是李继刚开源的 AI 技能与提示词集合,面向大模型使用者整理了一批可复用的 prompt、角色设定和任务技能模板,适合用于学习提示词设计、搭建个人 AI 工作流和沉淀团队常用智能体能力。
- 1842次使用
-
- MELO音乐
- MELO音乐是一站式AI视频与音乐制作助手,对标suno, udio的高品质体验。提供伴奏生成、原创写词、无损导出、哼唱识曲、混音变声等全套音频与短视频编辑工具。无论是流行Kpop、电音说唱、民谣古风、摇滚儿歌还是商用轻音乐,MELO为你免费谱曲,轻松做同款!
- 1759次使用
-
- UniScribe
- UniScribe 是一款 AI 音视频转文字与内容整理工具,支持上传音频、视频文件或粘贴 YouTube 链接,自动生成转写文本、摘要、思维导图和关键问题,并支持多格式导出,适合会议记录、课程学习、访谈整理和内容创作复盘。
- 1712次使用
-
- 剧云
- 剧云是专业中文剧本创作平台,安全稳定运行十余年,集成AI编剧、剧本医生审核、人物小传、剧情关系图、大纲编写、多人协作、Word导入导出、版权管控功能,数据安全防护,轻松高效创作剧本。
- 1899次使用
-
- 万象有声
- 万象有声,一个专为有声创作者打造的新一代智能有声内容创作平台。平台提供专业的智能拆章、智能画本编辑、AI配音、AI生成音效、后期制作、智能对轨、智能审听等有声创作全流程工具,可以帮助创作者高效、低成本创作出引人入胜的有声作品。立即体验,让有声书制作更简单!
- 1886次使用
-
- Linux系统下如何安装Mysql(centOS7以上不支持Mysql)
- 2023-01-16 100浏览
-
- 在windows上用docker desktop安装StoneDB
- 2023-01-20 100浏览
-
- 总结 mysql 一些小技巧
- 2023-01-21 100浏览
-
- MySQL如何给大表加索引
- 2023-01-26 100浏览
-
- 积分商城简要设计
- 2023-02-17 100浏览

