千家信息网

单个脚本如何监控主机上所有实例的表空间利用率

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章给大家分享的是有关单个脚本如何监控主机上所有实例的表空间利用率的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。借助一个文件,存放ps -ef | grep pmon的
千家信息网最后更新 2026年11月01日单个脚本如何监控主机上所有实例的表空间利用率

这篇文章给大家分享的是有关单个脚本如何监控主机上所有实例的表空间利用率的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

借助一个文件,存放ps -ef | grep pmon的输出

[test]:/orasw/dba>more /orasw/dba/scripts/ db_running.log

oracle 8922 1 0 Dec 17 ? 10:48 ora_pmon_spw2005p

oracle 13535 1 0 Dec 17 ? 10:00 ora_pmon_mstrmd1p

oracle 28599 1 0 Dec 19 ? 10:39 ora_pmon_tsr2008p

oracle 7561 1 0 Dec 17 ? 11:57 ora_pmon_asa2p

oracle 6756 1 0 Dec 17 ? 11:53 ora_pmon_tsr2009p

oracle 12041 1 0 Dec 17 ? 11:01 ora_pmon_spw06p

oracle 6737 1 0 Dec 17 ? 10:57 ora_pmon_spw2003p

oracle 16046 1 0 Dec 17 ? 12:32 ora_pmon_crs2007t

oracle 5002 1 0 Dec 19 ? 10:04 ora_pmon_smart3p

shell脚本

1 遍历该文件,将sid取出

2 遍历sid 列表,分别执行检查表空间sql脚本,并将结果发送给相关人员

#!/bin/ksh

db_name=`cat /orasw/dba/scripts/ db_running.log|awk 'BEGIN { FS = "_" } ; { print $3 }'|sed '/^$/d'`

echo $db_name

for k in $db_name

do

h=`ps -ef | grep pmon | grep -c $k`

echo $k

ORACLE_SID=$k; export ORACLE_SID

ORAENV_ASK=NO

. oraenv

#. oraenv

export ORACLE_HOME

# Set threshhold limit for tablespace to send alert

#

export threshold=70

export script_dir=/orasw/dba/scripts/

rm -rf $script_dir/${k}_ts.rpt

rm -rf $script_dir/${k}_chk_ts.out

cut_of_pt=$threshold

tmp_file=$script_dir/${k}_chk_ts.out

ts_stat_rpt=$script_dir/${k}_ts.rpt

sqlplus -s '/ as sysdba' @$script_dir/chk_ts.sql >> $ts_stat_rpt <<-EOF

exit

EOF

echo "TABLESPACE_NAME PCT_USED(%)" > $tmp_file

echo "-----------------------------" >> $tmp_file

cat $ts_stat_rpt | awk '{

if (int($2) > int("'$cut_of_pt'"))

print $0

}' >> $tmp_file

echo "----------------------------------" >> $ts_stat_rpt

if test -s $tmp_file

then

subject="Below TableSpaces crossed threshold limits of $cut_of_pt in $k. Please take immediate action."

echo $subject

mailx -s "$subject" ***@***.com < $tmp_file

fi

done

相应sql脚本

bash-3.2$ more chk_ts.sql

set lines 120

set pages 100

set echo off

set feedback off

set head off

col PCT_USED format a10

col tablespace_name format a20

(select t.tablespace_name tablespace_name,TO_CHAR((1 - DECODE(tsf.bytes, NULL, tsa.bytes, tsf.bytes) / tsa.bytes) * 100, '990') PCT_USED

from sys.dba_tablespaces t, sys.sm$ts_avail tsa, sys.sm$ts_free tsf

where t.tablespace_name = tsa.tablespace_name and t.tablespace_name = tsf.tablespace_name (+)

)

union

(SELECT D.TABLESPACE_NAME TABLESPACE_NAME, TO_CHAR(DECODE(A.SUM_ALLOCATE, NULL, 0, NVL(T.SUM_USED, 0) / A.SUM_ALLOCATE * 100), '990') PCT_USED

FROM DBA_TABLESPACES D,

(SELECT TABLESPACE_NAME, SUM(BYTES) SUM_ALLOCATE FROM DBA_TEMP_FILES GROUP BY TABLESPACE_NAME) A,

(SELECT TABLESPACE_NAME, SUM(BYTES_CACHED) SUM_USED FROM V$TEMP_EXTENT_POOL GROUP BY TABLESPACE_NAME) T

WHERE D.TABLESPACE_NAME = A.TABLESPACE_NAME(+)

AND D.TABLESPACE_NAME = T.TABLESPACE_NAME(+)

AND D.EXTENT_MANAGEMENT = 'LOCAL' AND D.CONTENTS = 'TEMPORARY'

)

/

感谢各位的阅读!关于"单个脚本如何监控主机上所有实例的表空间利用率"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

脚本 空间 主机 利用率 单个 实例 监控 内容 文件 更多 篇文章 不错 实用 人员 文章 看吧 知识 结果 并将 参考 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 科技互联网 山东特亿宝互联网科技有限公司 互联网通讯科技 互联网公司 科技公司 互联网金融 科技金融 互联网科技论文 互联网科技网站 中国最先进互联网科技公司 海南科技产业互联网平台 现代科技和互联网有关系吗 广州优美互联网科技 欧洲十大科技互联网公司 注册互联网科技公司经营范围大全 速维有品互联网信息科技(苏州)有限公司 深圳市优智互联网科技有限公司 互联网在线教育科技创业 黑云互联网科技有限公司 半导体是互联网高科技吗 互联网科技自媒体灵感 知域互联网科技有限公司官网 互联网科技公司华为 互联网络科技有限公司 广州宏创互联网科技 亿策互联网科技 哈尔滨屹滨互联网科技有限公司 杭州披云加互联网科技有限公司 西安有哪些互联网高科技企业 北京品多多互联网科技有限公司 互联网领先科技成果宣传视频 平安好医生打造互联网科技医疗
0