本站所有文章均为原创,如对您有帮助,恳请帮忙点击任何一处广告
  • 首页
  • MySQL
  • MySQL主从复制(5)使用mysqlbinlog管理MySQL二进制日志

MySQL主从复制(5)使用mysqlbinlog管理MySQL二进制日志

发布:TangLu2018-11-23 18:22分类: MySQL 标签: mysql mysqlbinlog

MySQL的binlog文件由于是二进制文件,无法使用VI等编辑器打开,如果需要查看日志内容需要结合其他工具来完成,比如mysqlbinlog。通过二进制日志可以看到很多信息,详细到“哪个server-id的主机在哪个时间点执行了哪些语句”,有了这些语句还可以用来进行数据恢复工作,下面是一些查看二进制日志的常用方法。

一、mysqlbinlog

1、mysqlbinlog命令常用选项:

-d | --database:从二进制日志文件中过滤出某个库的日记信息

--base64-output=decode-rows:将row格式日志进行解码,否则看到的是乱码,因为rows格式是加密的
--start-datetime=:指定时间节点,同理还有--stop-datetime指定结束时间
--start-position=:指定位置节点,同理还有--stop-position指定结束位置


2、mysqlbinlog命令示例:

#显示指定二进制日志的所有内容,并且完成解码
mysqlbinlog master-bin.000001
mysqlbinlog -vv --base64-output=decode-rows  master.bin.000003  #将rows的日志内容解码,可用于数据恢复时查找正确的操作

#显示指定日期时间范围的二进制日志内容
mysqlbinlog --start-datetime='2018-02-13 11:37:00'  --stop-datetime='2018-02-15 12:00:00' master-bin.000001

#显示指定位置的二进制日志内容
mysqlbinlog --start-position=3052 master-bin.000002    #显示从3052开始的所有内容  
mysqlbinlog --start-position=3052 --stop-position=3849 master-bin.000002    #显示3052-3849的内容

#单独取某个库的二进制日志
mysqlbinlog /data/dblog/binlog/mysql-bin.004672 -vv --base64-output=decode-rows  --start-datetime='2018-10-12 14:42:00'  --stop-datetime='2018-10-12 14:45:00' --database=test_database > /tmp/test.txt

二、MySQL二进制日志文件的其他管理方式——show binlog events

mysql > show master logs;    #显示当前主库所有二进制日志情况
mysql > show binary logs;    #和上面作用一样
mysql > flush logs;    #刷新并生成新的二进制日志文件
mysql > show binlog events in 'master-bin.000002';  #显示二进制日志的内容
mysql > show binlog events in 'master-bin.000002' limit5;    #只显示5条
mysql > show binlog events in 'master-bin.000002' from 3390 limit5;    #从3390位置开始显示5条
mysql > purge master logs to 'master-bin.000002';  #删除指定的二进制日志
mysql > purge master logs before '2018-02-17 10:30:00';

使用show binlog event命令时关注Event_type为Query的语句,这些就是引起数据库内容变化的SQL

企业微信截图_20181012115349.png


三、使用binlog恢复数据的示例

mysqlbinlog -vv --base64-output=decode-rows  master.bin.000003  #查找我们需要的正确SQL
mysqlbinlog --start-position=291 --stop-position=951 master-bin.000004 | mysql -uroot  #导入291和951部分的SQL到数据库中恢复数据



温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,谢谢合作!
et_highlighter51
版权所有:《Linux运维技术学习站点
文章标题:《MySQL主从复制(5)使用mysqlbinlog管理MySQL二进制日志
除非注明,文章均为 《Linux运维技术学习站点》 原创
转载请注明本文短网址:http://www.linuxe.cn/post-393.html  [生成短网址]

已有 0/1369 人参与

发表评论:

欢迎分享Linux运维技术学习站点

欢迎使用手机扫描访问本站,还可以关注微信哦~