写点什么

YashanDB 慢日志管理

作者:YashanDB
  • 2025-03-19
    广东
  • 本文字数:1457 字

    阅读完需:约 5 分钟

慢日志启动和关闭

通过设置 ENABLE_SLOW_LOG 参数来控制慢日志记录的启动和关闭,默认关闭。

--查看当前慢日志是否打开SHOW PARAMETER ENABLE_SLOW_LOG;NAME                VALUE     ------------------- ----------ENABLE_SLOW_LOG     FALSE        
--关闭慢日志ALTER SYSTEM SET ENABLE_SLOW_LOG = FALSE;
--开启慢日志ALTER SYSTEM SET ENABLE_SLOW_LOG = TRUE;
复制代码

设置慢日志时间阈值

通过设置 SLOW_LOG_TIME_THRESHOLD 参数来控制慢日志中的时间阈值,单位为毫秒,执行时间大于时间阈值的 SQL 会被认为慢 SQL 而记录到慢日志中。

--查看当前慢日志时间阈值SHOW PARAMETER SLOW_LOG_TIME_THRESHOLDNAME                        VALUE     --------------------------- ----------SLOW_LOG_TIME_THRESHOLD     1000        
--设置时间阈值ALTER SYSTEM SET SLOW_LOG_TIME_THRESHOLD = 2000;
复制代码

设置慢日志记录的 SQL 最大长度

通过设置 SLOW_LOG_SQL_MAX_LEN 参数来控制慢日志中的记录的 SQL 语句的最大长度,单位为字节,超过该值的 SQL 会被截断记录。

--查看当前慢日志记录的SQL最大长度SHOW PARAMETER SLOW_LOG_SQL_MAX_LENNAME                        VALUE     --------------------------- ----------SLOW_LOG_SQL_MAX_LEN        2000        
--设置慢日志记录的SQL最大长度ALTER SYSTEM SET SLOW_LOG_SQL_MAX_LEN = 1000;
复制代码

设置慢日志文件名

通过设置 SLOW_LOG_FILE_NAME 参数来控制慢日志文件名。

--查看当前慢日志文件名SHOW PARAMETER SLOW_LOG_FILE_NAMENAME                      VALUE     ------------------------- ----------SLOW_LOG_FILE_NAME        slow.log
--设置慢日志文件名ALTER SYSTEM SET SLOW_LOG_FILE_NAME = myslow.LOG SCOPE = SPFILE;
复制代码

设置慢日志文件的存储路径

通过设置 SLOW_LOG_FILE_PATH 参数来控制慢日志文件的存储路径。

--查看当前慢日志文件的存储路径SHOW PARAMETER SLOW_LOG_FILE_PATHNAME                    VALUE     ----------------------- ------------SLOW_LOG_FILE_PATH      ?/slow/log
--设置慢日志文件的存储路径ALTER SYSTEM SET SLOW_LOG_FILE_PATH = '/home/user/log/slow/' SCOPE = SPFILE;
复制代码

设置慢日志记录的输出方式

通过设置 SLOW_LOG_OUTPUT 参数来控制慢日志记录的输出方式,目前支持 TABLE 和 FILE 类型:

  • TABLE:慢日志输出到 SLOW_LOG$系统表内。

  • FILE:慢日志输出到慢日志文件内。

--查看当前慢日志记录的输出方式SHOW PARAMETER SLOW_LOG_OUTPUTNAME                      VALUE     ----------------       ------------SLOW_LOG_OUTPUT           FILE
--设置慢日志记录的输出方式ALTER SYSTEM SET SLOW_LOG_OUTPUT = 'FILE';
复制代码

日志归档

慢日志记录文件大小没有设置上限,当 slow.log 文件或 SLOW_LOG$表过大时需要手动清理。

Note

  • 慢日志采用异步输出方式,即执行完不会立即输出,而是放到日志队列里,通过后台线程分批次输出。

  • 日志队列最大长度 256,线程每 200ms 输出 64 条记录。

  • 基于上述原理,在掉电情况下可能会丢失日志;如果时间阈值设置过小,致使队列满的情况下亦会丢失日志。

  • 主备环境中,备库将 SLOW_LOG_OUTPUT 设置为 FILE 时,慢日志输出到文件,将备库的 SLOW_LOG_OUTPUT 设置为 TABLE 不会报错但不会生效,日志也不会继续输出到文件。备库 SLOW_LOG$的内容是直接同步的主库的 SLOW_LOG$。

  • 根据上条规则,不建议将备库的 SLOW_LOG_OUTPUT 设为 TABLE;如一个 TABLE 模式的主库被切换为备库,请注意其慢日志将无法输出,需修改 SLOW_LOG_OUTPUT 参数为 FILE 使慢日志能输出到文件。

发布于: 刚刚阅读数: 6
用户头像

YashanDB

关注

全自研国产新型大数据管理系统 2022-02-15 加入

还未添加个人简介

评论

发布
暂无评论
YashanDB慢日志管理_数据库_YashanDB_InfoQ写作社区