第一节:

binlog配置:

注意:MySQL默认是没有开启二进制日志的。

基础参数查看:

开关:

[(none)]>select @@log_bin;

日志路径及名字

[(none)]>select @@log_bin_basename;

服务ID号:

[(none)]>select @@server_id;

二进制日志格式:

[(none)]>select @@binlog_format;

双一标准之二:

[(none)]>select @@sync_binlog;


binlog

1、作用:

配合备份,恢复数据的日志,它是主从复制的前提

2、配置参数

server_id=8

log_bin=/data/binlog/mysql-bin

这个参数先创建好,一定记得给授权

binlog_format=row #记录二进制的格式,主要是针对变量语句,行的模式

server_id=3306 

主要是在主从复制过程中必须要加的,但是在5.7版本中,要用以下参数(log_bin),开启binlog日志,即使是单机也是必加的

log_bin=/data/binlog/mysql-bin

(1)开启二进制日志功能

(2)设置二进制日志目录及名称前缀

binlog_format=row

binlog的记录格式??

3、事件event

二进制日志记录的最小单元

开始position 位置号

结束position 位置号

Position:

开始标识: at 194

结束标识: end_log_pos 254

194? 254?

某个事件在binlog中的相对位置号,位置号的作用是什么?

为了方便我们截取事件,主要截取二进制日志

对于DDL,DCL,一个语句就是一个event

对于DML语句来讲:只记录已提交的事务。


4、记录什么语句

DDL:原封不动的记录当前DDL(statement语句方式)。

DCL:原封不动的记录当前DDL(statement语句方式)。

DML:ROW 模式

row 和语句模式的优缺点

statement:可读性较高,日志量少,但是不够严谨

row:行模式,行的变化,记录数据比较准确,可读性很低,日志量大,足够严谨


5、日志查看

show binary logs 查看一共多少个binlog

show master status  查看mysql正在使用的日志文件

show binlog enents in ‘xxx’ 查看当前事件来截取二进制 的启点和终点

enents 又扩展到了form 和limit 来查询

可以更快速的过滤

mysql -e "show binlog enents in ‘xxx’ form   limit"


mysqlbinlog  -d --start-position  --stop-position --start-datetime --stop-datetime 

--base64-output=decode-rows -vvv



Master [binlog]>show binlog events in 'mysql-bin.000003';

+------------------+-----+----------------+-----------+-------------+----------------------------------------+

| Log_name         | Pos | Event_type     | Server_id | End_log_pos | Info                                   |

+------------------+-----+----------------+-----------+-------------+----------------------------------------+

| mysql-bin.000003 |   4 | Format_desc    |         6 |         123 | Server ver: 5.7.20-log, Binlog ver: 4  |

| mysql-bin.000003 | 123 | Previous_gtids |         6 |         154 |                                        |

| mysql-bin.000003 | 154 | Anonymous_Gtid |         6 |         219 | SET @@SESSION.GTID_NEXT= 'ANONYMOUS'   |

| mysql-bin.000003 | 219 | Query          |         6 |         319 | create database binlog                 |

| mysql-bin.000003 | 319 | Anonymous_Gtid |         6 |         384 | SET @@SESSION.GTID_NEXT= 'ANONYMOUS'   |

| mysql-bin.000003 | 384 | Query          |         6 |         486 | use `binlog`; create table t1 (id int) |

+------------------+-----+----------------+-----------+-------------+--------------------------------------

Log_name:binlog文件名

Pos:开始的position    *****

Event_type:事件类型

Format_desc:格式描述,每一个日志文件的第一个事件,多用户没有意义,MySQL识别binlog必要信息

Server_id:mysql服务号标识

End_log_pos:事件的结束位置号 *****

Info:事件内容*****

补充:

SHOW BINLOG EVENTS

   [IN 'log_name']

   [FROM pos]

   [LIMIT [offset,] row_count]

[root@db01 binlog]# mysql -e "show binlog events in 'mysql-bin.000004'" |grep drop


6、截取日志

重点就是启点和终点

[root@db01 binlog]# mysqlbinlog --start-datetime='2020-12-26 17:00:00' --stop-datetime='2020-12-26 17:01:00'  /data/binlog/mysql-bin.000004 


7、用gtid截取二进制日志,当日志量比较大的时候用gtid比较方便

重要参数介绍:

vim /etc/my.cnf

gtid-mode=on

enforce-gtid-consistency=true

systemctl restart mysqld


基于GTID进行查看binlog

具备GTID后,截取查看某些事务日志:

--include-gtids

--exclude-gtids

mysqlbinlog --include-gtids='dff98809-55c3-11e9-a58b-000c2928f5dd:1-6' 

--exclude-gtids='dff98809-55c3-11e9-a58b-000c2928f5dd:4'  /data/binlog/mysql-bin.000004


©著作权归作者所有:来自51CTO博客作者mob604756e834f7的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. Spring Boot利用Logback输出日志到指定位置的简单配置及使用方式
  2. Redis这些知识点,是必须知道的!
  3. Kubernetes日志系统新贵Loki-Stack
  4. Zabbix监控ELK异常日志告警
  5. ELK企业日志平台收集Nginx访问日志
  6. wordpress日志审计插件audit-trail安装
  7. Oracle归档日志满错误(ORA-00257)
  8. 日志轮替logrotate
  9. 容器的日志管理ELK

随机推荐

  1. LINUX主机名字规范
  2. linux mint 19安装 kvm 软件包
  3. 设置yum软件库轻松解决软件包安装问题
  4. linux 时间同步的2种方法(转)
  5. Linux input子系统学习总结(一)
  6. 【2017/4/13】centos或者linux安装完成后
  7. 对于Linux创建链接时终目录和文件处理的
  8. c语言起泡排序
  9. Linux:目录中的最新文件。
  10. 非阻塞 connect 的实现