您的位置:首页 > 数据库 > MySQL

mysqlbinlog恢复MySQL

2015-11-12 14:50 639 查看
#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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql mysqlbinlog