mysql数据库修复后变大_MySQL数据库恢复过程

MySQL数据库恢复过程

某客户更新数据的时候,误删了数据库的内容,因为数据库做了主从,但是没有做备份(备份很重要啊!)幸好开启了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打开,就算没有做上面的两步,也可以通过日志恢复数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值