官答|slow_query_log_file 实例内存中变量与配置文件设置的不一致
官答|slow_query_log_file 实例内存中变量与配置文件设置的不一致
官答栏目针对 GreatSQL 数据库中的问题,选取官方论坛和讨论群中的典型提问进行深入解答。内容涵盖数据库安装部署、配置优化、故障排查、性能测试等方面。
在文章中,我们不仅提供解决方案,还会结合实例深入剖析问题的成因,提升读者对 GreatSQL 数据库的理解能力。
如果你在管理、使用 GreatSQL 数据库时遇到棘手的技术难题,想系统地学习提高数据库技能,就来看看官答的文章吧。这里不仅可以找到可靠的解决方法,还能从中学习到数据库优化的经验和思路。
通过阅读官答的内容,可以全面地掌握 GreatSQL 数据库管理的技能,熟练应对各种故障情况。快来关注官答栏目,与我们一起成长!
本问题是来自论坛,用户使用数据库环境大概介绍如下:
用户问题
用户提供的问题信息内容如下:
1、my.cnf 配置文件慢慢日志文件路径相关配置:
slow_query_log_file = /data/GreatSQL/logs/slow.log
2、但是在内存中查询到到slow_query_log_file
变量却与配置不一致
解答用户疑问
1、磁盘上(/data/GreatSQL 目录下)的生成的慢日志文件名,为什么和内存中查询到变量与配置文件中设置的不一致呢?
抛出疑问:是不是曾经修改过 binlog 配置,误操作把 slow_query_log_file 给修改了?
这个问题,当配置文件写的是slow_query_log_file = /data/GreatSQL/logs/slow.log
内存中show global variables like '%slow%';
显示/data/GreatSQL/logs/bclinux01.log
只有通过 SQL 指令set global slow_query_log_file='/data/GreatSQL/logs/bclinux01.log'
可复现。
2、如果把配置文件中slow_query_log_file = /data/GreatSQL/logs/slow.log
配置信息注释,磁盘上的文件名依然是 bclinux01.log.000001
my.cnf 配置文件中注释slow_query_log_file = /data/GreatSQL/logs/slow.log
该参数后,若没有重启数据库实例,对于之前已经set global slow_query_log_file
修改参数,不对其有任何参数变量影响;如果重启数据库实例了,slow log 文件名更新为主机名-slow.log
用户疑问 slow log 日志为什么会带有 0000001,一直产生多个 slow.log.xxxxxx 文件,原因是配置以下参数,当配置了以下参数,数据库会轮询产生 slow.log.xxxxxx 文件
max_slowlog_size
当日志的大小达到设置值时,服务器将轮询慢日志。缺省值为 0。如果限制大小并且启用了该特性,服务器将慢日志文件重命名为 slow_query_log_file.000001
max_slowlog_files
该变量限制慢日志文件的总量,并与 max_slowlog_size 一起使用
服务器创建并添加慢日志,直到达到范围的上限。当达到最大值时,服务器将创建一个序列号较高的新慢日志文件,并删除序列号最低的日志文件,以保持在该范围内定义的总量。
解决用户问题
通过set global slow_query_log_file = '/data/GreatSQL/slow.log'
设置后,再查看内存的数据,显示的就正确了:
版权声明: 本文为 InfoQ 作者【GreatSQL】的原创文章。
原文链接:【http://xie.infoq.cn/article/e32c935b0896ed86c9b214c63】。文章转载请联系作者。
评论