iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL误删物理文件的恢复(Linux)
  • 176
分享到

MySQL误删物理文件的恢复(Linux)

2024-04-02 19:04:59 176人浏览 独家记忆
摘要

以前拜读过一位oracle大大的文章,结果自己在测试环境也遇到了,顺手记下来 Oracle大大的文章链接Http://blog.itpub.net/17203031/viewspace-1077770/ -

以前拜读过一位oracle大大的文章,结果自己在测试环境也遇到了,顺手记下来
Oracle大大的文章链接Http://blog.itpub.net/17203031/viewspace-1077770/
-------------------------------------------------------------------------------------正文------------------------------------------------------------------------------------
背景:DB的测试环境误删Mysql日志文件ib_logfile1
环境:mysql5.6.27
问题原因的分析:手滑了_(:з」∠)_
总体思路:
最重要的是冷静,不要乱搞...
linux下的文件描述符的介绍,直接摘录Oracle大大的描述
MySQL误删物理文件的恢复(Linux)

所以最重要的一点:冷静,不要去随便重启数据库,保持当时候的操作现场;

现场还原:测试环境中模拟误删ib_logfile1
MySQL误删物理文件的恢复(Linux)

然后发现数据依然在正常运行,可以插入新的数据
MySQL误删物理文件的恢复(Linux)
结合之前对Linux的文件描述符的介绍,可以确定这个文件还是存在的~
那么动手找一下,先确定Mysql的进程ID:ps -ef | grep mysql
然后在/proc/fd里面找到这个PID对应的文件夹(文件名=pid)看一下里面的内容
MySQL误删物理文件的恢复(Linux)
可以看到文件还在,但是被标记成了deleted,既然文件还在,那就好办了~
赶紧把文件拷贝回去?  No!
由于日志也有buffer(innodb_log_buffer_size),拷回去之前,要确认这些日志都刷新到了磁盘,同时也要确认在拷贝的时候,没有新的事务在操作MySQL数据库;
所以先执行flush tables with readlock;再执行flush logs;
MySQL误删物理文件的恢复(Linux)
然后看一下新生成的几个binlog,旧一点的binlog里面能看到“误删”ib_logfile1之后执行的语句
MySQL误删物理文件的恢复(Linux)
在新生成的binlog里面则什么都没有
MySQL误删物理文件的恢复(Linux)
确认了旧的redo log已经写入到磁盘,也没有新的事务在执行,那么再把“误删”的文件拷贝回去;
MySQL误删物理文件的恢复(Linux)

错误的场景:
假设最初出现问题的时候,关闭了数据库,最终这个log没了,那么在启动MySQL的时候就会有如下的报错
MySQL误删物理文件的恢复(Linux)
或者是内容有问题,(这里偷懒了,忘了在刷buffer前拷贝一个错误的logfile1,姑且就拿logfile0来凑数了,当成一个错误的logfile....._(:з」∠)_...本质上应该是一样的效果)
MySQL误删物理文件的恢复(Linux)
那么把之前处理好以后拷贝出来的logfile拷回去看看,修改文件的所有者和权限,启动MySQL之后,噫!报错了~ MySQL误删物理文件的恢复(Linux)
对比下之前拷贝一个内容有问题的logfile的错误信息(模拟操作:没有把log buffer的数据刷新到磁盘,结果拷贝出来的logfile不对)
MySQL误删物理文件的恢复(Linux)
数据文件和正确处理的logfile的LSN是恰好对应上的;
为什么明明这个ib_logfile明明有问题,mysql还启动了?
看看两次替换日志文件后, mysql输出的信息(上面是没有刷新buffer的logfile,下面是刷新过buff的)
MySQL误删物理文件的恢复(Linux)

MySQL误删物理文件的恢复(Linux)
可以看到数据库根据刷新到磁盘的数据文件的为准,截断了这些有问题的logfile,然后重新生成了新的logfile的LSN,
推测:生成新的logfile的LSN之后,数据文件中的标记位也发生了变更,从3117292814变成了3117292824,这也是为什么第二次拷贝正确的logfile进去之后,还是打印出了错误日志;
-------------------------------------------------------------------------------------结束------------------------------------------------------------------------------------
PS:不管是误删了数据文件还是日志文件,切记不要关掉数据库,且恢复的时候一定要确认缓存数据全部刷新到了磁盘~
您可能感兴趣的文档:

--结束END--

本文标题: MySQL误删物理文件的恢复(Linux)

