日志管理
第1章 错误日志(log_error)
1.1 作用
1 | 记录启动\关闭\日常运行过程中,状态信息,警告,错误 |
1.2 错误日志配置
1 | 默认就是开启的: /数据路径下/hostname.err |
1.3 日志内容查看
1 | 主要关注[ERROR],看上下文 |
第2章 binlog(binary logs):二进制日志
2.1 作用
1 | (1)备份恢复必须依赖二进制日志 |
2.2 binlog配置 (5.7必须加server_id)
1 | 注意:MySQL默认是没有开启二进制日志的。 |
2.2.1 创建日志目录
1 | mkdir /data/binlog |
2.2.2 修改配置文件
1 | vim /etc/my.cnf |
2.2.3 重启数据库生效
1 | [root@db01 ~]# systemctl restart |
2.2.4 参数说明
1 | server_id=3306 |
2.3 binlog记录了什么
2.3.1 引入
1 | binlog是SQL层的功能。记录的是变更SQL语句,不记录查询语句。 |
2.3.2 记录SQL语句种类
1 | DDL :原封不动的记录当前DDL(statement语句方式)。 |
2.3.3 DML三种记录方式
1 | binlog_format(binlog的记录格式)参数影响 |
2.3.4 面试题
1 | #SBR与RBR模式的对比 |
2.4 event(事件)是什么?
2.4.1 事件的简介
1 | 二进制日志的最小记录单元 |
2.4.2 event的组成
1 | 三部分构成: |
2.5 日志文件查看
2.5.1 查看日志的开启情况
log_bin参数设置的路径,可以找到二进制日志
1 | Master [(none)]>show variables like '%log_bin%'; |
2.5.2 查看一共多少个binlog
1 | Master [(none)]>show binary logs; |
2.5.3 查看mysql正在使用的日志文件
1 | Master [(none)]>show master status; |
file:当前MySQL正在使用的文件名
Position:最后一个事件的结束位置号
2.6 日志内容查看
2.6.1 event查看
1 | Master [binlog]>show binlog events in 'mysql-bin.000003'; |
2.6.2 binlog文件内容详细查看
1 | mysqlbinlog /data/mysql/mysql-bin.000006 |
2.7 基于Position号进行日志截取
1 | 核心就是找截取的起点和终点 |
2.8 binlog日志的GTID新特性
2.8.1 GTID 介绍
1 | 5.6 版本新加的特性,5.7中做了加强 |
2.8.2. GTID(Global Transaction ID)
1 | 是对于一个已提交事务的编号,并且是一个全局唯一的编号。 |
2.8.3 重要参数介绍:
1 | vim /etc/my.cnf |
2.8.3. 基于GTID进行查看binlog
1 | 具备GTID后,截取查看某些事务日志: |
2.8.4 GTID的幂等性
1 | 开启GTID后,MySQL恢复Binlog时,重复GTID的事务不会再执行了 |
2.9 使用二进制日志恢复数据案例
2.9.1 故障环境介绍
1 | 创建了一个库 db, 导入了表t1 ,t1表中录入了很多数据 |
2.9.2 恢复过程(无GTID时的恢复)
1.查看当前使用的 binlog文件
1 | oldguo [db]>show master status ; |
第二段:
1 | 二段: |
3.恢复
1 | set sql_log_bin=0; |
2.9.3 有GTID的恢复:
(1)截取
1 | mysqlbinlog --skip-gtids --include-gtids='3ca79ab5-3e4d-11e9-a709-000c293b577e:7-12' mysql-bin.000004> /tmp/bin.sql |
(2)恢复
1 | set sql_log_bin=0; |
2.10二进制日志其他操作
2.10.1 自动清理日志
1 | show variables like '%expire%'; |
2.10.2 手工清理
1 | PURGE BINARY LOGS BEFORE now() - INTERVAL 3 day; |
*reset master; 主从关系中,主库执行此操作,主从环境必崩
2.10.3 日志是怎么滚动
1 | flush logs; |
第3章 slow_log 慢日志
3.1 作用
1 | 记录慢SQL语句的日志,定位低效SQL语句的工具日志 |
3.2 开启慢日志(默认没开启)
1 | 开关: |
3.3 mysqldumpslow 分析慢日志
1 | mysqldumpslow -s c -t 10 /data/mysql/slow.log |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 WF's Blog!
评论