美文网首页
30日志管理

30日志管理

作者: Jachin111 | 来源:发表于2020-11-23 23:27 被阅读0次

错误日志 排查MySQL运行过程的故障
默认配置 默认开启 datadir/hostname.err
查看方法 [ERROR]
人为定制位置 log_error=/tmp/mysql3306.log 重启生效
查找位置 select @@log_error;

二进制日志(binlog)
主从要依赖二进制日志,数据恢复时需要依赖于二进制日志
默认没有开启,配置
server_id=6
log_bin=/data/binlog/mysql-bin
​    /data/binlog 提前定制好的目录,而且要有mysql.mysql的权限
​    mysql-bin 二进制日志文件名的前缀

binlog_format=row 5.7版本默认配置是row,可以省略

创建目录和授权
mkdir -p /data/binlog/
chown -R mysql.mysql /data
/etc/init.d/mysqld restart

二进制日志记录 记录的数据库所有变更类的操作日志(DDL,DCL,DML)
DDL和DCL 以语句的方式原模原样的记录
DML 记录的已提交的事务,DML记录格式(statement,row,mixed),通过binlog_format=row参数控制
​    statement SSR,语句模式记录日志,做什么命令记录什么命令
​    row RBR,行模式,数据行的变化
​    mixed MBR,混合模式

SBR和RBR的区别
SBR 可读性强,对于范围操作日质量少,但是可能会出现不准确的情况
RBR 可读性较弱,对于范围操作日志大,不会出现记录错位,高可用环境中的新特性要依赖于FBR

二进制日志记录单元
event事件 二进制日志的最小单元
​    对于DDL等语句是每一个语句就是一个事件
​    一个事务包含多个语句,多个事件

event事件的开始和结束 方便我们从日志中截取我们想要的日志事件
二进制日志管理
查看二进制日志位置 SHOW variables like '%log_bin%';

查看所有已存在的二进制日志
SHOW binary logs;
flush logs;

查看正在使用的二进制日志 SHOW master status;

查看二进制日志事件
CREATE DATABASE binlog charset utf8mb4;
use binlog;
CREATE TABLE t1(id int);
INSERT INTO t1 values(1);
SHOW master status;
SHOW binlog events in 'mysql-bin.000004';
SHOW binlog events in 'mysql-bin.000004' limit 5;

查看二进制日志内容
mysqlbinlog mysql-bin.000004
mysqlbinlog --base64-output=decode-rows -vvv mysql-bin.000004
mysqlbinlog -d haoge mysql-bin.000004

截取二进制日志
mysqlbinlog --start-position=219 --stop-position=335 mysql-bin.000004 >/tmp/a.sql

通过binlog恢复数据
模拟数据
CREATE DATABASE haoge charset utf8mb4;
CREATE TABLE t1(id int);
INSERT INTO t1 values(1);
commit;

模拟故障
DROP DATABASE haoge;

分析和截取binlog
SHOW master status; 确认使用的是哪一个日志
SHOW binlog events in 'mysql-bin.000004'; 查看事件
mysqlbinlog --start-position=823 --stop-position=1420 mysql-bin.000004 >/tmp/bin.sql

恢复binlog
set mysql_log_bin=0; 临时关闭恢复时产生的新日志
source /tmp/bin.sql
set sql_log_bin=1;

binlog的gtid记录模式管理
GTID 对于binlog中的每一个事务,都会产生一个GTID号码
​    DDL,DCL一个event就是一个事务,就会有一个GTID号
​    DML语句来讲,begin和commit是一个事务,就是一个GTID号

GTID的组成
severi_uuid:TID
cat auto.cnf

TID是一个自增长的数据,从1开始
GTID的幂等性 如果拿有GTID的日志去恢复时,检查当前系统中是否有相同的GTID号,有相同的就自动跳过,会影响到binlog恢复和主从复制

GTID的开启和配置
vim /etc/my.cnf
gtid-mode=on
enforce-gtid-consistency=true

查看GTID信息
CREATE DATABASE gtid charset utf8mb4;
SHOW master status;
USE gtid;
CREATE TABLE t1(id int);
SHOW master status;
INSERT INTO t1 values(1);
commit;

SHOW master status;
SHOW binlog events in 'mysql-bin.000005';
DROP DATABASE gtid;

基于GTID,binlog恢复
截取日志
cd /data/binlog/
mysqlbinlog --skip-gtids --include-gtids='d60b549f-9e10-11e9-ab04-000c294a1b3b:1-3' mysql-bin.000005 >/tmp/gtid.sql
​    --skip-gtids 在导出时,忽略原有的gtid信息,恢复时生成最新的gtid信息

恢复
set sql_log_bin=0;
source /tmp/gtid.sql
set sql_log_bin=1;

GTID相关的参数
--skip-gtids
--include-gtids
--exclude-gtids

慢日志(slow-log)
记录运行较慢的语句,优化过程中常用的工具日志

配置
vim /etc/my.cnf
slow_query_log=1 开关
slow_query_log_file=/data/mysql/slow.log 文件位置及名字
long_query_time=0.1 设定慢查询时间
log_queries_not_using_indexes 没走索引的语句也记录
systemctl restart mysqld

模拟慢查询
分析慢日志
mysqldumpslow -s -c -t 10 /data/mysql/slow.log

第三方工具
toolkit工具包中的命令
pt-query-diagest /data/mysql/slow.log
Anemometer基于pt-query-digest将MySQL慢查询可视化

二进制日志清理
自动
expire_logs_days=15
设置的依据 至少1轮全备周期长度的过期时间

手动
help purge
PURGE BINARY LOGS TO 'mysql-bin.000032';
PURGE BINARY LOGS BEFORE '2008-04-02 22:46:26';
reset master;

日志如何滚动
flush logs;

数据库重启
max_binlog_size=1073741824

slow
show variables like 'slow_query_log%';
show variables like 'long%';
show variables like '%using_indexes';

相关文章

  • 20171012 日志管理

    日志介绍rsyslog日志管理journalctlMySQL管理日志 一、日志介绍 (一)日志的基本概念 日志:将...

  • HDFS Using QJM

    HDFS 使用分布式日志管理,日志管理的是nameNode的fsimages和eidts日志文件。

  • 30日志管理

    错误日志 排查MySQL运行过程的故障默认配置 默认开启 datadir/hostname.er...

  • 27-日志管理

    本章内容 ◆ 日志介绍◆ 日志配置◆ 日志管理◆ 远程日志◆ 基于MYSQL的日志 日志介绍 rsyslog 启用...

  • 02、Kafka日志Log源码分析

    日志是日志段的容器,里面定义了很多管理日志段的操作。 既然日志要管理日志段对象,那么首先得加载所有日志段对象到内存...

  • 第十章 使用日志监控 - 配置日志监控

    第十章 使用日志监控 - 配置日志监控 日志监视器管理器实用程序 ^MONMGR 允许配置和管理日志管理器。可以停...

  • monkey日志管理

    日志管理作用 Monkey日志管理是Monkey测试中非常重要的一个环节,通过日志管理分析,可以获取当前测试对象在...

  • 日志管理

    日志管理 日志介绍 错误日志 二进制日志 案例 gtid 案例 二进制日志其他操作 慢日志 分析

  • Linux日志管理:

    rsyslog 系统日志管理 logrotate日志轮转 rsyslog部分: rsyslog是系统专职日志程序,...

  • 日志分析工具

    1 日志管理工具 日志管理工具有Splunk、Sumo Logic、LogStash、GrayLog、Loggly...

网友评论

      本文标题:30日志管理

      本文链接:https://www.haomeiwen.com/subject/avybiktx.html