以前拜读过一位Oracle大大的文章,结果自己在测试环境也遇到了,顺手记下来

Oracle大大的文章链接http://blog.itpub.net/17203031/viewspace-1077770/

本文来自ITPUB技术博客博主wangwenan6。

—————————————————正文—————————————————–

背景:DB的测试环境误删MySQL的日志文件ib_logfile1

环境:MySQL5.6.27

问题原因的分析:手滑了_(:з」∠)_

总体思路:

最重要的是冷静,不要乱搞…

Linux下的文件描述符的介绍,直接摘录Oracle大大的描述

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

现场还原:测试环境中模拟误删ib_logfile1

然后发现数据依然在正常运行,可以插入新的数据

结合之前对Linux的文件描述符的介绍,可以确定这个文件还是存在的~

那么动手找一下,先确定MySQL的进程ID:ps -ef | grep mysql

然后在/proc/fd里面找到这个PID对应的文件夹(文件名=pid),看一下里面的内容

可以看到文件还在,但是被标记成了deleted,既然文件还在,那就好办了~

赶紧把文件拷贝回去?  No!

由于日志也有buffer(innodb_log_buffer_size),拷回去之前,要确认这些日志都刷新到了磁盘,同时也要确认在拷贝的时候,没有新的事务在操作MySQL数据库;

所以先执行flush tables with readlock;再执行flush logs;

然后看一下新生成的几个binlog,旧一点的binlog里面能看到“误删”ib_logfile1之后执行的语句

在新生成的binlog里面则什么都没有

确认了旧的redo log已经写入到磁盘,也没有新的事务在执行,那么再把“误删”的文件拷贝回去;

错误的场景:

假设最初出现问题的时候,关闭了数据库,最终这个log没了,那么在启动MySQL的时候就会有如下的报错

或者是内容有问题,(这里偷懒了,忘了在刷buffer前拷贝一个错误的logfile1,姑且就拿logfile0来凑数了,当成一个错误的logfile….._(:з」∠)_…本质上应该是一样的效果)

那么把之前处理好以后拷贝出来的logfile拷回去看看,修改文件的所有者和权限,启动MySQL之后,噫!报错了~

对比下之前拷贝一个内容有问题的logfile的错误信息(模拟操作:没有把log buffer的数据刷新到磁盘,结果拷贝出来的logfile不对)

数据文件和正确处理的logfile的LSN是恰好对应上的;

为什么明明这个ib_logfile明明有问题,mysql还启动了?

看看两次替换日志文件后, mysql输出的信息(上面是没有刷新buffer的logfile,下面是刷新过buff的)

可以看到数据库根据刷新到磁盘的数据文件的为准,截断了这些有问题的logfile,然后重新生成了新的logfile的LSN。

推测:生成新的logfile的LSN之后,数据文件中的标记位也发生了变更,从3117292814变成了3117292824,这也是为什么第二次拷贝正确的logfile进去之后,还是打印出了错误日志;

—————————————————结束—————————————————-

PS:不管是误删了数据文件还是日志文件,切记不要关掉数据库,且恢复的时候一定要确认缓存数据全部刷新到了磁盘~

