暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
Check_Greenplum.txt
186
3页
5次
2024-02-02
10墨值下载
#!/bin/bash
GPPath=/usr/local/greenplum-db/greenplum_path.sh
source $GPPath
GPHOME=/usr/local/greenplum-db-6.20.5
MASTER_DATA_DIRECTORY=/u05/data/master/gpseg-1
DATA_Dir='/u05/data'
PGPORT=5432
psql_command='psql -h IP 地址 -p 5432 -d postgres -U gpadmin -t -c '
gpssh_command='gpssh -h master standby segment1 segment2 segment3 segment4'
LANG=C
log_name=greenplum-`date +%a`.csv
log_dir='/home/gpadmin' #日志输出目录
v_day=`date +%Y%m%d` #当天日期
#日志输出目录
F_GPDB_LogDir(){
#生成日志输出目录
if [ ! -d $log_dir'/'$v_day ];then
mkdir -p $log_dir'/'$v_day
fi
# 删除 1 个月前日志
v_month_ago=`date -d " -30 day" +%Y%m%d`
if [ -d $log_dir'/'$v_month_ago ];then
rm -rf $log_dir'/'$v_month_ago
fi
}
#Help
F_GPDB_Help(){
echo '监控指定数据库连接:sh Check_Greenplum.sh status session db_name'
echo '监控数据库连接: sh Check_Greenplum.sh status session'
echo '监控 Segment 状态: sh Check_Greenplum.sh status segment'
echo '监控数据库的进程: sh Check_Greenplum.sh status server_processes'
echo '监控慢 SQLsh Check_Greenplum.sh slowsql 阀值()'
echo '监控数据库日志: sh Check_Greenplum.sh log'
echo 'sh Check_Greenplum.sh log << 需要调整函数:F_GPDB_Log [gpssh] 参数'
}
#监控数据库状态:连接数、Segment 状态、进程
F_GPDB_Status(){
Greeplum_ps=`ps -ef | grep gpseg-1 | grep 5432 | wc -l`
if [ $Greeplum_ps -gt 0 ];then
if [ "$1" = "segment" ];then
#检查 Primary Segment Mirror Segment 状态:
Pri_Mir_status=`$psql_command "select dbid||'|'||hostname||'|'||
preferred_role||'|'||status From gp_segment_configuration where status<>'u'"`
if [ ! -n "$Pri_Mir_status" ];then
echo 'Pri_Mir_Seg_status is ok'
else
echo $Pri_Mir_status
fi
elif [ "$1" = "server_processes" ];then
#server_processes
server_p=`$psql_command "select sum(numbackends) from pg_stat_database"`
echo $server_p
elif [ "$1" = 'session' ];then
#db_connections
if [ "$2" ];then
db_c=`$psql_command "select numbackends from pg_stat_database where
datname = '$2'"`
else
db_c=`$psql_command "select count(*) from pg_stat_activity"`
fi
echo $db_c
else
F_GPDB_Help
fi
else
echo 'Greeplum_status down' $Greeplum_ps
fi
}
# SQL 监控
F_GPDB_SlowSql(){
F_GPDB_LogDir #日志目录创建
v_Exe_time=$1 # SQL 阀值
Slow_dayfile=$log_dir'/'$v_day'/Slow_day.sql' #当天日志输出文件
Slow_nowfile=$log_dir'/'$v_day'/Slow_now.sql' #当时日志输出文件
awk -F',' '{print $1,$2,$3,$19}' $MASTER_DATA_DIRECTORY/pg_log/${log_name} |
grep duration | awk -v Exe_time=$v_Exe_time -F'[:ms]' '$4/1000>Exe_time {print
$0}' > $Slow_nowfile
v_len=`cat $Slow_nowfile | wc -l`
if [ $v_len -gt 0 ];then
if [ ! -f $Slow_dayfile ];then
v_day_len=0
else
v_day_len=`cat $Slow_dayfile | wc -l`
fi
if [ $v_len -eq $v_day_len ];then
echo 'Successed'
else
echo 'Error:Slow SQL:'$v_len
# SQL 日志输出至历史文件
cat $Slow_nowfile > $Slow_dayfile
#当时慢 SQL 日志清空
> $Slow_nowfile
fi
else
echo 'Successed'
fi
}
#日志监控
F_GPDB_Log(){
F_GPDB_LogDir #日志目录创建
Error_nowfile=$log_dir'/'$v_day'/Error_now.log'
Error_dayfile=$log_dir'/'$v_day'/Error_day.log'
$gpssh_command -e 'source '${GPPath}' ;gplogfilter -t '$
{DATA_Dir}'/*/gpseg*/pg_log/'${log_name}'' | grep 'FATAL\|ERROR\|FATAL' >
$Error_nowfile
v_len=`cat $Error_nowfile | wc -l`
if [ $v_len -gt 0 ];then
of 3
10墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文档被以下合辑收录

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