mysql的binlog和slow_log慢日志

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
redo
 
undo
 
-----------------------------------------
日志管理
 
log-error=/var/log/mysql.log
 
 
二进制日志的“总闸”
作用:
1、是否开启
2、二进制日志路径/data/mysql/
3、二进制日志文件名前缀mysql-bin 
4、文件名以"前缀".000001~N
log-bin=/data/mysql/mysql-bin 
 
二进制日志的“分开关”
只有总闸开启才有意义,默认是开启状态。
我们在有些时候会临时关闭掉。
只影响当前会话。
sql_log_bin=1/0
 
 
二进制日志的格式
statement,语句模式:
记录信息简洁,记录的是SQL语句本身。但是在语句中出现函数操作的话,有可能记录的数据不准确。
5.6中默认模式,但生产环境中慎用,建议改成row。
 
row,行模式
表中行数据的变化过程。
记录数据详细,对IO性能要求比较高
记录数据在任何情况下都是准确的。
生产中一般是这种模式。
5.7以后默认的模式。
 
mixed,混合模式
 
经过判断,选择row+statement混合的一种记录模式。
一般不用。
 
binlog的查看方式:
1、查看binlog原始信息
[root@db01 mysql-5.6.36]# mysqlbinlog mysql-bin.000001
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
 
mysqbin   mysql-bin.000002  
 
2、在row模式下,翻译成语句
mysqlbinlog --base64-output='decode-rows' -v   mysql-bin.000002
 
3、查看binlog事件
show binary logs; 所有在使用的binlog信息
 
show binlog events in ''
 
4、如何截取binlog内容,按需求恢复(常规思路)
(1)、show binary logs;   show master status;
(2)、show binlog events in '' 从后往前看,找到误操作的事务,判断事务开始position和结束position
(3)、把误操作的剔除掉,留下正常操作到2个sql文件中
(4)、先测试库恢复,把误操作的数据导出,然后生产恢复。
 
遇到的问题:
1、时间长
2、对生产数据有一定影响,有可能会出现冗余数据
3、
 
有什么好的解决方案。
1、flashback闪回功能(扩展)
2、通过备份,延时从库
 
 
--------------------------------
SET GLOBAL expire_logs_days = 7;
 
PURGE BINARY LOGS BEFORE now() - INTERVAL 3 day;
 
PURGE BINARY LOGS TO 'mysql-bin.000010';
 
reset master  
------------------------
慢日志 slow log
 
调优过程中的工具日志。
 
统计收集慢得语句
 
 
------
 
 
 
 
设定慢查询的阀值,超出次设定值的SQL即被记录到慢查询日志,缺省值为10s,现有版本可以指定零点几秒
long_query_time
指定是否开启慢查询日志
slow_query_log
指定慢日志文件存放位置,可以为空,系统会给一个缺省的文件host_name-slow.log
slow_query_log_file
查询检查返回少于该参数指定行的SQL不被记录到慢查询日志
min_examined_row_limit
不使用索引的慢查询日志是否记录到索引
log_queries_not_using_indexes
 
 
 
慢日志扩展:
Anemometer实现pt-query-digest 图形化
https://www.cnblogs.com/xuanzhi201111/p/4128894.html

 

posted @   滴滴滴  阅读(1068)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示