Mysql配置文件 binlog和慢日志
binlog
binlog_format
binlog日志格式,mysql默认采用statement,建议使用mixed
STATEMENT模式(SBR)
每一条会修改数据的sql语句会记录到binlog中。优点是并不需要记录每一条sql语句和每一行的数据变化,减少了binlog日志量,节约IO,提高性能。缺点是在某些情况下会导致master-slave中的数据不一致(如sleep()函数, last_insert_id(),以及user-defined functions(udf)等会出现问题)
ROW模式(RBR)
不记录每条sql语句的上下文信息,仅需记录哪条数据被修改了,修改成什么样了。而且不会出现某些特定情况下的存储过程、或function、或trigger的调用和触发无法被正确复制的问题。缺点是会产生大量的日志,尤其是alter table的时候会让日志暴涨。
MIXED模式(MBR)
以上两种模式的混合使用,一般的复制使用STATEMENT模式保存binlog,对于STATEMENT模式无法复制的操作使用ROW模式保存binlog,MySQL会根据执行的SQL语句选择日志保存方式。
查询:
在线配置:
配置文件:binlog_format = MIXED
log_slave_updates
把relay-log里的日志内容再记录到slave本地的binlog里,默认关闭,主主就要开启。
如果关闭当主主复制的时候会报错,导致主B写入数据时主A无法同步,5.7版本及以后不用开启,用一张gtid_executed系统表记录同步复制的信息(UUID:事务号),减轻了压力。
查询:show variables like 'log_slave_updates';
在线配置:
配置文件:log_slave_updates = 0
log-bin|log-bin-index
log-bin将开启binlog日志,mysql-bin 是日志的基本名或前缀名,可以更换。
log-bin-index指定的是binlog文件的索引文件,这个文件管理了所有的binlog文件的目录,不用进行更改,默认即可。
查询:
在线配置:
配置文件:log-bin=mysql-bin | log-bin-index=mysql-bin.index
expire_logs_days
超过指定天数的binlog将被删除
查询:
在线配置:
配置文件:expire_logs_days = 7
relay-log|relay-log-index
relay-log在从上指定从主那里同步过来的binlog文件存放位置。
relay-log-index定义relay-log-index的文件名,类似binlog的log-bin-index。
查询:show variables like '%relay%';
在线配置:
配置文件:relay-log=mysql.relay-log | relay-log-index=mysql.relay-log.index
relay-log-info-file
设置relay-log.info的位置和名称(relay-log.info记录MASTER的binary_log的恢复位置和relay_log的位置)
查询:show variables like '%relay%';
在线配置:
配置文件:relay-log=mysql.relay-log | relay-log-index=mysql.relay-log.index
max_relay_log_size
从服务器在主服务器上复制的binlog日志,如果超过这个值,将形成一个新的日志。用于控制文件大小。
查询:
在线配置:
配置文件:max_relay_log_size = 512M
binlog-ignore-db|replicate-ignore-db
binlog-ignore-db无需开启二进制日志文件的数据库,多个数据库则要重复设置
replicate-ignore-db来设置不需要同步的库
bin-do-db,bin-ignore-db 为互斥关系,只需设置其中一项即可
查询:
在线配置:
配置文件:
binlog-ignore-db = mysql
binlog-ignore-db = test
binlog-ignore-db = information_schema
binlog-ignore-db = performance_schema
|
replicate-ignore-db = mysql
replicate-ignore-db = test
replicate-ignore-db = information_schema
replicate-ignore-db = performance_schema
binlog_cache_size
二进制日志缓冲区吗,默认是32k。该参数是基于会话的,不要设置过大。
当事务的记录大于设定的binlog_cache_size时,mysql会把缓冲区中的日志信息写入一个临时文件中,所以该值也不能设置过小。
使用命令show global status like 'binlog_cache_%';查看Binlog_cache_disk_use(记录了使用临时文件写二进制日志的次数)和Binlog_cache_use(用缓冲的次数),可以看到binlog_cache_size值设置小了。
+-----------------------+-------+
| Variable_name | Value |
+-----------------------+-------+
| Binlog_cache_disk_use | 1008 |
| Binlog_cache_use | 5721 |
+-----------------------+-------+
查询:show variables like 'binlog_cache_size';
在线配置:
配置文件:binlog_cache_size = 64M
max_binlog_size
超过这个数值,将会把日志写到一个新的文件中。最大值1GB,最小值1M,默认1GB。
查询:
在线配置:
配置文件:max_binlog_size = 512M
max_binlog_cache_size
表示的是binlog 能够使用的最大cache 内存大小,默认是1M。
查询:show global status like 'bin%';
在线配置:set global max_binlog_cache_size=1048576*100
配置文件:max_binlog_cache_size = 100M
慢查询
slow-query-log
是否开启慢查询日志,默认OFF关闭。
查询:show variables like '%slow%';
在线配置:set global slow_query_log=1;
配置文件:slow_query_log=1
long_query_time
指定多少秒返回查询的结果为慢查询,单位秒。默认为10秒,正好等于数值的也不会记录,要超过。
查询:show global status like 'bin%';
在线配置:set global long_query_time=2;
配置文件:long_query_time=2
slow_query_log_file
指定保存路径及文件名,默认为数据文件目录,hostname-slow.log
查询:show variables like "slow%";
在线配置:
配置文件:slow_query_log_file=/data/hostname-slow.log
log-queries-not-using-indexes
记录所有没有使用到索引的查询语句,但可能会导致日志激增。
查询:
在线配置:
配置文件:log-queries-not-using-indexes = TRUE
log_throttle_queries_not_using_indexes
表示每分钟允许记录到slow log的且未使用索引的sql语句次数,配合log-queries-not-using-indexes使用。限制条目数后,日志将不会激增。
查询:
在线配置:
配置文件:log_throttle_queries_not_using_indexes=1000
min_examined_row_limit
记录那些由于查找了多余1000次而引发的慢查询
查询:
在线配置:
配置文件:min_examined_row_limit=1000
log_slow_admin_statements
记录optimize table,analyze table和alter table等语句引发的慢查询
查询:
在线配置:
配置文件:log-slow-admin-statements = TRUE
log-slow-admin-statements
记录从服务器产生的慢查询
查询:
在线配置:
配置文件:log-slow-admin-statements = TRUE
log_slow_filter
慢查询日志过滤类型
查询:
在线配置:
配置文件:log_slow_filter = full_scan,full_join,tmp_table,tmp_table_on_disk,filesort,filesort_on_disk
log_slow_verbosity
是否记录详细格式的日志信息
查询:
在线配置:
配置文件:log_slow_verbosity = full
Mysql配置文件 binlog和慢日志的更多相关文章
- mysql之binlog和各类日志介绍
1.错误日志 错误日志作用: 记录MySQL的启动.停止信息以及在MySQL运行过程中的错误信息. 参数log_error(默认开启) 修改后重启生效 log_error=[path/[file_n ...
- mysql 通过binlog 查看执行日志
环境:linux deepin15.7 mysql 5.7 1.开启binlog vim /etc/mysql/mysql.conf.d/mysqld.cnf 添加 log_bin = /var/ ...
- 解说mysql之binlog日志以及利用binlog日志恢复数据
众所周知,binlog日志对于mysql数据库来说是十分重要的.在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全备份+binlog日志恢复增量数据部分),化险为夷! 废 ...
- Mysql之binlog日志说明及利用binlog日志恢复数据操作记录
众所周知,binlog日志对于mysql数据库来说是十分重要的.在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全备份+binlog日志恢复增量数据部分),化险为夷! 一 ...
- MySQL的binlog日志<转>
binlog 基本认识 MySQL的二进制日志可以说是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日 ...
- Mysql利用binlog日志恢复数据操作(转)
a.开启binlog日志:1)编辑打开mysql配置文件/etc/mys.cnf[root@vm-002 ~]# vim /etc/my.cnf在[mysqld] 区块添加 log-bin=mysql ...
- MySQL的binlog日志恢复(转)
binlog 基本认识 MySQL的二进制日志可以说是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日 ...
- 【转】Mysql之binlog日志说明及利用binlog日志恢复数据操作记录
众所周知,binlog日志对于mysql数据库来说是十分重要的.在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全备份+binlog日志恢复增量数据部分),化险为夷! 废 ...
- 20180530利用Maxwell组件实时监听Mysql的binlog日志
转自:https://blog.csdn.net/qq_30921461/article/details/78320750 http://kafka.apache.org/quickstart htt ...
随机推荐
- 【大爽python算法】递归算法进化之回溯算法(backtracking)
作者自我介绍:大爽歌, b站小UP主 , python1对1辅导老师, 时常直播编程,直播时免费回答简单问题. 前置知识: 递归算法(recursion algorithm). 我的递归教程: [教程 ...
- [luogu7468]愤怒的小N
定义$count(x)$为$x$二进制下1的个数,答案即$\sum_{0\le x<n,count(x)\equiv 1(mod\ 2)}f(x)$ 考虑预处理出$S_{k,i,p}=\sum_ ...
- 回顾Servlet开发
1.建立的文件 2.servlet package com.shao.servlet; import javax.servlet.ServletException; import javax.serv ...
- lambda函数实现链表的小根堆
struct ListNode { int val; ListNode *next; ListNode() : val(0), next(nullptr) {} explicit ListNode(i ...
- 【Microsoft Azure 的1024种玩法】八. 基于Azure云端轻松打造一款好用的私有云笔记
[简介] Leanote一款开源云笔记软件,它使用Go的Web框架revel和MongoDB开发完成的,其是目前为止发现的最有bigger的云笔记,它支持markdown输入,代码高亮,多人协作,笔记 ...
- Redis | 第5章 Redis 中的持久化技术《Redis设计与实现》
目录 前言 1. RDB 持久化 1.1 RDB 文件的创建与载入 1.2 自动间隔性保存 1.2.1 设置保存条件 1.2.2 dirty 计数器和 lastsave 属性 1.2.3 检查保存条件 ...
- Hive处理Json数据
Json 格式的数据处理 Json 数据格式是我们比较常用的的一种数据格式,例如埋点数据.业务端的数据.前后端调用都采用的是这种数据格式,所以我们很有必要学习一下这种数据格式的处理方法 准备数据 ca ...
- SAM 做题笔记(各种技巧,持续更新,SA)
SAM 感性瞎扯. 这里是 SAM 做题笔记. 本来是在一篇随笔里面,然后 Latex 太多加载不过来就分成了两篇. 标 * 的是推荐一做的题目. trick 是我总结的技巧. I. P3804 [模 ...
- 实现一个简单的类似不蒜子的PV统计器
内部的放到gitlab pages的博客,需要统计PV,不蒜子不能准确统计,原因在于gitlab的host设置了strict-origin-when-cross-origin, 导致不蒜子不能正确获取 ...
- spring通过注解注册bean的方式+spring生命周期
spring容器通过注解注册bean的方式 @ComponentScan + 组件标注注解 (@Component/@Service...) @ComponentScan(value = " ...