HHDB数据库配置文件解析———日志配置
1.HHDB数据库配置文件解析———日志配置
2.HHDB数据库备份恢复3.hhdb10.4——增量备份4.MySQL基础知识5.MySQL基础知识(2)6.MySQL基础知识(3)7.MySQL基础知识(4)hhdb数据库使用过程中会产生日志文件,若不收集,则无法在出现问题时查找原因,若全部收集时间久了就会产生大量的日志数据。当我们需要通过日志文件排查问题时,往往无法精准快速的定位问题。今天我来分享一些hhdb数据库的日志配置。
1.日志设置
hhdb数据库的配置文件为数据存储目录data目录下的hhdbsql.conf。修改完配置文件后需要重启数据库才会生效。
1.1基本设置
启用日志收集,配置日志目录及日志前缀
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | # 启动日志收集, 这是一个后台进程,抓取发送到stderr的日志消息,并会将他们重定向到日志文件。 logging_collector = on # 日志输出路径,可以是自定义绝对路径或相对于数据目录DATA 的相对路径 log_directory = 'log' # 设置日志输出格式log_line_prefix 设置日志输出格式(能够记录时间,用户名称,数据库名称,客户端IP和端口,方便定位问题) log_line_prefix = '' #此项配置可以根据需求去进行配置建议配置时间和用户%m [%u]即可。 %a应用名 %u用户名 %d数据库名 %r远程主机名或 IP 地址,以及远程端口 %h远程主机名或 IP 地址 %p进程 ID %t无毫秒的时间戳 %m带毫秒的时间戳 %n带毫秒的时间戳(作为 Unix 时间戳) %i命令标签:会话当前命令的类型 %eSQLSTATE 错误代码 %c会话 ID:见下文 %l对每个会话或进程的日志行号,从 1 开始 %s进程开始的时间戳 %v虚拟事务 ID (backendID/localXID) %x事务 ID (如果未分配则为 0) %q不产生输出,但是告诉非会话进程在字符串的这一点停止;会话进程忽略 %%纯文字 |
1.2日志输出级别设置
1 2 3 4 5 6 7 | #设置日志记录内容,log_statement:none, ddl, mod, and all 默认是 none # None表示不记录 #ddl记录所有数据定义命令,比如 CREATE , ALTER ,和 DROP 语句, # mod记录所有ddl语句,加上数据修改语句 INSERT , UPDATE 等 # all 记录所有执行的语句,将此配置设置为 all 可跟踪整个数据库执行的SQL语句,但会对数据库性能产生较大影响,生产环境不建议配置此值。 log_min_duration_statement = 0 。-1表示不可用,0将记录所有SQL语句和它们的耗时,>0只记录那些耗时超过(或等于)这个值(ms)的SQL语句。(用于记录耗时长存在性能问题的sql,不建议设置为0) 若设置为0则log_statement设置为none时也会输出所有sql的记录。 |
1.3日志滚动策略配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | #日志文件名及其扩展名,默认即可 log_filename = 'hhdbsql-%Y-%m-%d_%H%M%S.log' # 交易日志文件名 %a 星期的英文单词的缩写:如星期一, 则返回 Mon %A 星期的英文单词的全拼:如星期一,返回 Monday %b 月份的英文单词的缩写:如一月, 则返回 Jan %B 月份的引文单词的缩写:如一月, 则返回 January %c 返回datetime的字符串表示,如03/08/15 23:01:26 %d 返回的是当前时间是当前月的第几天 %f 微秒的表示: 范围: [0,999999] %H 以24小时制表示当前小时 %I 以12小时制表示当前小时 %j 返回 当天是当年的第几天 范围[001,366] %m 返回月份 范围[0,12] %M 返回分钟数 范围 [0,59] %P 返回是上午还是下午–AM or PM %S 返回秒数 范围 [0,61]。。。手册说明的 %U 返回当周是当年的第几周 以周日为第一天 %W 返回当周是当年的第几周 以周一为第一天 %w 当天在当周的天数,范围为[0, 6],6表示星期天 %x 日期的字符串表示 :03/08/15 %X 时间的字符串表示 :23:22:08 %y 两个数字表示的年份 15 %Y 四个数字表示的年份 2015 %z 与utc时间的间隔 (如果是本地时间,返回空字符串) %Z 时区名称(如果是本地时间,返回空字符串) #日志文件的权限,默认即可 log_file_mode = 0600 #默认为 off ,设置为 on 的话,如果新建了一个同名的日志文件,则会清空原来的文件,再写入日志,而不是在后面追加。 log_truncate_on_rotation = on #单个日志文件的生存期,默认1天,在日志文件大小没有达到log_rotation_size时,一天只生成一个日志文件 log_rotation_age = 1d #当logging_collector被启用时,这个参数决定一个个体日志文件的最大尺寸。当这么多千字节被发送到一个日志文件后,将创建一个新的日志文件。将这个参数设置为零将禁用基于尺寸的新日志文件创建。 log_rotation_size=10MB |
- 日志滚动设置示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | 示例:日志滚动保存需要配合log_filename、log_truncate_on_rotation、以及log_rotation_age参数来组合设置。 每天一个文件保存一个星期 log_filename = 'hhdbsql-%A.log' log_truncate_on_rotation = on log_rotation_age = 1d log_rotation_size = 100MB 每天一个文件保留1个月 logging_collector = on log_statement=’mod’ log_filename = 'hhdbsql-%d.log' log_truncate_on_rotation = on log_rotation_age = 1d log_rotation_size = 100MB 每天一个文件保留1年 log_filename = 'hhdbsql-%m-%d.log' log_truncate_on_rotation = on log_rotation_age = 1d log_rotation_size = 100MB |
说明
通过配置日志级别,可以保留我们需要的数据库交易记录。配置日志滚动策略可以及时清理掉需要的日志文件,避免日志文件日积月累占用太多的系统资源
附:日志参数参考表
- 恒辉产品社区的网址链接(https://www.deskui.com),里面含有HHDB数据库的下载地址!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了