1.数据备份
先查看数据库表的数据,这里面时000001里面的数据
将数据以sql的形式备份到/tmp目录下,备份的是000001的数据
mysqldump -uroot mysql -l -F > /tmp/mysql1.sql
-l:锁表,在备份的时候不让其他客户端操作数据库,以免备份数据不完整
-F:即flush logs,可以重新生成新的日志文件,包括bin-log日志
flush logs 让当前的bin-log日志为000002
在000002的时候插入一些数据
flush logs 让当前的bin-log日志为000003
2.系统故障,数据表丢失
将数据表hadoop1_test删除,所有的数据都丢失了。
3.数据恢复
先将备份数据恢复到数据库中
mysql -uroot mysql -v -f < /tmp/mysql1.sql
-v:查看导入的详细信息
-f:当导入遇到错误时,可以skip过去,继续执行下面的语句
这里面的数据其实恢复的并不完整,还有一部分在备份和故障之间的数据没有恢复进来,此时就需要使用到bin-log日志进行数据的恢复。
再将未备份的数据恢复到数据库中。
mysqlbinlog –no-defaults binlog-file | mysql -uroot mysql
–no-defaults:排除字符集问题
–start-position=”196”:position开始位置
–stop-positions=”233”:position结束时间(恢复position为196-233之间的操作)
–start-date=”2016-11-08 12:33:09”:执行时间
–stop-date=”2016-11-08 12:35:09”:结束时间(两个时间点之间的操作)
binlog-file:binlog二进制日志文件
到此,数据完全恢复