确保my.cnf启动了 log-bin (既log-bin=mysql-bin)
mysql> show master status; #查看使用的那个logbin文件
mysql> show binlog events in +“当前的日志文件” \G;
eg:
mysql> show master status \G;
*************************** 1. row ***************************
File: mysql-bin.000006
mysql> show binlog events in 'mysql-bin.000006' ;
flush logs:表示建立的mysql-bin文件,如当前的为mysql-bin.000006,当执行了flush logs命令后,就会变成mysql-bin.000007。依次类推。
恢复时间查看
Mysqlbinlog /usr/local/mysql/data/mysql-bin.000001
1、通过结束时间向前恢复(--stop-date)
mysqlbinlog --stop-date=" 2015-10-06 15:10:00" /usr/local/mysql/data/mysql-bin.000001 | mysql -uroot -pjiang211689
该命令将恢复截止到在--stop-date选项中以DATETIME格式给出的日期和时间的所有数据。
2. 如果没有检测到错误的SQL语句,mysqlbinlog可以通过--start-date指定开始时间恢复:
mysqlbinlog --start-date=”2012-03-15 00:01:00″ /data1/log/mysql/mysql-bin.000001 | mysql -u root -pmypasswd
3. 指定时间段恢复 通过mysqlbinlog --start-date 和 --stop-date恢复指定时间段的数据库活动记录,如下:
mysqlbinlog --start-date=”2015-03-09 02:00:00″--stop-date=”2015-03-15 11:00:00″ /data1/log/mysql/mysql-bin.000001 > /tmp/mysql_restore.sql
通过这种方式,就能获取最后一个备份的文件时间2015-03-09 02:00:00到今天删除数据库之前2015-03-15 11:00:00这段时间的数据库活动事务操作
4、指定开始\结束位置(和指定时间差不多),如下图所示,通过show binlog events中查看“end_log_pos”,选中开始和结束位置。(注意mysql-bin.00000X文件的选取)
--start-position="107" //指定到107位置开始
--stop-position="289"//指定到289位置结束
eg:
mysqlbinlog --start-position="107" --stop-position="316" /usr/local/mysql/data/mysql-bin.000001 | mysql -uroot -pjiang211689
注意:重新启动数据库,会产生新的mysql-bin日志文件