为了账号安全,请及时绑定邮箱和手机立即绑定

Oracle脚本(一)

标签:
Oracle


  公司的库里面不是所有的表空间都是unlimted,所以还是要搞个邮件发送,时不时监控一下表空间的使用率。以下是我参考一些文档,修改后在我工作中使用的。我的数据库版本是11.2.0.4,Linux版本是Centos 6.3。

#!/bin/bash  

ORACLE_SID=orcl; export ORACLE_SID  

ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE  

ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1; export ORACLE_HOME  

$ORACLE_HOME/bin:/usr/ccs/bin:/bin:/usr/bin:/usr/sbin:/sbin:/usr/openwin/bin:/opt/bin:.;  

export PATH  

DBALIST="masicong1019@hotmail.com";export DBALIST  

sqlplus -s '/ as sysdba' <<EOF  

set feed off  

set linesize 100  

set pagesize 200  

column "USED (MB)" format a10  

column "FREE (MB)" format a10  

column "TOTAL (MB)" format a10  

column PER_FREE format a10  

spool tablespace.alert  

SELECT F.TABLESPACE_NAME,  

TO_CHAR ((T.TOTAL_SPACE - F.FREE_SPACE),'999,999') "USED (MB)",  

TO_CHAR (F.FREE_SPACE, '999,999') "FREE (MB)",  

TO_CHAR (T.TOTAL_SPACE, '999,999') "TOTAL (MB)",  

TO_CHAR ((ROUND ((F.FREE_SPACE/T.TOTAL_SPACE)*100)),'999')||' %' PER_FREE  

FROM (  

SELECT TABLESPACE_NAME,  

ROUND (SUM (BLOCKS*(SELECT VALUE/1024  

FROM V$PARAMETER  

WHERE NAME = 'db_block_size')/1024)  

) FREE_SPACE  

FROM DBA_FREE_SPACE  

GROUP BY TABLESPACE_NAME  

) F,  

(  

SELECT TABLESPACE_NAME,  

ROUND (SUM (BYTES/1048576)) TOTAL_SPACE  

FROM DBA_DATA_FILES  

GROUP BY TABLESPACE_NAME  

) T  

WHERE F.TABLESPACE_NAME = T.TABLESPACE_NAME  

AND (ROUND ((F.FREE_SPACE/T.TOTAL_SPACE)*100)) < 80;  

spool off  

exit  

EOF  

if [cat tablespace.alert|wc -l -gt 0]  

then  

cat tablespace.alert > tablespace.tmp  

mailx -s "TABLESPACE  ALERT  for  PPRD10" $DBALIST < tablespace.tmp  

fi  

 

©著作权归作者所有:来自51CTO博客作者waldens的原创作品,如需转载,请注明出处,否则将追究法律责任

Oracle监控Oracle监控脚本Script


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消