对运行几年的MySQL数据库进行导出、导入备份恢复操作

来自Jamesqi
跳转至: 导航搜索

--James Qi 2009年11月30日 (一) 13:24 (CST)

  我们MediaWiki网站用的MySQL数据库还是很早前安装的,至少有两年以上的时间了,以前小许帮忙设置的InnoDB共享文件是8个2G大小,今年看数据已经超过了16G,最后一个文件自动扩展到19G,也就是有8*2+17=33G大小了。

  网站几乎每天会遇到3-5次打开非常慢的情况,这是观察是MySQL服务器的CPU占用达到100%,需要过3-5分钟后恢复到正常的10%上下。而MySQL刚刚恢复正常的时候,因为这几分钟内等待的浏览者比较多,会导致Apache服务器负载急剧升高的情况,一般是几分钟处理后也可以逐步恢复,但少数情况下会导致Apache服务器负载持续升高直至死机,上周就遇到好几次这样的情况,必须硬件重启Apache服务器,很麻烦。

  小许早就说MySQL服务运行时间很长以后,需要进行整理,一般是进行导出、导入操作,以便提高数据处理效率。这个事情我们也拖了很久没有做,上周把绝大部分MediaWiki的网站从1.10升级到1.15并且把需要进行的数据库更新操作执行完后,这个周末下决心来做这个重新导入的工作。

  为了解决InnoDB共享文件过大的问题,在my.cnf中设置了innodb-file-per-table,这样新建的InnoDB数据库都是采用独立的文件。因为我们实际上每天凌晨都有自动备份数据,所以实际操作时不需要再进行导出,只需要删除原来的数据库,重新恢复就可以。具体的顺序是:

  1. 访问网站最近更新,如果是当天有变化的数据库需要先重新备份导出
  2. 关闭网站访问(可以用Squid控制)
  3. drop以前的数据库
  4. 重新create新的数据库,名称保持一致
  5. 从凌晨备份的文件恢复到新建的数据库中
  6. 查看对应目录总是否有新的InnoDB独立文件*.idb
  7. 通过phpMyAdmin查看新库是否完整(数据量会稍有减少,应该是整理后正常情况)
  8. 恢复网站访问
  9. 检查网站访问是否正常、数据是否不变、能否正常编辑等

  昨天一大早上先测试了1、2个数据量小或者不太重要的库,看到都还算顺利,然后下午又操作了一个数据量大的库。本来计划等观察几天看没有问题再进行其它数据库的整理工作,但我怕下周还有其他的事情太多,干脆一鼓作气晚上把所有14个数据库全部都重建了,其中有几个当天还有数据变化的库就在恢复前进行了临时的备份操作。

  这些天住的地方晚上7-11点上网速度特慢,8-10点几乎不能正常使用,临时用联通的WCDMA 3G上网卡速度要好一些,但似乎在晚上人们上网高峰期速度也不好。为了操作方便、也避开访问,昨天的操作基本上都是在凌晨,一直到清晨4点多,中途还去CCTV5看了巴萨V.S.皇马的西班牙德比最后10分钟的比赛。

  早上睡到很晚起来(上周都是这样颠倒过的),在网上问同事网站数据没有问题,那说明备份恢复操作成功了,上午只出现过一次3分钟左右的速度慢情况,还不能肯定数据的整理能否解决MySQL服务器负载高的问题,需要继续观察看。

标签:MySQL数据库备份恢复
相关内容:
  1. 2010-09-20 11:33:29 直接操作MediaWiki的MySQL数据库
  2. 2010-08-31 00:47:49 分割大容量MediaWiki数据库
  3. 2010-07-08 23:08:13 用HTML和站间链接减小MediaWiki数据库记录
  4. 2010-06-01 12:00:27 终于让.idb文件中的MySQL数据重见天日
  5. 2010-05-26 13:35:48 从InnoDB文件挽救MySQL数据
  6. 2010-05-22 12:21:42 数据库出了大问题:无法启动、数据丢失、备份失效
  7. 2010-04-18 10:01:21 名录数据库集合网站
  8. 2010-02-26 10:36:48 MediaWiki网站简化模板,减小MySQL数据库
  9. 2010-02-26 09:58:30 MediaWiki生成纯静态HTML页面的网站,彻底脱离MySQL数据库
  10. 2010-02-21 00:12:53 邮编库的数据扩充到百万条数量级
  11. 2009-11-06 10:40:32 MediaWiki中的各种缓存(Cache)设置
  12. 2009-09-04 12:28:08 在MediaWiki中启用主从两个MySQL服务器
  13. 2009-07-13 23:40:08 在MediaWiki系统中查询结构化数据库
  14. 2009-06-17 13:51:56 转换MediaWiki的MySQL数据库格式MyISAM-InnoDB及字符集latin1-utf8

关于“对运行几年的MySQL数据库进行导出、导入备份恢复操作”的留言:

目前暂无留言

新增相关留言