1. 日志参数说明
数据库的日志记录数据库运行日志,可以按照需求对日志的参数进行修改。数据库日志相关参数和参数说明如下。
配置参数
|
参数说明
|
logging_collector
|
这个参数启用日志收集器,它是一个捕捉被发送到stderr的日志消息的后台进程,并且它会将这些消息重定向到日志文件中。
|
log_destination
|
KingbaseES支持多种方法来记录服务器消息,包括stderr、csvlog和syslog。
|
log_directory
|
决定日志文件将被在哪个目录下创建。
|
log_filename
|
设置被创建的日志文件的文件名。
|
log_truncate_on_rotation
|
这个参数将导致截断(覆盖而不是追加)任何已有的同名日志文件。不过,截断只在一个新文件,由于基于时间的轮转被打开时发生,在服务器启动或基于尺寸的轮转时不会发生结合上面log_filename的设置,达到保留最近一个月日志的效果。
|
log_rotation_age
|
使用一个单个日志文件的最大时间量,之后将创立一个新的日志文件。
|
log_rotation_size
|
这个参数决定一个个体日志文件的最大尺寸。当这些数据量被发送到一个日志文件后,将创建一个新的日志文件。当创建的新日志文件与原文件重名时,在原文件中追加。
|
log_statement
|
控制哪些SQL 语句被记录。有效值是none(off)、ddl、mod和all(所有语句)。ddl记录所有所有数据定义语句,例如CREATE、ALTER和DROP语句。mod记录所有的ddl语句,外加数据修改语句,例如INSERT、UPDATE、DELETE、TRUNCATE和COPY FROM。
|
log_min_duration_statement
|
如果语句运行超过设置的时间,将记录该语句。如果指定值时没有单位,则以毫秒为单位。
|
log_line_prefix
|
每个日志行的开头输出
%t 无毫秒的时间戳
%m 带毫秒的时间戳
%u 用户名
%p 进程 ID
%l 对每个会话或进程的日志行号,从1开始
%d 数据库名
%a 应用名
%h远程主机名或IP地址
|
log_checkpoints
|
导致检查点和重启点被记录在服务器日志中。
|
log_lock_waits
|
控制当一个会话为获得一个锁等到超过deadlock_timeout时,是否要产生一个日志消息。deadlock_timeout默认1s。
|
log_autovacuum_min_duration
|
如果自动清理运行超过该值所指定的时间,被自动清理执行的每一个动作都会被日志记录。
|
log_temp_files
|
控制记录临时文件名和尺寸。临时文件可以被创建用来排序、哈希和存储临时查询结果。
|
lc_messages
|
设置消息显示的语言
|
2. 日志参数配置
数据库常用的日志参数配置如下:
logging_collector='on' #日志开启
log_destination='csvlog' #日志文件格式
log_filename='kingbase-%Y-%m-%d_%H%M%S.log' #生成的日志文件名字的格式
log_line_prefix = '%m %p %u %d' #日志内记录的内容
log_rotation_size='200MB' #单个日志文件的大小
log_statement='mod' #控制记录哪些sql语句
log_truncate_on_rotation='on' 当日志文件已存在时,如果为on,则会覆盖原来的日志
log_min_duration_statement = '0' 将记录所有SQL语句和它们的耗时
日志文件名称如下:
日志文件内容如下:
3. 参数修改生效
数据库日志参数的需要在kingbase.conf内添加并修改。参数修改后reload即可生效。
vi /../data/kingbase.conf
cd /../bin
./sys_ctl -D /…/data reload
4. 清理日志
将日志配置参数开启后,观察每天的日志增长量,按照要求设置定时任务中日志保留的时间。
下面的定时任务是每周天晚上3点清理日志,日志保留7天。
crontab-l
* 3* * * find /home/kingbase/data/sys_log-mtime +7 -name "kingbase*" -exec rm -rf {} \;