* 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 |