gp日志清理
更新时间: 2024-12-19 16:28:33
阅读 74
背景:
gp在使用时间逐渐变长的过程中,日志会不断变大,所以需要定期清理,不然会有磁盘打满的风险
清理脚本:
#!/bin/bash -x
# MPP 清理日志脚本,放在MPP 用户(gpadmin)的crontab中调用,可以配置每周或者每天执行一次
set -e
# specify GP admin user.
GPUSER=$1
if [ -z $GPUSER ]; then
GPUSER=$USER
fi
# 日志最大保留时间
export LOG_RETENTION_DURATION=3
GPHOME=/home/$GPUSER/greenplum-db
source $GPHOME/greenplum_path.sh
callAll(){
host=`echo $1| sed -e 's/^[ ]*//g' | sed -e 's/[ ]*$//g'`
echo host=$host
directory=`echo $2|sed -e 's/^[ ]*//g' | sed -e 's/[ ]*$//g'`
echo directory=$directory
cmd="find $directory/pg_log -mtime +$LOG_RETENTION_DURATION -name 'gpdb-*.csv' -type f -delete -print"
echo cmd=$cmd
gpssh -h $1 -e -v $cmd
}
export -f callAll
psql -t -c "select hostname, fselocation from gp_segment_configuration a, pg_filespace_entry b where a.dbid = b.fsedbid " template1 |head -n -1 | awk -F '|' '{printf "%s %s\n",$1,$2}'|xargs -I{} bash -c "callAll {}"
将上面的内容复制到log_cleaner.sh脚本中,按照部署情况修改脚本前面的几个关键变量值后,保存增加执行权限
使用crontab -e定期调度该脚本,推荐调度频率是一天一次,调度时间为业务低峰期
文档反馈
以上内容对您是否有帮助?