#!/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 '监控慢 SQL: sh 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
文档被以下合辑收录
评论