#mysqlbinlog恢复MySQL 是否启用了日志
SHOW VARIABLES LIKE 'log_bin';
怎样知道当前的日志
SHOW master STATUS;
看二进制日志文件用mysqlbinlog
mysqlbinlog mail-bin.000001
如果MySQL服务器启用了二进制日志,你可以使用mysqlbinlog
工具来恢复从指定的时间点开始 (例如,从你最后一次备份)直到现在或另一个指定的时间点的数据。
要想确定当前的二进制日志文件的文件名,输入下面的MySQL语句:
SHOW BINLOG EVENTS G;
##指定恢复时间 假设在今天上午10:00(今天是2015年11月4日),执行SQL语句来删除一个大表。要想恢复表和数据,你可以恢复前晚上的备份,并输入:
mysqlbinlog --stop-date="2015-11-04 9:59:59" --database=$DB_NAME $BINLOG --result-file=$SQL_FILE
执行恢复特定时间段内的数据:
mysqlbinlog --start-date="2015-11-04 8:59:59" --stop-date="2015-11-04 9:59:59" --database=$DB_NAME $BINLOG --result-file=$SQL_FILE
##指定恢复位置 也可以不指定日期和时间,而使用mysqlbinlog的选项–start-position和–stop-position来指定日志位置。它们的作用与起止日选项相同,不同的是给出了从日志起的位置号。使用日志位置是更准确的恢复方法
mysqlbinlog --start-position="20" --stop-position="2000" --database=$DB_NAME $BINLOG --result-file=$SQL_FILE
或者,直接使用命令导入数据库:
mysqlbinlog --start-position="20" --stop-position="2000" --database=$DB_NAME $BINLOG | mysql -u root
来源:oschina
链接:https://my.oschina.net/u/106250/blog/529377