终于让.idb文件中的MySQL数据重见天日

来自Jamesqi
跳转至: 导航搜索

--James Qi 2010年6月1日 (二) 12:00 (CST)

  从5月20日早上数据库信息丢失后,这些天我把其它的事情都摆在旁边,主要工作就是设法尽快恢复数据,还拉了几位同事一起来帮忙。

  手头上只有从innodb file-per-table目录下复制出来的.frm和.ibd文件,按常理是无法恢复了。找了前几天的备份,大部分网站数据库从.sql文件中恢复了,而查号吧的.sql文件中备份的table竟然不全,那我们最重要的网站可能就此毁于一旦!后来在另外一台服务器上偶然找到去年9、10月份的数据,但退回半年前就损失太大了。所以无论如何都要设法恢复现在的数据!

  在网上找了老外写的资料Recovering an InnoDB table from only an .ibd file.,有办法恢复,上周末就按照那个办法把41个表中的30多个恢复了,但剩下的5个表却总是报错,结果上周我们就不断尝试,修改.ibd中所有table space id号码、编程增加log sequency number、更换my.cnf中不同的force级别、添加很多table来匹配table space id等。

  因为增加log sequency number需要时间很长,上周中途我们也尝试用innodb-tools来修复,可以恢复大部分数据,但blob类型以及汉字支持都存在问题,所以最后出来的数据有缺失,没有能实际使用。

  尽管遇到各种问题,但我相信数据并没有丢失,一定可以设法恢复的,只是时间早晚。上周还写邮件给innodb-tools开发者公司,他们提供mysql数据恢复服务业务,我询问了价格,450美元/小时,2小时起步。我们如果无法自己恢复的话,花钱也要找他们帮忙,只是这个价格确实高了些,特别是不知道多长时间能恢复。我们自己已经花费了上百个小时,按照这样的价格就是几万美元了。

  这个周末通过添加很多table来匹配table space id又找出了一个关键表的数据,剩下的4个表操作时却一直报内存错误,昨天下午找了两位同事陪着一点一点测试,最后发现是字段定义稍有不同引起的,在修改了表结构后,终于是将所有数据都找出来了!!

  昨天连夜进行了导出临时库、导入正式库,数据量很大,到凌晨导了几个小时还没有完就休息去了,今天早上看到数据都导入完成,进行了整理后,用一个临时域名测试,终于是看到了故障前的数据,而且基本上没有发现损失,就切换成正式域名,把前面这上十天顶着用的缓存文件保存起来,重新生成.html.gz的缓存文件。

  还有少许细节后面观察、处理,例如user_group表好像是空的,就复制一个老的数据过来,另外备份有可能还有问题,需要继续测试、观察。

  以后一定要做好更仔细、更全面、更长期的备份工作,还要定期进行还原实验,确保数据无忧。周末去买了一个1T的移动硬盘,只要690元,便宜得很,与数据的价值没有办法比。

  好歹这次是把数据折腾出来了,花费的时间精力无数。后面还有抓紧最近有些不顺的公司几个网站的工作,还有我那本AdSense书的出版宣传工作。如果数据还没有恢复的话,估计6月份开幕的世界杯都没有心情看啊。

标签:MySQLInnoDB
相关内容:
  1. 2010-09-20 11:33:29 直接操作MediaWiki的MySQL数据库
  2. 2010-05-26 13:35:48 从InnoDB文件挽救MySQL数据
  3. 2010-05-22 12:21:42 数据库出了大问题:无法启动、数据丢失、备份失效
  4. 2010-02-26 10:36:48 MediaWiki网站简化模板,减小MySQL数据库
  5. 2010-02-26 09:58:30 MediaWiki生成纯静态HTML页面的网站,彻底脱离MySQL数据库
  6. 2010-02-21 00:12:53 邮编库的数据扩充到百万条数量级
  7. 2009-11-30 13:24:04 对运行几年的MySQL数据库进行导出、导入备份恢复操作
  8. 2009-11-06 10:40:32 MediaWiki中的各种缓存(Cache)设置
  9. 2009-09-04 12:28:08 在MediaWiki中启用主从两个MySQL服务器
  10. 2009-06-17 13:51:56 转换MediaWiki的MySQL数据库格式MyISAM-InnoDB及字符集latin1-utf8
  11. 2008-01-15 16:12:53 痛苦的服务器数据备份恢复过程
  12. 2007-12-24 13:37:24 MediaWiki中重新生成搜索文本索引rebuildtextindex.php
  13. 2007-09-25 13:20:20 Squid, apache, mysql的优化真是个麻烦事情!
  14. 2007-07-02 07:26:59 Wiki服务器故障真是麻烦

关于“终于让.idb文件中的MySQL数据重见天日”的留言:

新增留言

--116.30.30.206 (IP 位置 | 谁是 | 贡献) 2017年5月29日 (一) 15:29 (CST)

留言: 也不写下具体的过程呀。

新增留言

--James Qi讨论) 2017年6月5日 (一) 10:23 (CST)

留言:能记录下来的就这么多东西了,反正那阵子就是各种日夜折腾。--James Qi讨论) 2017年6月5日 (一) 10:23 (CST)

新增相关留言