1.数据恢复的场景
a.人工误操作(误删除,识update)
b.从库的建立,第一次需要全备数据
c.没有做HA,硬件故障
2.数据恢复的条件
a.需要有备份
b.数据库的bin_log要开启
3.数据恢复过程
如果有人工误操作,比如说删除了数据库,或者update了数据
1.立刻锁表,或者通过网络的方式不让客户端访问 lock tables user read (如果是数据update 没加条件被update 掉的则要锁表,如果不锁表可能会出现后面的数据插入报主键冲突之类的导致恢复失败)
2.查看当前的日志点,并且刷新bin-log ,flush logs(因为mysql导入数据的过程会写入bin_log)
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000018 | 15971 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
3.把最近全部的数据导入 mysql -uusername -ppassowrd < back.sql
3.根据备份的数据binlog 把所有的日志里面的sql 都导入到数据库
mysqlbinlog -d databasename mysqlbinlog-00001 > sql.sql (因为binlog 里面的日志是所有的。所需要拆库)
4.确认数据导入完成了,则unlock tables 开放网络权限
5.数据恢复完成
阅读(792) | 评论(0) | 转发(0) |