0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

mysql数据恢复—mysql数据库表被truncate的数据恢复案例

Frombyte 来源:Frombyte 作者:Frombyte 2025-09-11 09:28 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

mysql数据库数据恢复环境:
某云ECS网站服务器,linux操作系统,部署了mysql数据库。工作人员在执行数据库版本更新测试时,错误地将本应在测试库执行的sql脚本在生产库上执行了,导致部分表被truncate,部分表内数据被delete。该实例内数据表采用innodb作为默认存储引擎。需要恢复被truncate的表以及被部分数据被delete的几个表。

mysql数据库数据恢复流程:
1、由于ECS内有其他业务仍在运行,为保证被truncate表的底层数据不被破坏,在恢复恢复数据之前对mysql数据库的data目录所在分区进行备份。

poYBAGPGUKOATvGbAACu_9nB79g905.png

北亚企安数据恢复—mysql数据恢复



2、由于需要恢复的表内不存在大字段类型值和myisam引擎表,北亚企安数据恢复工程师通过扫描数据段并下载恢复数据所必需的数据库数据段碎片。由于采用innodb引擎的数据表的数据恢复必须依赖表结构信息,mysql数据库的表结构信息存储于对应表名的frm文件内。本案例中frm文件完好,可直接使用。下载需要恢复的表所对应的frm文件。

pYYBAGPGUKyANaGiAADL7XSRMxw340.png

北亚企安数据恢复—mysql数据恢复


3、读取数据段内系统表信息,获取需要恢复的表在系统表内的注册信息。
4、恢复被truncate的表。在下载完成的数据段文件内提取对应于各表的数据页,通过解析对应表的frm文件获取到表的表结构信息。通过表结构信息获取到底层数据分配规则后,按照规则拆分数据段内二进制数据,并对不同类型数据进行字符展示转换,完成数据段到sql语句的转换。
5、恢复被delete数据的表,基本流程和恢复truncate表数据的流程基本一致,不同点在于数据解析时需要提取被标注为“delete”的记录。
6、根据解析出的表结构信息在恢复环境中的mysql实例内创建表,并将恢复出的数据导入。

poYBAGPGULWAScjBAAe_HCDtdZM695.png

北亚企安数据恢复—mysql数据恢复

poYBAGPGULWAQQjxAAnEUPibiqw556.png

北亚企安数据恢复—mysql数据恢复



