首页 > 其他 > 详细

Greenplum 日志管理

时间:2021-04-29 22:44:28      阅读:47      评论:0      收藏:0      [点我收藏+]

Greenplum 日志管理

日志路径

  • $GPADMIN_HOME 是操作系统用户gpadmin的家目录路径。
  • $MASTER_DATA_DIRECTORY是Greenplum数据库master主机的数据目录。
  • $GPDATA_DIR是Greenplum数据库segment主机的数据目录。
  • host表示segment主机的主机名。
  • segprefix是segment前缀。
  • N是segment实例数量。
  • date是YYYYMMDD格式的日期。

    技术分享图片

日志参数

Greenplum的日志参数基本沿用了postgres的日志参数,主要包括以下三个部分:

  • 何处写日志
    • log_destination

      日志位置可以输出到stderr, csvlog, syslog

    • logging_collector

      使用日志收集器,其是一个收集发送到stderr日志的后台进程,收集日志后该进程会将日志重定向到日志文件

    • log_directory

      日志路径,需要logging_collector开启

    • log_filename

      日志名字/模式,需要logging_collector开启,采用strftime模式设置

      技术分享图片

    • log_file_mode

      日志文件权限,需要logging_collector开启,采用八进制,默认0600,代表服务拥有者拥有读写权限,

    • log_rotation_age

      日志切换间隔,需要logging_collector开启,确认单个日志文件的时间长度,单位分钟,默认是24小时

    • log_rotation_size

      日志切换大小,需要logging_collector开启,确认单个日志文件的最大大小,单位kb,默认10M

    • log_truncate_on_rotation

      使能同名日志的truncate/overwrite, 需要logging_collector开启,注意:truncate只会基于时间的日志切换,由文件大小或者数据库重启导致的日志切换不会触发日志truncate

      设置七日日志轮转:log_filename: server_log.%a

      log_rotation_age:1440

      log_truncate_on_rotation: on

  • 何时写日志
    • log_min_messages 

      控制写入日志等级,有效值有 

      DEBUG5DEBUG4DEBUG3DEBUG2DEBUG1INFONOTICEWARNINGERRORLOGFATAL, and PANIC,默认值为warning,注意其和客户端等级client_min_messages略有区别

    • log_min_error_statement

      控制触发服务器日志记录的sql statement,等级和log_min_message相同,但是默认值为ERROR,即当sql statement造成了error或以上级别的错误后,该sql将被记录

    • log_min_duration_statement

      当一条statement持续时间超过该参数后,此条statement将被记录,可用于控制慢查询日志的记录,默认单位微秒

    • log_min_duration_sample

      和log_min_duration_statement差不多,但是一个采样子集,主要用在traffic过高的情况下

    • log_statement_sample_rate

      顾名思义,采样率,范围0-1,默认为1

    • log_transaction_sample_rate

      以事务为视角的采样率,它对于事务采样帮助比较大

      技术分享图片

  • 记录什么日志
    • application_name

      连接数据库的应用名

    • debug_print_parse
    • debug_print_rewritten
    • debug_print_plan

      使能不同的调试输入,parse输出解析树,重写输出以及执行计划,这些消息位于LOG层

    • debug_pretty_print

      故名思意,增加缩进,打印的更好看

    • log_checkpoints

      记录checkpoint点,同时包含写入的缓冲数据以及写入时间等

    • log_connections

      记录每一次对服务器的尝试连接

    • log_disconnections

      记录连接断开时间和持续时间

    • log_duration

      记录每一个完成的statement的持续时间

    • log_error_verbosity

      日志的详细等级,VERBOSE甚至会打印源代码文件名,函数名和行号

    • log_hostname

      记录客户端主机的主机名

    • log_line_prefix

      日志行前缀

      技术分享图片

    • log_lock_waits

      当一个session等待超过deadlock-time后,将会产生一条锁等待日志,这个参数对于诊断锁等待造成的性能问题很有用

    • log_parameter_max_length

      确定非错误statement的绑定参数的可打印长度

    • log_parameter_max_length_on_error

      确定错误statement的绑定参数的可打印长度

    • log_statement

      控制记录哪种类型的SQL,ddl记录所有数据定义语句,mod记录所有ddl+dml

    • log_replication_commands

      记录每一个replication命令

    • log_temp_files

      记录临时文件名和尺寸,只记录大小大于该参数的临时文件

    • log_timezone

      设置服务器日志记录的时区

日志视图

gp_toolkit是greenplum的一个管理schema,我们可以使用其中的几个视图查看数据库日志,gp_toolkit不在默认的搜索路径中,需要手动添加。

  • gp_log_command_timings

    该视图使用外部表读取master主机上的日志文件以报告sql命令的执行时间,该视图需要超级用户权限,有一点不方便的是,它不能查看具体是哪一条sql语句。

    技术分享图片

  • gp_log_database

    该视图使用外部表读取主机日志(master,segments,mirrors)并列出和当前数据库相关的日志条目,该视图需要超级用户权限,需要查询segment日志可以使用该视图

    技术分享图片

  • gp_log_master_concise

该视图是master日志文件的子集,信息比较简明:

技术分享图片

  • gp_log_system

    该视图是最全面的一个日志视图,包括整个系统的所有日志条目,日志条目通过session id和logsession的组合主键进行唯一区分,列和gp_log_database差不多,区别是gp_log_database显示当前连接库的日志,而gp_log_system显示所有库的日志信息

日志清理

默认情况下pg_clog文件夹下日志会逐渐增加,日志参数log_truncate_on_rotation

只适用于基于时间的日志切换,在没有日志归档的情况,如果在基于时间切换日志模式下,某时间段内日志膨胀,则可能导致磁盘耗尽,因此需要使用日志归档或者启用linux定时任务。

  • 设置log_rotation_age=1d,log_rotation_size=100M(大小可根据磁盘百分比适配)
  • 不启用log_truncate_on_rotation,而设置root用户的crontab配置文件:

echo ‘* * * * * /root/gp_log_clean.sh‘ >> /var/spool/cron/root 开启定时清理任务

gp_log_clean.sh:

 

#!/bin/sh

logDir=/data/master/gpseg-1/pg_log

declare -i fileNumber=$(ls ${logDir}/*csv | wc -l)

echo "fileNumber = $fileNumber"

if [ ${fileNumber} -gt 7 ]; then

echo "now do log clean"

echo $(ls -t ${logDir}/*csv | tail -n 1)

rm -f $(ls -t ${logDir}/*csv | tail -n 1)

fi

Greenplum 日志管理

原文:https://www.cnblogs.com/flash-flash/p/14719072.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!