转载 https://laijianfeng.org/2019/03/MySQL-Binlog-%E4%BB%8B%E7%BB%8D/
-
mysqlbinlog常见的选项有以下几个:
–start-datetime:从二进制日志中读取指定等于时间戳或者晚于本地服务器的时间
–stop-datetime:从二进制日志中读取指定小于时间戳或者等于本地服务器的时间 取值和上述一样
–start-position:从二进制日志中读取指定position 事件位置作为开始。 -
开启bin log
SET SQL_LOG_BIN=1 命令来启用 binlog,通过 SET SQL_LOG_BIN=0 命令停用 binlog -
常用的Binlog操作命令
# 是否启用binlog日志 show variables like 'log_bin'; # 查看详细的日志配置信息 show global variables like '%log%'; # mysql数据存储目录 show variables like '%dir%'; # 查看binlog的目录 show global variables like "%log_bin%"; # 查看当前服务器使用的biglog文件及大小 show binary logs; # 查看主服务器使用的biglog文件及大小 # 查看最新一个binlog日志文件名称和Position show master status; # 事件查询命令 # IN 'log_name' :指定要查询的binlog文件名(不指定就是第一个binlog文件) # FROM pos :指定从哪个pos起始点开始查起(不指定就是从整个文件首个pos点开始算) # LIMIT [offset,] :偏移量(不指定就是0) # row_count :查询总条数(不指定就是所有行) show binlog events [IN 'log_name'] [FROM pos] [LIMIT [offset,] row_count]; # 查看 binlog 内容 show binlog events; # 查看具体一个binlog文件的内容 (in 后面为binlog的文件名) show binlog events in 'master.000003'; # 设置binlog文件保存事件,过期删除,单位天 set global expire_log_days=3; # 删除当前的binlog文件 reset master; # 删除slave的中继日志 reset slave; # 删除指定日期前的日志索引中binlog日志文件 purge master logs before '2019-03-09 14:00:00'; # 删除指定日志文件 purge master logs to 'master.000003';
-
binlog日志包括两类文件:
二进制日志索引文件(文件名后缀为.index)用于记录所有有效的的二进制文件
二进制日志文件(文件名后缀为.00000*)记录数据库所有的DDL和DML语句事件 -
mysqlbinlog 命令的使用
服务器以二进制格式将binlog日志写入binlog文件,如何要以文本格式显示其内容,可以使用 mysqlbinlog 命令。# mysqlbinlog 的执行格式 mysqlbinlog [options] log_file ... # 查看bin-log二进制文件(shell方式) mysqlbinlog -v --base64-output=decode-rows /var/lib/mysql/master.000003 # 查看bin-log二进制文件(带查询条件) mysqlbinlog -v --base64-output=decode-rows /var/lib/mysql/master.000003 \ --start-datetime="2019-03-01 00:00:00" \ --stop-datetime="2019-03-10 00:00:00" \ --start-position="5000" \ --stop-position="20000"
-
恢复数据
https://www.cnblogs.com/kevingrace/p/5907254.html