下载中心 | 网站地图 | 站内搜索 | 加入收藏

安恒公司 / 技术文章 / 安恒公司网管员手记 / mysql数据库的2次灾难恢复实战

2007-04-14 刘世伟  阅:    下页:
mysql数据库的2次灾难恢复实战
*近2次遇到数据库崩溃.
*次是因为ups到服务器之间的电源碰掉,造成mysql数据库*个表丢失1000行数据.
第二次是因为机箱散热风扇停转,造成系统死机, mysql丢失了*部分数据.

2次灾难恢复的问题不同, 恢复步骤也不同.

*次:
  本来每天有数据库的dump备份的,但是由于服务器硬件升*.并没有恢复这个每日定时任务.
当灾难发生时,只能找到15天以前的数据.丢失了整整2个星期的数据. *后能够想到的办法,
只有通过apache 的http日志去提取同事们的真实的操作,然后现这些操作.好在程序也是我
编的,实现起来虽然相当费劲,但也是可行的.
早在开始建立应用系统的时候, 就定下了*个原则,所有的http操作都只使用GET方式,不使用
POST方式,因为POST方式,在http日志中是没法挽救数据的.这*编程原则,成了我*后的救命
稻草,*写程序,从http log中提取数据,提取出2000条对损坏表有影响的操作记录.然后分类
为20种操作. 对这20种操作单独编写模拟写库程序, 整个*个双修日的白天和晚上就这么搭上
了. 出问题的那天是周5下午, 当同事们周*来上班的时候, 没有发觉业务系统有什么问题.
完成修复后,恢复了每日定时备份,并且通过调整,让mysql服务输出binlog,并保留100天.这也为
以后部署数据库镜像做好准备.

第二次:从binlog
  还没有来得及进行数据库镜像部署,第二次故障发生了,哈哈.由于有了binlog以及每日备份,
恢复数据就简单多了.其实就是*个从数据库镜像的配置过程.
  mysqldump导出的备份数据在**行会有时间标志, 记下这个时间标志, "2007-05-14 18:39:06"
然后找到这个时间标志在binlog中的偏移值, binlog*般在/var/lib/mysql/mysql-binlog.0000xx
根据文件日期找包含这个时间段的文件. 记下这个文件*. 然后还要找到当时备份的时间在这个log
文件的偏移值. 要找到这个偏移值.

下页:   

相关文章
qmail错误: CNAME_lookup_failed_temporarily._ #4.4.3 - 16-02-25 - 阅读: 134790
快速得到mysql的历史数据状态 - 09-01-02 - 阅读: 139230
ezmlm邮件列表使用mysql方式管理帐号 - 08-11-20 - 阅读: 170278
mysql的relay-bin - 07-10-16 - 阅读: 170287
mysql*化[转贴] - 07-10-02 - 阅读: 167100
利用内存磁盘加速mysql --安恒网管员手记 - 06-06-26 - 阅读: 264835
mysql 4.1+ 汉字乱码问题研究 --安恒网管员手记 - 05-09-15 - 阅读: 327378
mysql 双机热备实战 --安恒网管员手记 - 05-04-20 - 阅读: 221783
mysql的备份,备份,备份 --安恒网管员手记 - 05-01-12 - 阅读: 188662
安恒网管员手记:mysql的自动备份 - 03-11-02 - 阅读: 186980
安恒网管员手记: mysql密码忘记的修改 - 03-05-05 - 阅读: 224724
mysql双机热备份 - 03-02-12 - 阅读: 165858

Email给朋友 打印本文
版权所有·安恒公司 Copyright © 2004   superagent.anheng.com.cn   All Rights Reserved    
北京市海淀区*体南路9号 主语国际商务中心4号楼8层 (邮编100048) 电话:010-88018877