本文链接: https://www.lsjlt.com/news/49602.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL误删物理文件的恢复(Linux)
    以前拜读过一位Oracle大大的文章,结果自己在测试环境也遇到了,顺手记下来 Oracle大大的文章链接http://blog.itpub.net/17203031/viewspace-1077770/ -...
    99+
    2024-04-02
  • linux误删文件如何恢复
    这篇文章主要介绍“linux误删文件如何恢复”,在日常操作中,相信很多人在linux误删文件如何恢复问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux误删文件如何恢复”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-22
  • Linux误删文件可以恢复吗
    这篇文章主要介绍“Linux误删文件可以恢复吗”,在日常操作中,相信很多人在Linux误删文件可以恢复吗问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux误删文件可以恢复吗”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-13
  • Linux中怎么恢复误删文件
    这期内容当中小编将会给大家带来有关Linux中怎么恢复误删文件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1、lsof原理:这个命令实际上并不能直接用来恢复文件,不过它可以列出被各种进程打开的文件信息。...
    99+
    2023-06-15
  • linux误删文件夹如何恢复
    在Linux中,当你误删了一个文件夹时,可以尝试使用以下方法恢复:1. 使用回收站恢复:某些桌面环境或文件管理器会有回收站功能,被删除的文件夹可能会被移动到回收站中。你可以在桌面上或文件管理器中查找回收站,并恢复被删除的文件夹。2. 使...
    99+
    2023-08-11
    linux
  • Linux下误删文件应急恢复
    Linux下误删文件应急恢复 ...
    99+
    2024-04-02
  • LINUX使用rm误删文件后恢复
    最近使用centos执行了rm -rf删除了一个文件,后面想恢复。 先关闭selinux vim /etc/selinux/configSELINUX=disabledreboot 重启生效 1、使用...
    99+
    2023-08-31
    linux 服务器 运维 centos 安全
  • linux怎么用grep恢复误删的文本文件
    这篇文章主要讲解了“linux怎么用grep恢复误删的文本文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux怎么用grep恢复误删的文本文件”吧!先临时建一个文本文件 vpsee....
    99+
    2023-06-13
  • Linux/Unix中误删除的文件怎么恢复
    这篇文章主要介绍“Linux/Unix中误删除的文件怎么恢复”,在日常操作中,相信很多人在Linux/Unix中误删除的文件怎么恢复问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux/Unix中误删除的...
    99+
    2023-06-13
  • Linux系统误删文件要怎么恢复
    这篇文章主要介绍“Linux系统误删文件要怎么恢复”,在日常操作中,相信很多人在Linux系统误删文件要怎么恢复问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux系统误删文件要怎么恢复”的疑惑有所帮助!...
    99+
    2023-06-15
  • windows误删文件怎么恢复
    当你在Windows系统中误删文件时,有几种方法可以尝试恢复它们。1. 从回收站恢复:首先,检查一下回收站中是否有被误删的文件。如果...
    99+
    2023-09-01
    windows
  • mysql中误删表物理文件如何解决
    这期内容当中小编将会给大家带来有关mysql中误删表物理文件如何解决,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。  建议: 平时备份一下表结构是非常重要的。  -- 如...
    99+
    2024-04-02
  • 怎么在Linux中恢复rm命令误删的文件
    本篇文章为大家展示了怎么在Linux中恢复rm命令误删的文件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。假设被删除的文件位于 /media/backup 里,挂载的设备是 /dev/sda3。 首...
    99+
    2023-06-13
  • linux下怎么恢复误删除oracle的数据文件
    本篇内容介绍了“linux下怎么恢复误删除oracle的数据文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所...
    99+
    2024-04-02
  • linux怎么恢复rm误删除的数据库文件
    这篇文章主要介绍“linux怎么恢复rm误删除的数据库文件”,在日常操作中,相信很多人在linux怎么恢复rm误删除的数据库文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux怎么恢复rm误删除的数据...
    99+
    2023-06-13
  • Linux系统误删文件的恢复方法是什么
    这期内容当中小编将会给大家带来有关Linux系统误删文件的恢复方法是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。背景信息在日常使用中有时难免会出现数据被误删除的情况,该如何快速、有效地恢复数据呢?在...
    99+
    2023-06-28
  • Linux下rm误删除文件的三种恢复方法
    目录1.几点建议避免误删2.使用lsof命令恢复1.语法2.参数3.使用3.使用extundelete工具对于rm,很多人都有惨痛的教训。我也遇到一次,一下午写的程序就被rm掉了,幸好只是一个文件,第二天很快又重新写了一遍...
    99+
    2022-12-01
    Linuxrm误删除文件恢复 Linux恢复rm删除文件 linuxrm删除文件恢复
  • linux如何恢复删除的文件
    要恢复被删除的文件,您可以尝试以下方法:1. 使用恢复工具:有一些专门用于恢复被删除文件的工具,例如TestDisk、PhotoRe...
    99+
    2023-08-20
    linux
  • MySQL 恢复误删数据
    文章目录 1、查看是否启用 binlog 日志2、查看所有 binlog 日志3、查看正在使用的日志4、查找日志所在文件夹5、log 日志转 sql6、delete 转 insert 恢复误删...
    99+
    2023-09-05
    mysql 数据库
  • 怎么在Linux上恢复误删除的文件或目录
    这篇文章主要介绍“怎么在Linux上恢复误删除的文件或目录”,在日常操作中,相信很多人在怎么在Linux上恢复误删除的文件或目录问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么在Linux上恢复误删除的文件...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作