MySQL数据误删的恢复分享

admin 2025年1月22日11:00:55评论4 views字数 918阅读3分3秒阅读模式
点击上方“IT那活儿”公众号--专注于企业全栈运维技术分享,不管IT什么活儿,干就完了!!!

问题背景

业务人员反应误操作不小心删除了部分表的业务数据,影响业务功能使用,要求尽快数据恢复。

数据库环境:

  • CentOS  7.3
  • MySQL   5.7.11

恢复准备

2.1 确认选择正确的备份文件

与业务确认涉及业务、数据库IP、数据误删除时间点、数据删除涉及的SCHEMA、数据表,确认该数据库为MySQLdump备份方式,备份策略为每日凌晨1点进行数据库全备份,备份保留3周,业务误删除数据时间点为当日9点左右,与开发、业务人员确认后选择当日1点备份下发至数据恢复环境准备恢复。

MySQL数据误删的恢复分享

2.2 提取单库或单表恢复数据

该数据库因为是全备份,备份文件共有28G,文件较大,所以选择全库数据恢复显然较为耗时,所以选择虫全备文件中抓取出具体需要恢复的SCHEMA、数据表。

1)MySQLdump全备文件中提取单个SCHEMA

格式:

sed -n ‘/^--Current Database:`SCHEMA`’/,/^--Current Database:`/p’ 全备文件.sql > schema .sql

2)MySQLdump全备文件中提取单个表

格式:

--建表sqlsed -e ‘/./{H;$!d;}’ -e ‘x;/CREATE TABLE `表名`/!d;q’ 全备文件.sql > 新sql文件--insertsqlgrep -i ‘表名’ 全备文件.sql > 新sql文件
MySQL数据误删的恢复分享

数据恢复

3.1 演练环境恢复数据

--建库MySQL>create database schema;--进入schemaMySQL>use schema;--导入建表sqlMySQL>source 建表.sql;--导入数据MySQL>source insert.sql;
MySQL数据误删的恢复分享

3.2 确认生产数据恢复

与业务沟通确认数据恢复要求,提供数据库演练环境,由业务方判断是全表恢复还是部分数据方式恢复。

总 结:

本方案介绍的是通过数据库备份的方式进行的数据恢复,当然,还可以通过binlog方式进行数据恢复。

MySQL数据误删的恢复分享
END

本文作者:王佳旗(上海新炬中北团队)

本文来源:“IT那活儿”公众号

MySQL数据误删的恢复分享

原文始发于微信公众号(网络安全与取证研究):MySQL数据误删的恢复分享

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年1月22日11:00:55
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   MySQL数据误删的恢复分享https://cn-sec.com/archives/3658797.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息