7、由于直接从底层抓取出的记录可能存在主键不唯一(引擎在存储时产生的临时记录)和记录重复(缓冲段)以及乱码(扫描数据段时出现特征值匹配成功但不属于该表的数据段)等情况,提取出的记录可能存在异常,需要进行人工处理。
8、所有数据处理完成后。由用户方验证数据。经过用户方的验证,truncate的表和delete记录的表恢复完整。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据恢复
    +关注

    关注

    10

    文章

    736

    浏览量

    19083
  • 数据库
    +关注

    关注

    7

    文章

    4094

    浏览量

    68711
  • MySQL
    +关注

    关注

    1

    文章

    939

    浏览量

    29881
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    数据库数据恢复—北京某国企Oracle数据库Truncate数据丢失恢复案例

    北京某国企客户在业务运维过程中,误执行TRUNCATE TABLE CM_CHECK_ITEM_HIS操作,导致该数据清空,业务查询该
    的头像 发表于 04-09 14:30 176次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b><b class='flag-5'>恢复</b>—北京某国企Oracle<b class='flag-5'>数据库</b><b class='flag-5'>Truncate</b><b class='flag-5'>数据</b>丢失<b class='flag-5'>恢复</b>案例

    MySQL数据库备份恢复方式对比

    备份是数据库运维中最重要也最容易被忽视的环节。"重要"体现在数据丢失时备份是唯一的救命稻草,"忽视"体现在很多团队有备份脚本但从未做过恢复演练,等到真正需要恢复时才发现备份文件损坏或
    的头像 发表于 03-04 15:39 338次阅读

    Oracle数据库ASM实例无法挂载的数据恢复案例

    一个Oracle数据库故障表现为ASM磁盘组掉线,ASM实例无法挂载(mount)。数据库管理员自行进行简单修复,未能成功,随后联系北亚数据恢复中心
    的头像 发表于 02-24 15:19 298次阅读
    Oracle<b class='flag-5'>数据库</b>ASM实例无法挂载的<b class='flag-5'>数据</b><b class='flag-5'>恢复</b>案例

    深度解读MySQL数据库备份恢复策略

    数据是企业的核心资产,数据库备份是保障数据安全的最后一道防线。某天上午10点,运营人员误执行了一条DELETE语句,删除了订单中近一个月的数据
    的头像 发表于 01-26 17:40 949次阅读

    恒讯科技解析:如何安装MySQL并创建数据库

    安装和管理MySQL不必复杂。只需几分钟,你就能在Linux服务器上搭建MySQL,创建第一个数据库,甚至自动化备份——同时确保数据安全有序。 什么是
    的头像 发表于 01-14 14:25 484次阅读

    工业数据中台支持接入MySQL数据库

    工业数据中台完全支持接入MySQL数据库 ,且通过数据同步、集成与治理等技术手段,能够充分发挥MySQL
    的头像 发表于 12-04 11:23 574次阅读
    工业<b class='flag-5'>数据</b>中台支持接入<b class='flag-5'>MySQL</b><b class='flag-5'>数据库</b>吗

    Mysql数据恢复—Windows Server下MySQL(InnoDB)全误删数据恢复案例

    本地服务器,操作系统为windows server。服务器上部署mysql单实例,innodb引擎,独立空间。未进行数据库备份,未开启binlog。 人为误操作使用Delete命令删除数据
    的头像 发表于 09-23 15:56 933次阅读
    <b class='flag-5'>Mysql</b><b class='flag-5'>数据</b><b class='flag-5'>恢复</b>—Windows Server下<b class='flag-5'>MySQL</b>(InnoDB)全<b class='flag-5'>表</b>误删<b class='flag-5'>数据</b><b class='flag-5'>恢复</b>案例

    数据库数据恢复—服务器异常断电导致Oracle数据库故障的数据恢复案例

    Oracle数据库故障: 某公司一台服务器上部署Oracle数据库。服务器意外断电导致数据库报错,报错内容为“system01.dbf需要更多的恢复来保持一致性”。该Oracle
    的头像 发表于 07-24 11:12 956次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b><b class='flag-5'>恢复</b>—服务器异常断电导致Oracle<b class='flag-5'>数据库</b>故障的<b class='flag-5'>数据</b><b class='flag-5'>恢复</b>案例

    Oracle数据恢复—格式化分区导致Oracle数据库报错的数据恢复案例

    一台服务器上一个分区存放Oracle数据库数据。由于管理员误操作不小心删除了该分区,数据库报错,无法使用。 北亚企安数据恢复工程师到达现场
    的头像 发表于 07-22 14:06 595次阅读
    Oracle<b class='flag-5'>数据</b><b class='flag-5'>恢复</b>—格式化分区导致Oracle<b class='flag-5'>数据库</b>报错的<b class='flag-5'>数据</b><b class='flag-5'>恢复</b>案例

    MySQL数据备份与恢复策略

    数据是企业的核心资产,MySQL作为主流的关系型数据库管理系统,其数据的安全性和可靠性至关重要。本文将深入探讨MySQL
    的头像 发表于 07-14 11:11 983次阅读

    企业级MySQL数据库管理指南

    在当今数字化时代,MySQL作为全球最受欢迎的开源关系型数据库,承载着企业核心业务数据的存储与处理。作为数据库管理员(DBA),掌握MySQL
    的头像 发表于 07-09 09:50 999次阅读

    远程访问内网MySQL数据库?这个方案更简单

    各位开发者朋友们,是否还在为无法随时随地访问内网MySQL数据库而烦恼?今天分享一个超实用的方法,通过容器部署 MySQL 结合 ZeroNews 内网穿透,让你在任何地方都能安全访问和管理
    的头像 发表于 07-04 18:06 1104次阅读
    远程访问内网<b class='flag-5'>MySQL</b><b class='flag-5'>数据库</b>?这个方案更简单

    数据库数据恢复—MongoDB数据库文件丢失的数据恢复案例

    MongoDB数据库数据恢复环境: 一台操作系统为Windows Server的虚拟机上部署MongoDB数据库。 MongoDB数据库
    的头像 发表于 07-01 11:13 892次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b><b class='flag-5'>恢复</b>—MongoDB<b class='flag-5'>数据库</b>文件丢失的<b class='flag-5'>数据</b><b class='flag-5'>恢复</b>案例

    数据库数据恢复—SQL Server数据库加密如何恢复数据

    SQL Server数据库故障: SQL Server数据库加密,无法使用。 数据库MDF、LDF、log日志文件名字篡改。
    的头像 发表于 06-25 13:54 935次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b><b class='flag-5'>恢复</b>—SQL Server<b class='flag-5'>数据库</b><b class='flag-5'>被</b>加密如何<b class='flag-5'>恢复数据</b>?

    oracle数据恢复—oracle数据库误执行错误truncate命令如何恢复数据

    oracle数据库误执行truncate命令导致数据丢失是一种常见情况。通常情况下,oracle数据库误操作删除数据只需要通过备份
    的头像 发表于 06-05 16:01 2047次阅读
    oracle<b class='flag-5'>数据</b><b class='flag-5'>恢复</b>—oracle<b class='flag-5'>数据库</b>误执行错误<b class='flag-5'>truncate</b>命令如何<b class='flag-5'>恢复数据</b>?