免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2396 | 回复: 1
打印 上一主题 下一主题

MySQL数据库恢复过程 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-01-13 10:38 |只看该作者 |倒序浏览
 

  某客户更新数据的时候,误删了数据库的内容,因为数据库做了主从,但是没有做备份(备份很重要啊!)幸好开启了bin-log。之后只好把整个日志的记录拿回来本地进行恢复。之后自己也做了一个简单的测试,对数据进行恢复,具体如下:

  binlog是什么?

  binlog日志用于记录所有更新且提交了数据或者已经潜在更新提交了数据(例如,没有匹配任何行的一个DELETE)的所有语句。语句以“事件”的形式保存,它描述数据更改

  1、新建一个表

  CREATE TABLE `lynn`.`sn_test` ( `name` VARCHAR( 10 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL , `age` INT( 3 ) NOT NULL ) ENGINE = MYISAM;

  2、插入多条数据

  INSERT INTO `lynn`.`sn_test` (`name`, `age`) VALUES ('lynn1', '1');

  INSERT INTO `lynn`.`sn_test` (`name`, `age`) VALUES ('lynn2', '2');

  INSERT INTO `lynn`.`sn_test` (`name`, `age`) VALUES ('lynn3', '3');

  INSERT INTO `lynn`.`sn_test` (`name`, `age`) VALUES ('lynn4', '4');

  3、查看数据并删除

  mysql> select * from sn_test;

  +-------+-----+

  | name | age |

  +---------+---+

  | lynn1 | 1 |

  | lynn2 | 2 |

  | lynn3 | 3 |

  | lynn4 | 4 |

  +---------+-----+

  4 rows in set (0.00 sec)

  mysql> delete from sn_test;

  Query OK, 4 rows affected (0.00 sec)

  mysql> select * from sn_test;

  Empty set (0.00 sec)

  4、mysqlbinlog恢复数据

  mysqlbinlog mysql-bin.000006 > 1.sql

  查看1.txt里面数据插入的纪录,把删除之前的数据进行恢复

  mysqlbinlog mysql-bin.000006 --start-position=2471 --stop-position=2876 | mysql -uroot -p123

  重新登录,查看数据,OK,已经成功恢复了

  对于数据库操作,应该注意如下问题:

  1、要常备份(全备,增量备份),出了问题可以最快恢复数据;

  2、操作数据库前,要把需要操作的数据库或者表dump出来;

  3、使用备份工具:多备份。数据自动备份,需要时一键恢复即可。数据上传到多个云端平台,丢失风险基本为零

  4、需要把bin-log打开,就算没有做上面的两步,也可以通过日志恢复数据

论坛徽章:
1
巳蛇
日期:2014-08-21 15:09:09
2 [报告]
发表于 2015-01-23 17:52 |只看该作者
感谢分享 啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP