官答丨slow_query_log_file实例内存中变量与配置文件设置的不一致

2024-05-30 16:28:20 浏览数 (1)

* GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。

官答栏目针对GreatSQL数据库中的问题,选取官方论坛和讨论群中的典型提问进行深入解答。内容涵盖数据库安装部署、配置优化、故障排查、性能测试等方面。 在文章中,我们不仅提供解决方案,还会结合实例深入剖析问题的成因,提升读者对GreatSQL数据库的理解能力。 如果你在管理、使用GreatSQL数据库时遇到棘手的技术难题,想系统地学习提高数据库技能,就来看看官答的文章吧。这里不仅可以找到可靠的解决方法,还能从中学习到数据库优化的经验和思路。 通过阅读官答的内容,可以全面地掌握GreatSQL数据库管理的技能,熟练应对各种故障情况。快来关注官答栏目,与我们一起成长!

本问题是来自论坛,用户使用数据库环境大概介绍如下: 名称版本操作系统版本BigCloud Enterprise Linux 8数据库版本GreatSQL-8.0.32-25 用户问题 用户提供的问题信息内容如下: 1、my.cnf配置文件慢慢日志文件路径相关配置: slow_query_log_file = /data/GreatSQL/logs/slow.log 2、但是在内存中查询到到slow_query_log_file变量却与配置不一致 mysqladmin var |grep slow_query_log_file | slow_query_log_file | /data/GreatSQL/logs/bclinux01.log.000001 解答用户疑问 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 - 1073741824] max_slowlog_files = [0 - 102400]

  • 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'设置后,再查看内存的数据,显示的就正确了: greatsql> show global variables like '%slow%'; | slow_query_log_file | /data/GreatSQL/slow.log.000001 |

0 人点赞