时间:2021-05-02
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表空间告警邮件截图:
邮件通知表空间告警
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
一、概述zabbix是一款非常强大,同时也是应用最为广泛的开源监控软件,本文将给大家介绍如何利用zabbix+python监控oracle数据库。二、环境介绍以
正在看的ORACLE教程是:Oracle动态交叉表生成。Oracle是应用最广的大型数据库,而在范式下进行Oracle数据库设计则可以大大减少数据冗余,使数据库
第一步,打开Navicat。第二步,右击oracle数据库,然后点击“打开连接”。相关推荐:《Navicatformysql使用图文教程》第三步,点击“其它”,
正在看的ORACLE教程是:Oracle数据库快照的使用。oracle数据库的快照是一个表,它包含有对一个本地或远程数据库上一个或多个表或视图的查询的结果。正因
oracle的逻辑结构包括表空间(tablespace),段(segment),区(extent),数据块(datablock)oracle数据库在逻辑上是由多