mysqlbinlog 使用简介

mysqlbinlog经常使用于binlog导出分析及mysql数据恢复。html

下面有一些经常使用选项,简单介绍一下。mysql


--base64-output=name sql

决定binlog输出格式选项shell


'never'选项 数据库

不输出Sql语句格式bash

                      

'decode-rows' 选项ide

将输出语句格式转换为注释的SQL语句格式,由于binlog日志如今大部分都是rows日志,不是语句日志,因此转换语句输出也只是rows变动的语句,不是当时输入的sql语句。编码


若是没有 --base64-output[=name] 选项,默认给出所有格式,默认是 'auto'。spa

·自动 ("auto") 或未指定 ("UNSPEC") 将自动显示 BINLOG 语句全部格式(即二进制格式和语句格式)。日志

若是没有--base64-output 选项给出的效果与 --base64-output=AUTO 相同。


--start-datetime=name 

                      开始读取binlog日志的指定时间,时区是日志本地时区,时间格式例子‘2016-12-25 11:25:56 ’(要使用引号,避免shell里识别出错。)


 --stop-datetime=name 

                     中止读取binlog日志的指定时间,时区是日志本地时区,时间格式例子‘2016-12-25 11:25:56 ’(要使用引号,避免shell里识别出错。)

  

--start-position=# 

                     开始读取 binlog 日志在 指定position号码. 读取范围更精准,能够避免时区错误,恢复数据时建议使用。


  --stop-position=#   

                    中止读取 binlog 日志在 指定position号码. 读取范围更精准,能够避免时区错误,恢复数据时建议使用。


  -v    从行事件中重建伪 sql 语句。


  -vv  从行事件中重建伪 sql 语句,添加对数据类型的注释。


--database=name

   指定导出的数据库


--skip-gtids 

   输出时忽略全局事物ID号码。


导出时间范围内的binlog日志,从行事件中重建伪sql 语句,使用Sql语句编码,若是有多个binlog文件,后续使用>>添加到导出文件,尽可能使用绝对路径。

mysqlbinlog -v --base64-output=decode-rows --start-datetime='2016-12-25 11:25:56' \
--stop-datetime='2016-12-25 11:59:59' binlogname > filename.sql


捉取准确的position号码范围,导出sql文件。

mysqlbinlog --start-position=10000 --stop-position=20000 binlogname > filename.sql


mysql进行数据导入。

mysql -u'user' -p'password' < filename.sql #危险操做!!!


参考资料:

1,RDS Mysql中binlog日志查看  https://help.aliyun.com/knowledge_detail/41709.html

2,mysqlbinlog官方手册 https://dev.mysql.com/doc/refman/5.7/en/mysqlbinlog.html

相关文章
相关标签/搜索