技术分享 | MySQL数据误删除的总结

关于MySQL中删除操作的注意事项 关键问题:MySQL不允许在子查询中使用要删除的表 错误示范: DELETE FROM post_activity_user WHERE id IN ( SELECT a.id FROM post_activity_user a LEFT JOIN post_activity_info b ON a.activity_id = b.id WHERE b.enterprise_id = 10000000 AND b.activity_type = 3 ) 正确处理: DELETE FR. 阅读详情

欢迎来到 GreatSQL社区分享的MySQL技术文章,如有疑问或想学习的内容,可以在下方评论区留言,看到后会进行解答

内容提要

    1. 用delete语句
    1. 使用drop、truncate删除表以及drop删除库
    1. 使用rm 删除实例
    1. 小结

1. 使用delete语句

恢复方式:使用binlog,利用Flashback工具恢复,Flashback的原理是修改binlog拿到原库里回放,这个方案的前提是binlog_format=row 并且binlog_row_image=full

单个事务的处理: 1.insert 对应的 write_row event 改成delete_row event 2.delete 对应的 delete_row event 改成write_row event 3.update binlog中记录了修改前和修改后的值,对掉位置就可以了

多个事务的处理注意调整事务的顺序,说完事后处理,下面说下事前预防: 1.将sql_safe_updates设置为on,这样delete和update中无where子句的语句就会报错,生产如果要执行整表删除可以用truncate或者where 1=1。 2.上线,必须做sql审计,至少也要在测试环境完成验证。

2. 使用drop、truncate删除表以及drop删除库

恢复方式:全量备份+binlog恢复,这里无法使用Flashback工具,原因是drop table、truncate table 即使用的是binlog_format=row但在binlog中记录还是statement格式

恢复的技巧:因为使用mysqlbinlog无法指定表恢复,可以将全量恢复出的临时库做为主库的备库,然后指定表恢复,可以加快恢复速度。恢复方式:使用延迟复制的备库,5.6以后的功能通过change master to master_delay=N,N的单位是秒。

change master to master_delay=N

减少误操作的建议,账号分离: 1.业务账号,默认只给select update insert权限,delete权限需要按表申请,DDL通过运维平台完成,如有自动建表的需求,可以指定分create table的权限。 2.开发同事和dba只给只读权限,变更操作通过运维平台完成,如果需要更高权限,再单独申请。 3.删除表的时候遵循修先改表名再删除的方式操作,表名统一命名前缀,并放到指定的临时库里,删除操作由平台自动统一完成。

3. 使用rm删除实例

这个就只能靠我们的HA了,如果系统层面误操作,把我们的集群主机干掉了,那就得靠我们的跨机房HA了。

4. 小结

以上是对误删除数据恢复的总结,作为dba我们也要时刻关注业务,虽然被误删除的数据一定是要找回来的,但是恢复业务不一定要恢复全部数据。

举个例子,我们误操作的是一张日志表只写不读那就不影响业务,给我们恢复的时间就比较宽裕,不恢复那是肯定不行滴!又或者是我们进行了drop table,交易要写这张表,几乎不读,那先恢复个表结构。这些要日常积累业务知识,并迅速与开发确认,确保自己做出的决策能恢复业务且不影响业务完整性。

每次误操作都是血的教训,在没有想清楚sql执行的结果之前,先不要敲下回车键哦!数据是公司的生命线,我们做为数据库管理员,要守好公司的生命线。

最后,作为dba技术原理要精通,库对应的业务也要了解哦,这样遇到问题的时候我们才能找到更全面更合理的解决方案。

Enjoy MySQL :)

文章推荐:

GreatSQL MGR FAQ https://mp.weixin.qq.com/s/J6wkUpGXw3YkyEUJXiZ9xA

万答#12,MGR整个集群挂掉后,如何才能自动选主,不用手动干预 https://mp.weixin.qq.com/s/07o1poO44zwQIvaJNKEoPA

『2021数据技术嘉年华·ON LINE』:《MySQL高可用架构演进及实践》 https://mp.weixin.qq.com/s/u7k99y6i7riq7ScYs7ySnA

一条sql语句慢在哪之抓包分析 https://mp.weixin.qq.com/s/AYibbzl860D90rOeyjB6IQ

万答#15,都有哪些情况可能导致MGR服务无法启动 https://mp.weixin.qq.com/s/inSGpd0Q_XIl2Mb-VsvNsA

技术分享 | 为什么MGR一致性模式不推荐AFTER https://mp.weixin.qq.com/s/rNeq479RNsklY1BlfKOsYg

关于 GreatSQL

GreatSQL是由万里数据库维护的MySQL分支,专注于提升MGR可靠性及性能,支持InnoDB并行查询特性,是适用于金融级应用的MySQL分支版本。

