首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | HR | 镜像
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
搜索中心 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>linux数据库>其他>正文

Linux Ext3下删除MySQL数据库的数据恢复案例

http://www.oklinux.cn  2009-05-15  zhangyu.blog.51cto.com/    会员收藏  游客收藏  【 】 
您查看的文章来源于http://www.oklinux.cn

[数据恢复故障描述]

  一台重要的MySQL数据库服务器,146GB*2,RAID1,约130GB DATA卷,存储了大约200~300个数据库。平时管理员对每个数据库dump出以后,直接压缩成.gz包,再将所有重要的.gz 包合起来压缩成一个总的.tar.gz包,这些文件每日产生一次,覆盖原来的备份。数据文件及备份文件全部存储于data卷上。

  一次系统维护中,管理员不小心将data卷下的所有文件全部rm,删除后,马上停止系统,再未做其它操作,但删除时仍有大量终端在访问此服务器。

  要求恢复MySQL数据库文件,即myd、frm、myi(可重建)文件,或每个数据库的.gz包,或所有重要数据库总的.tar.gz备份包。

[数据恢复分析]

  Ext3下的数据删除,理论上,会清除inode中除节点类型、日期外的其他属性,诸如文件大小、数据存储地址等属性会全部清0,同时目录表中会以目录条目长度的方式屏蔽掉已删除文件,但会保留节点编号,最后会改变BITMAP中的空间占用标志。

  即使是目录表中存在删除文件的节点编号,但因节点内容已经没有需要的东西,与数据区也是脱钩的。

  从数据角度,大多数文件类型都会有特定的文件头标志,按头标志是有可能找到删除文件的起始位置的,但EXT3以块组为单位进行存储,同时数据与索引是混合存储于数据区的,所以数据连续存储的可能性非常之小,这样,按文件格式进行处理也是很困难的。

  唯一的算法是结合上述几个特征,加上对日志的分析,加上对存储过程的模拟分析,尽可能地逼近真实存储结构。

[数据恢复过程]

  1、对故障卷做完整备份。

  2、对总.tar.gz进行恢复分析,但恢复出来的文件解压到50%左右会报错,后续文件列表也无法列出。经分析,最大的原因是删除时仍有数据写入破坏文件导致。

  3、对分包的.gz文件进行恢复分析,大多数恢复成功。

  4、对于未恢复成功的.gz数据库。直接恢复其myd\frm数据文件,所有数据恢复成功。

[其他]

  1、Linux Ext3数据删除后应尽快断掉文件系统IO,通常umount文件系统即可。

  2、对故障卷做dd备份,确保数据恢复过程不会导致更严重的故障。

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://zhangyu.blog.51cto.com/197148/153250

作者:张宇,北亚MYSQL数据恢复中心,转载请联系作者,如果实在不想联系作者,至少请保留版权,谢谢。


上一篇:Linux:Apache_MySQL随机启动关闭   下一篇:Oracle 下导入txt的shell脚本以及配置

收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·Oracle 下导入txt的shell脚本以及配置
·Linux:Apache_MySQL随机启动关闭
·Oracle备份功能比较
·Oracle数据库中的字符处理技巧总结
·MySQL创始人建立Open Database Alliance
·三招助你做好Oracle数据库备份测试
·在 Linux x86 上安装 Oracle 数据库 10g(官方文档)
·MySQL 安装和基本命令
·JDBC数据库驱动程序种类及选择
·浅谈Oracle中的物化视图
·Sun的消失和Oracle的猜想
·MySQL的my.cnf 文件里的配置项解释
·Oracle SQL基础知识
·安装Linux与Oracle数据库步骤精讲
·SQL Server练习题一则
·详解如何在Oracle中连接输出结果
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·MySQL创始人建立Open Database Allianc
·Oracle数据库中的字符处理技巧总结
·Oracle备份功能比较
·Oracle 下导入txt的shell脚本以及配置
·Linux:Apache_MySQL随机启动关闭
·三招助你做好Oracle数据库备份测试
·在 Linux x86 上安装 Oracle 数据库 10
·MySQL 安装和基本命令
·JDBC数据库驱动程序种类及选择
·浅谈Oracle中的物化视图
·Sun的消失和Oracle的猜想
·MySQL的my.cnf 文件里的配置项解释
  阅读排行
·Linux下安装Oracle数据库完整笔记
·Oracle建表过程初学
·MySQL导入导出.sql文件步骤
·Oracle 建立临时表语法及使用技巧
·Linux平台下启动oracle 11g EM控制台
·RHEL5.1 下安装Oracle 10.2.0.1及常见
·Linux平台下配置MySQL主从复制
·Mysql JDBC驱动版本与Mysql版本的对应
·Linux系统下启动MySQL的命令及相关知识
·Linux操作系统下MySQL的卸载、安装全过
·关于MySQL事务处理学习
·Oracle10g RAC for Linux配置全过程
·手工配置Oracle 10G Enterprise Manage
·Linux系统中Oracle数据库的用户权限
·向MySQL插入数据乱码解决办法
网摘收藏: