mysqlbinlog恢复MySQL
2015-11-12 14:50
639 查看
#mysqlbinlog恢复MySQL
是否启用了日志
怎样知道当前的日志
看二进制日志文件用mysqlbinlog
如果MySQL服务器启用了二进制日志,你可以使用
要想确定当前的二进制日志文件的文件名,输入下面的MySQL语句:
##指定恢复时间
假设在今天上午10:00(今天是2015年11月4日),执行SQL语句来删除一个大表。要想恢复表和数据,你可以恢复前晚上的备份,并输入:
执行恢复特定时间段内的数据:
##指定恢复位置
也可以不指定日期和时间,而使用mysqlbinlog的选项–start-position和–stop-position来指定日志位置。它们的作用与起止日选项相同,不同的是给出了从日志起的位置号。使用日志位置是更准确的恢复方法
或者,直接使用命令导入数据库:
是否启用了日志
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中的integer 数据类型
- MySQL存储过程
- mysql中int、bigint、smallint 和 tinyint的区别与长度
- mysql load data 导出、导入 csv
- source命令执行SQL脚本文件
- MySQL创建用户及权限控制
- MySQL管理数据表
- linux下mysql添加用户
- mysql procedure
- mysql触发器
- MySQL 备份和恢复策略
- mac下安装mysql(转载)
- mysql 修改编码 Linux/Mac/Unix/通用(杜绝修改后无法启动的情况!)
- MySQL数据的导出、导入(mysql内部命令:mysqldump、mysql)
- mysql数据行转列
- Linux下修改MySQL编码的方法
- MySQL Server 日志
- MySQL 安全事宜
- MySQL 备份与恢复