Gitee: https://gitee.com/GreatSQL/GreatSQL

GitHub: https://github.com/GreatSQL/GreatSQL

Bilibili: https://space.bilibili.com/1363850082/video

微信&QQ群: 可搜索添加GreatSQL社区助手微信好友,发送验证信息“加群”加入GreatSQL/MGR交流微信群

QQ群:533341697 微信小助手:wanlidbc

本文由博客一文多发平台 OpenWrite 发布!

MySQL数据文件被误删,如何进行恢复? 今天跟大家分享了一种误删数据文件利用内存数据恢复的方法,其实还有一些其他的恢复方法,需要根据不同场景去选取最优的处理方案。预防远比处理的意义大得多。另外,在 MySQL 的集群方案中,会时不时地用到备份来恢复实例,因此定期检查备份的有效性也很有必要。如果你是业务开发同学,你可以用 show grants 命令查看账户的权限,如果权限过大,可以建议 DBA 同学给你分配权限低一些的账号;你也可以评估业务的重要性,和 DBA 商量备份的周期、是否有必要创建延迟复制的备库等等。 阅读详情

相关推荐

海康摄像头RTSP流延迟优化实战:从VLC到OpenCV的5种方案对比与性能调优

本文针对海康摄像头RTSP流的高延迟问题,深入剖析了延迟根源,并系统对比了从VLC、OpenCV到海康官方SDK、FFmpeg及硬件加速等五种主流方案的性能表现。重点分享了缓冲区设置、协议优化、多线程架构与硬件解码等实战调优技巧,旨在帮助开发者将视频流延迟从秒级优化至毫秒级,满足工业检测、安防监控等高实时性场景需求。

hh234的博客 806

防止mssql误删除数据的方法

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33675507的博客 238

WinCC与施耐德PLC的Modbus TCP通信实战指南

本文详细解析了西门子WinCC与施耐德PLC通过Modbus TCP协议实现通信的完整实战流程。内容涵盖硬件网络配置、Modbus地址映射核心规则、WinCC驱动连接建立、变量创建及高级数据访问技巧,并提供了常见故障排查思路,帮助工程师高效解决跨品牌设备通信难题。

weixin_29194693的博客 1001

MYSQL数据库误删除数据处理

MYSQL数据库误删除怎么办 在使用MYSQL数据库时,当遇到需要使用一些高风险命令对数据库进行操作,比如delete、drop、truncate等语句,一旦出现失误,就有可能会造成 1、开启binlog时

qq_29841067的博客 1255

华为防火墙NAT避坑指南:当双ISP出口遇到服务器发布,这些细节不注意会翻车

本文深入解析华为防火墙在双ISP出口环境下服务器发布的实战配置,重点探讨no-reverse参数对Server-Map表的影响、源进源出功能的实现及线路切换时的会话保持问题。通过策略路由和智能选路技术,确保HTTP/FTP服务在多运营商链路中的高可用性,避免路径不对称和NAT映射冲突等常见陷阱。

weixin_30897233的博客 550

基于Simulink的异步电机定子磁链定向控制(SFOC)仿真

本文带你从零构建了异步电机SFOC系统​ 的完整Simulink仿真模型,实现了:✅ 搭建异步电机、逆变器、风机负载的主电路与传感器模型;✅ 用MATLAB Function实现定子磁链观测(电压模型)、坐标变换、双闭环PI控制;✅ 验证SFOC在转速跟踪(响应0.2s、超调4%)、转矩响应(恢复0.15s)中的高性能;✅ 对比RFOC,明确SFOC在参数鲁棒性(转子电阻+50%时波动<2%)上的独特优势;✅ 理解SFOC“定子磁链定向+解耦控制”的核心思想(低成本高鲁棒性驱动的工程实现)。

xiaoheshang_123的博客 389

技术分享 | 误删表以及表中数据,该如何恢复?

作者杨小云爱可生数据库工程师,负责MySQL日常维护及DMP产品支持。擅长mysql故障处理。本文来源原创投稿*爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。

ActionTech的博客 5324

SPME/IP PPT详解

什么是中间件?它是操作系统与应用程序之间的一块代码,它对于应用程序提供了一些标准接口,屏蔽了应用程序与底层的一些交互,上层应用程序只要和中间件进行交互就可以了,这样就可以达到一个解耦的目的。SOMEIP其实是一个中间件,它是操作系统与应用程序之间的一段代码,它是可以运行在TCP/IP之上的,可以在很多平台上使用,可以适配较多的操作系统,可以提供很多接口。经过序列化之后,在网络上传输的是一些101010这样的二进制流。SOME/IP可以承接应用层的一些数据,进行打包放到传输层。