linux mysql 误删系统文件恢复_MySQL误删物理文件的恢复(Linux)相关推荐

  1. mysql data文件恢复_mysql 通过data文件下来恢复数据

    补充:正常情况下,建议数据库备份最好用工具进行备份,通过拷贝数据库表进行数据迁移,不同的环境会出现各种不同的意外问题. 背景:今天在整理一个网站的时候,操作系统由于系统自动更新导致一直出现系统蓝屏死机 ...

  2. mysql 从物理文件恢复_从物理文件恢复MySQL数据库

    从@Vicent的答案,我已经恢复如下MySQL数据库: 步骤1.关闭MySQL服务器 第二步复制数据库,数据库文件夹(在Linux中,默认位置是的/ var/lib中/ MySQL的).保持数据库名 ...

  3. 【AWSL】之Linux文件系统与日志分析(inode、恢复EXT类型的文件、恢复XFS类型的文件)

    序言 这里我主要介绍Linux文件系统与日志分析 文件系统与日志分析 序言 一.inode与block 1. 概述 ①inode的内容 ②inode号码 ③文件存储 ④inode的大小 ⑤inode的 ...

  4. U盘删除的文件能恢复吗,删除文件怎么恢复

    U盘删除的文件能恢复吗,删除文件怎么恢复?U盘相信大家都使用过的吧,在存储数据和携带方面都是非常的方便的,唯一不好的地方就在于如果没有备份的情况下出现误删的意外,那么想要再恢复的话就有点小麻烦了,那误 ...

  5. 过滤Linux下不同大小的文件,linux查找当前目录下 M/G 大小的文件,删除Linux下指定大小的文件

    过滤Linux下不同大小的文件,linux查找当前目录下 M/G 大小的文件,删除Linux下指定大小的文件 find ./ -type f -size +1G| xargs rm 在清理系统日志文件 ...

  6. 360android文件恢复,删除的文件怎么恢复?360删除的文件怎么恢复?

    如今几乎所有人都会使用一款安全软件,电脑垃圾的清理电脑防毒等都必须用到一款安全软件,但是这些安全软件有时在清理垃圾删除一些文件的时候可能会删除一些不该删除的文件,那么删除的文件怎么恢复?360删除的文 ...

  7. mysql表文件被删_mysql表物理文件被误删的解决方法

    前言 1.该方法只介绍了如何救回这个表名(数据不恢复) 如果想要恢复原来数据 直接用extundelete把文件恢复后放回去即可 2.并且是适用于平时没有全备的情况下  如果有全备 直接那全备的frm ...

  8. mysql ibdata1 恢复_mysql误删ibdata1,还未重启时的恢复办法

    一.mysql运行中,删除ibdata1文件 [root@orderer data]# rm -rf ibdata1 [root@orderer data]#rm -rf ib_logfile0 [r ...

  9. mysql误删了数据_MySQL误删数据

    首先看下mysql误删数据排名最前的几种是: 1.误删文件 2.误删库.表 3.错误全表删除 / 更新 4.升级操作失误 都来看看你命中过几个,hoho. 简单说下我亲手造的一个大事故吧. 那大概是一 ...

  10. linux mysql 实例详解_MySQL 多实例详解

    目录 一.基本概念 1.MySQL多实例 就是在一台机器上面开启多个不同的端口,运行多个MySQL服务进程.这些MySQL多实例公用一套安装程序,使用不同的(也可以是相同的)配置文件,启动程序,数据文 ...

最新文章

  1. 如何使用Leangoo敏捷工具做测试管理。
  2. freebsd下vi的使用
  3. 安装 PyCharm
  4. 苹果MacOS系统上安装第三方驱动失败/无效
  5. js list 合并_VIM学习笔记 脚本-列表(Script-List)
  6. 由递推关系到通项公式
  7. java main传入参数_向java的main()传入大量参数
  8. 【ROS学习笔记】(十)ROS中的坐标系管理系统
  9. markdown 流程图js_五分钟学会markdown基本语法
  10. oracle在线视频教程,Oracle性能优化视频教程 - Oracle - 数据库 - 私塾在线 - 只做精品视频课程服务...
  11. MockingBrid(AI拟声)教程
  12. 何宾 单片机原理及应用_stc单片机原理及应用.pdf
  13. 关于单机winform数据库 数据存储
  14. Mysql事务操作及存储引擎
  15. 离线调用linux命令,GitHub - rinetd/linux-command: Linux命令大全搜索工具,内容包含Linux命令手册、详解、学习、搜集。...
  16. Qt Opengl 给两个立方体设置两中不同颜色
  17. python读取HTML文本文件
  18. 【python】取txt文件中的单词存到SQLite数据库,并且从bing词典爬取单词详情
  19. cf登录游戏只显示服务器的字体,cf辅助灭天大神修复文件字体花样请求解决方法...
  20. 2012年1月,拥有131年历史的柯达申请破产

热门文章

  1. Video Object Segmentation with Adaptive Feature Bank and Uncertain-Region Refinement论文解读和代码实践
  2. 2022年危险化学品经营单位主要负责人考试题模拟考试题库及在线模拟考试
  3. unityplayer.dll丢失怎么办?有什么好的修复方法?
  4. OpenCV成长之路:模仿PhotoShop中魔术棒工具
  5. 【综述】盘点卷积神经网络中的池化操作
  6. jetson nano b01使用准备
  7. 小米路由器3G建站折腾笔记5 - 安装phpMyAdmin、Typecho、WordPress
  8. 铁路全电子计算机联锁系统论文,全电子模块化计算机联锁系统探讨
  9. 虾皮网怎么注册开店?多站点申请教程
  10. mmpose----AnimalKingdom数据集使用mmpose训练