1818IP-服务器技术教程,云服务器评测推荐,服务器系统排错处理,环境搭建,攻击防护等

当前位置:首页 - 数据库 - 正文

君子好学,自强不息!

Oracle表空间监控

核心数据库10.100.0.20和21表空间已经修改完成,可以正常监控使用率和大小,并邮件告警通知。

修改Oracle数据库表空间监控

创建表空间信息收集脚本:

vim/home/oracle/scripts/check_tablespace.sh

脚本内容如下:

#!/bin/bash
#tablespaceusagepcheck
source~/.bash_profile
functioncheck{
sqlplus-S"/assysdba"<<EOF
setnumwidth20
setlinesize200
setpagesize200
spool/tmp/ora_tablespace.txt
selectaa.tablespace_name,
round(bb.maxs,2)"MAX(G)",
round(aa.usd,2)"USED(G)",
round((bb.maxs-aa.usd),2)"FREE(G)",
round(aa.usd/bb.maxs*100,2)"USED%"
from(Selectb.Tablespace_Name,(b.Bytes-Nvl(a.Bytes,0))"USD"
From(selecttablespace_name,sum(bytes)bytes
fromDba_Free_Space
groupbytablespace_name)a,
(selecttablespace_name,sum(bytes)bytes
fromDba_Data_Files
groupbytablespace_name)b
Whereb.tablespace_name=a.tablespace_name(+)
--andb.tablespace_name='MAXIMO_DATA'
)aa,
(selecttablespace_name,
sum(case
whenmaxbytes=0then
user_bytes
else
maxbytes
end)"MAXS"
fromdba_data_files
--wheretablespace_name='MAXIMO_DATA'
groupbytablespace_name
orderbytablespace_name)bb
whereaa.tablespace_name=bb.tablespace_nameandaa.tablespace_namenotlike'%UNDO%'
orderby5desc,1;
spooloff
setlinesize100
setpagesize100
spool/tmp/ora_autex.txt
selecttablespace_name,autoextensiblefromdba_data_files;
spooloff
quit
EOF
};check&>/dev/null

赋予执行权限

chmod+x/home/oracle/scripts/check_tablespace.sh

配置计划任务(oracle用户)

*/5****/home/oracle/scripts/check_tablespace.sh

手动执行脚本并查看结果

表空间脚本执行结果

自动发现脚本内容如下:

#catdiscovery_oracle_tablespace.sh
#!/bin/bash
#zabbixdiscoveryoracletablespace
table_spaces=(`cat/tmp/ora_tablespace.txt|sed-e"1,3d"-e"/^$/d"-e"/selected/d"|awk'{print$1}'`)
length=${#table_spaces[@]}

printf"{\n"
printf'\t'"\"data\":["
for((i=0;i<$length;i++))
do
printf"\n\t\t{"
printf"\"{#TABLESPACE_NAME}\":\"${table_spaces[$i]}\"}"
if[$i-lt$[$length-1]];then
printf","
fi
done
printf"\n\t]\n"
printf"}\n"


执行结果
#./discovery_oracle_tablespace.sh
{
"data":[
{"{#TABLESPACE_NAME}":"EMA"},
{"{#TABLESPACE_NAME}":"SYSAUX"},
{"{#TABLESPACE_NAME}":"MHWEB"},
{"{#TABLESPACE_NAME}":"SYSTEM"},
{"{#TABLESPACE_NAME}":"OGG"},
{"{#TABLESPACE_NAME}":"USERS"},
{"{#TABLESPACE_NAME}":"QDPTTBS"},
{"{#TABLESPACE_NAME}":"UYUN"},
{"{#TABLESPACE_NAME}":"LINKSCAPEH5DB"},
{"{#TABLESPACE_NAME}":"WX_HUANGHE_TBS"}
]
}

监控项脚本内容如下:

#cattablespace_check.sh
#!/bin/bash
#oracletablespacecheck
CEHCK_TYPE=$1
TABLESPACE_NAME=$2

functionusagepre{
grep"\b$TABLESPACE_NAME\b"/tmp/ora_tablespace.txt|awk'{printf"%.f\n",$5}'
#grep"\b$TABLESPACE_NAME\b"/tmp/ora_tablespace.txt|awk'{printf"%.f\n",$3/$2*100}'
}

functionavailable{
grep"\b$TABLESPACE_NAME\b"/tmp/ora_tablespace.txt|awk'{printf$4}'
#grep"\b$TABLESPACE_NAME\b"/tmp/ora_tablespace.txt|awk'{printf($2-$3)*1024*1024}'
}

functioncheck{
ifgrep"\b$TABLESPACE_NAME\b"/tmp/ora_autex.txt|awk'{print$2}'|uniq|grep"YES"&>/dev/null;then
echo1
else
echo0
fi
}

case$CEHCK_TYPEin
pre)
usagepre;;
fre)
available;;
check)
check;;
*)
echo-e"Usage:$0[pre|fre|check][TABLESPACE_NAME]"
esac

Agent参数配置:

#cat/etc/zabbix/zabbix_agentd.d/oracle_tablespace.conf
UserParameter=discovery.oracle.tablespace,/etc/zabbix/scripts/discovery_oracle_tablespace.sh
UserParameter=tablespace.check[*],/etc/zabbix/scripts/tablespace_check.sh$1$2

重启zabbix-agent

主机添加模板

添加自动发现模板

等待一会后查看监控结果:

表空间监控的数据

监控指标图形展示:

这个的告警我就不去模拟了,因为都是生产环境的,下图为4月份的TEMP表空间告警邮件截图:

邮件通知表空间告警

本文来源:1818IP

本文地址:https://www.1818ip.com/post/11199.html

免责声明:本文由用户上传,如有侵权请联系删除!

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。