usstmiracle的博客 619

误删了公司数据库,但我还是活下来了

(点击上方公众号,可快速关注)英文:Zachary Kuhn,翻译:36氪http://36kr.com/p/5129182.html上周我与同事们进行了一次关于职业生涯...

程序员的那些事 4641

SAP S/4HANA 数据归档的实施方法

实施 SAP S/4HANA 数据归档是一个系统的过程,涉及到策略的定义、技术的执行以及后续的维护和验证。正确的归档策略不仅能优化系统性能,还能帮助企业降低运营成本,确保数据安全,并符合相关法律法规的要求。通过以上案例,我们可以看到不同行业如何依据自己的业务需求和法规要求,利用 SAP S/4HANA 的强大功能来实现数据归档的目标。这些实践证明了数据归档在现代企业信息管理中的重要地位和作用。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 890

Hermes Agent 对阵 OpenClaw:自我改进的 AI 队友

但在 2026 年 2 月,Nous Research 发布了 Hermes Agent,它带来了不同的愿景:一个不仅能够运行,还能学习的代理。在完成复杂的多步骤任务后,它会分析自己的操作并创建一个可复用的技能。对于已在使用 OpenClaw 的澳大利亚企业而言,这意味着您可以试用 Hermes Agent,而无需丢失数月的配置和自定义成果。最重要的区别在于理念:OpenClaw 是一个需要配置的工具,而 Hermes Agent 则是一个会学习的队友。OpenClaw 的技能是静态的。

xiaoshun007的专栏 1571

MySQL之误删数据如何处理

1:误删除行数据2:误删除表数据3:误删除库数据4:误删除MySQL实例下面我们就按照这个顺序来一起看下。

wang0907的博客 1万+

手把手教你学PCIE--PCIe架构详解 - 物理层结构

在前一篇文章中,我们对PCIe与其他总线协议进行了对比分析。本文将深入探讨PCIe的物理层结构,这是PCIe协议的核心组成部分之一。物理层负责实际的电气信号传输,理解其工作原理对于设计和调试PCIe系统至关重要。PCIe的物理层是协议栈的最底层,负责将数据从链路层转换为电信号进行传输,并在接收端将电信号还原为数据。差分信号传输:通过一对差分信号线实现高速、低噪声的数据传输。时钟恢复:从数据流中提取时钟信号以同步收发双方。均衡与预加重:补偿信号在传输过程中的损耗,提高链路可靠性。

MHD0815的博客 362

【mysql】mysql之数据误删恢复

数据误删除恢复流程    前期介绍    思路 1.停库,避免二次伤害 2.创建新库 3.倒入前一天的全备 4.通过binlog找到前一天23:00到第二天10点之间的数据 5.导入找到的新数据 6.恢复业务(A和B两种方式,按照实际环境选取其一方式即可) a.直接使用临时库顶替原生产库,前端应用割接到新库(数据量特别大的时候) b.将误删除的表单独导出,然后导入到原生    环境模拟     环境准备     故障重现     故障恢复(A方案)     故障恢复(B方案)

zerotoall的博客 2779

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

mysql误删除数据恢复_mysql误删除数据恢复

某天,我正在快乐的敲着代码突然旁边的马大哈同事一声惨叫,好事的我,连忙把头伸过去问问怎么了,马大哈说,他不小心在表上点了清空表这个时候,要镇静,假装不慌,,,但是没有两分钟,对面的同事说,怎么访问不了了……好吧,这里直接说方案由于navicat的清空表,实际上就是执行的是delete,更狠的截断表先不说,那个更难恢复首先查看一下mysql自带的bin日志登陆你的mysql执行下面这个命令先看看最新...

weixin_29935511的博客 2237

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

mysql表中数据的恢复数据恢复_SQL Server数据库误删除表中记录的数据恢复

SQL Server数据库误操作不小心delete了一下,还是update一下怎么恢复数据呢?,或者直接把数据库删除了,如何恢复误删除的数据呢?操作还是小心谨慎不出问题的好~~1:建立测试环境创建表,插入几条数据;CREATE DATABASE INTOHARDCREATE TABLE I1(ID INT PRIMARY KEY)INSERT INTO dbo.I1(ID)VALUES (0)IN...

weixin_31560425的博客 1217

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

MySQL数据误删除恢复的场景

日常工作中,可能会碰到误删除某张表的场景,爱可生开源社区的这篇文章《技术分享 | 误删表以及表中数据,该如何恢复?》就讲解了MySQL通过binlog恢复的具体操作。场景:客户误删了一张表,所以想恢复某张表的数据,期望恢复到删除之前的数据。下面介绍的的方法是针对每天有备份的数据库和开启 binlog 日志的。说明:本文中的测试库为test数据库,测试表是tes中stude...

bisal的专栏 620

oracle 回滚 binlog,利用binlog2sql快速闪回误删除数据 - 别拿豆包不当干粮

各位兄弟们,好久不见了!最近一直忙于新书的创作,所以一直没有时间更新博客。不知道这段时间大家学习得怎么样,希望大家通过看我的文章给大家带来帮助。老张我也花费了大量时间录制一些数据库的视频课程,大家要是感兴趣,也可以去学习,不要错过啊!今儿抽出时间,给大家分享一篇利用binlog2sql闪回工具,来恢复误删除的数据。我们都知道binlog的作用是备份恢复和完成MySQL的主从复制功能。利用mysql...

weixin_42502378的博客 406

MySQL误删数据除了跑路还能怎么办?

1:误删除行数据2:误删除表数据3:误删除库数据4:误删除MySQL实例下面我们就按照这个顺序来一起看下。

wang0907的博客 268

mysql 删除表数据_Mysql恢复误删除表方法2

上一期分享的恢复误删除表的方法是,通过新建数据库实例,恢复全量备份,与主库配置同步关系,将日志应用到误删除表之前的位点,完成恢复后,导出表数据,并导入主库。今天分享的场景是,误删除表后,发现主库的实例也刚好挂掉了,那应该怎么恢复呢?将主库的binlog拷贝到新实例,然后构建为新实例的relay log,利用sql_thread应用日志。恢复前提:1.拥有全库备份文件2.拥有全库备份后的所...

weixin_39673704的博客 300

误删除LAMP中mysql下的mysql数据库,造成mysql.user Table 不存在

由于再搞LAMP开发,早上在操作mysql db的时候,一时误操作把mysql数据库给误删除了,然后在使用grant对某一个数据库进行权限赋予时候报错,在stackoverflow和百度上浪了半天,百度的方法是重装数据库,在statckoverflow上看到的操作mysql_install_db的,于是按照这个方法修复了一下,好了,没有图的文章都是耍流氓,直接上图来复现下我的整个操作过程。 1、

u011559236的博客 2076

【MySQL】误删除数据库后如何恢复

晚上加班在某服务器上安装MariaDB,因为冲突的原因需要删除该机器上原有的MySQL文件,本人Xshell同时连接了多台服务器,结果在删除的时候点错了服务器,把另一台测试环境的MySQL执行了 yum remove mysql-server mysql-client mysql-common 命令给删除了。检查了一下MySQL所在目录,看到下面的data、binlog等文件夹都还在,点进data后看到里面有不少文件,包括该测试环境所创建的库为名称的文件夹。

xz6u08的博客 357

mysql load file 跳过第一行_技术分享 | 使用 Python 解析并“篡改”MySQL 的 Binlog

作者:姚远专注于 Oracle、MySQL 数据库多年,Oracle 10G 和 12C OCM,MySQL 5.6,5.7,8.0 OCP。现在鼎甲科技任技术顾问,为同事和客户提供数据库培训和技术支持服务。本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。前言MySQL 的 Binlog 记录着 MySQL 数据库的所有变更信息,了解 B...

weixin_39754616的博客 351

mysql binlog 闪回_mysql binlog2sql闪回数据

利用binlog2sql快速闪回误删除数据 - 别拿豆包不当干粮各位兄弟们,好久不见了!最近一直忙于新书的创作,所以一直没有时间更新博客。不知道这段时间大家学习得怎么样,希望大家通过看我的文章给大家带来帮助。老张我也花费了大量时间录制一些数据库的视频课程,大家要是感兴趣,也可以去学习,不要错过啊!今儿抽出时间,给大家分享一篇利用binlog2sql闪回工具,来恢复误删除的数据。我们都知道binlo...

weixin_39948247的博客 184

php删除sql server 2008,MSSQL_SQL Server2008 数据库误删除数据的恢复方法分享,SQL Server中误删除数据的恢复本 - phpStudy...

SQL Server2008 数据库误删除数据的恢复方法分享SQL Server中误删除数据的恢复本来不是件难事,从事务日志恢复即可。但是,这个恢复需要有两个前提条件:1. 至少有一个误删除之前的数据库完全备份。2. 数据库的恢复模式(Recovery mode)是“完全(Full)”。针对这两个前提条件,会有三种情况:情况一、如果这两个前提条件都存在,通过SQL语句只需三步就能恢复(参考文章),...

weixin_34278412的博客 179
上一篇: 技术分享 | 自制GreatSQL Docker镜像
下一篇: 万答#5,binlog解析出来的日志为何无法恢复
GreatSQL社区
博客等级 码龄5年 1210粉丝 390原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值