在数据主机上建立tbs_usage表反映数据中数据文件的使用量,其中tbs_timeid为该表主键,作为唯一标识当日数据库表空间的id构造tbs

由于最近业务量大增大,,导致表空间增长速度变得很快,客户也开始担忧表空间的增长率。因此也提出了每日监控表空间增长量的需求。笔者根据客户的需求,在这里写了个简单的脚本,主体思想是通过,将每日查询到的表空间增长率插入到自己建的表中,然后通过构造查询语句,反映出表空间的增长率,具体实施不走如下

在数据主机上建立tbs_usage表反映数据中数据文件的使用量,其中tbs_timeid为该表主键,作为唯一标识当日数据库表空间的id构造tbs_timeid为df.tablespace_name||"-"||(sysdate)

1、pansky用户作为日常管理,目前主要用户表空间数据量的监控

SQL> create user pansky identified by pansky default tablespace users quota 50M on users;

User created.

SQL> grant create session to pansky;

Grant succeeded.

SQL> grant create table to pansky;

Grant succeeded.

SQL> grant select on dba_data_files to pansky;

Grant succeeded.

SQL> grant select on dba_free_space to pansky;

Grant succeeded.

2、以pansky用户创建tbs_usage表

create table tbs_usage

as

SELECT df.tablespace_name||"-"||(sysdate) tbs_timeid ,df.tablespace_name||"-"||(sysdate-1) ys_tbs_timeid,df.tablespace_name,

COUNT(*) datafile_count,

ROUND(SUM(df.BYTES) / 1048576) size_mb,

ROUND(SUM(free.BYTES) / 1048576, 2) free_mb,

ROUND(SUM(df.BYTES) / 1048576 - SUM(free.BYTES) / 1048576, 2) used_mb,

ROUND(MAX(free.maxbytes) / 1048576, 2) maxfree,

100 - ROUND(100.0 * SUM(free.BYTES) / SUM(df.BYTES), 2) pct_used,

ROUND(100.0 * SUM(free.BYTES) / SUM(df.BYTES), 2) pct_free,(sysdate) time

FROM dba_data_files df,

(SELECT tablespace_name,

file_id,

SUM(BYTES) BYTES,

MAX(BYTES) maxbytes

FROM dba_free_space

GROUP BY tablespace_name, file_id) free

WHERE df.tablespace_name = free.tablespace_name(+)

AND df.file_id = free.file_id(+)

GROUP BY df.tablespace_name

ORDER BY 8;

3、创建主键约束

alter table tbs_usage add constraint tbs_usage_pk_tbs_timeid primary key(tbs_timeid);

4、在crontab中运行每日7点30分更新数据库表空间信息的脚本update_tbs_info.sh

30 07 * * * /Oracle10g/update_tbs_info.sh

其中 update_tbs_info.sh脚本内容如下

#!/bin/ksh

#FileName: update_tbs_info.sh

#CreateDate:2011-10-09

#Discription:take the basic information to insert into the table tbs_usage

PATH=/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/oracle/bin:/home/ oracle/bin:/oracle10g/app/oracle/product/10.2.0/db_1/bin;export PATH

ORACLE_SID=zgscdb1;export ORACLE_SID

ORACLE_BASE=/oracle10g/app/oracle;export ORACLE_BASE

ORACLE_HOME=/oracle10g/app/oracle/product/10.2.0/db_1;export ORACLE_HOME

PATH=$ORACLE_HOME/bin:$PATH;export PATH

date >> /oracle10g/log/update_tbs_info.log

sqlplus pansky/pansky <> /oracle10g/log/update_tbs_info.log 2>&1

insert into pansky.tbs_usage

SELECT df.tablespace_name||"-"||(sysdate) tb_timeid,df.tablespace_name||"-"||(sysdate-1) y s_tb_timeid,df.tablespace_name,

COUNT(*) datafile_count,

ROUND(SUM(df.BYTES) / 1048576) size_mb,

ROUND(SUM(free.BYTES) / 1048576, 2) free_mb,

ROUND(SUM(df.BYTES) / 1048576 - SUM(free.BYTES) / 1048576, 2) used_mb,

ROUND(MAX(free.maxbytes) / 1048576, 2) maxfree,

100 - ROUND(100.0 * SUM(free.BYTES) / SUM(df.BYTES), 2) pct_used,

ROUND(100.0 * SUM(free.BYTES) / SUM(df.BYTES), 2) pct_free,sysdate time

FROM dba_data_files df,

(SELECT tablespace_name,

file_id,

SUM(BYTES) BYTES,

MAX(BYTES) maxbytes

FROM dba_free_space

GROUP BY tablespace_name, file_id) free

WHERE df.tablespace_name = free.tablespace_name(+)

AND df.file_id = free.file_id(+)

GROUP BY df.tablespace_name

ORDER BY 8;

commit;

EOF

echo >> /oracle10g/log/update_tbs_info.log

4、查询数据库表空间使用情况的SQL,下例可查询出2011-10-08的表空间使用情况以及相较于2011-10-09日的表空间增长量(MB),并根据pct_used降序排列。

Set linesize 150

Col tablespace_name for a22

select a.tablespace_name,a.datafile_count,a.size_mb,a.free_mb,a.used_mb,a.maxfree,a.pct_used,a.pct_free,to_char(a.time,"yyyy-mm-dd hh24:mi") time,(a.USED_MB-b.USED_MB) increase_mb from pansky.tbs_usage a,pansky.tbs_usage b

where a.YS_TBs_TIMEid= b.TBs_TIMEid

and a.time>=to_date("2011-11-02","yyyy-mm-dd") and a.time< to_date("2011-11-03","yyyy-mm-dd") order by pct_used desc;

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

php自动计算增长率,Oracle表空间增长率监控脚本相关推荐

  1. zabbix自动发现oracle表空间并监控其使用率

    监控需求 Oracle表空间使用率实时监控,当表空间使用率达到95%时触发告警机制.Oracle表空间分为系统默认表空间和用户创建的表空间,而表空间又有自动扩展和非自动扩展两种类型,用户(DBA)在创 ...

  2. Zabbix监控系统系列之十五:自动发现Oracle表空间并监控

    ======= 系列目录 ======= Zabbix监控系统系列之一 : Server部署 Zabbix监控系统系列之二 : 初始化配置 Zabbix监控系统系列之三 :版本升级 Zabbix监控系 ...

  3. oracle表空间 unifor,Oracle 表空间的监控

    现在所有业务系统上面都部署了各种类型针对各方面的监控,那么咱们Oracle也不例外,也需要做关于oracle方面的监控,比如实例的存活状况,监听器的存活状况,系统的运行情况(包括,磁盘使用率,进程数, ...

  4. 唐老师 oracle,ORACLE数据库表空间的监控和维护_快速发表职称论文网

    ORACLE数据库表空间的监控和维护 摘 要:通过ORACLE数据库内部管理表和视图加强数据库系统数据表空间的监控和维护. 关键字:数据库表空间监控 ORACLE数据库在系统性能,安全性以及可靠性方面 ...

  5. Zabbix 3.2.6 通过Discovery批量监控Oracle表空间

    一.背景 接到任务,要求对所有数据库的所有表空间进行监控,愿意是遇到表空间不足导致业务数据库的不可用,我们知道通过Zabbix监控Oracle的插件有一些,比如Orabbix或者Pyora,前者通过J ...

  6. python创建数据库表空间_7.自动化监控多个Oracle表空间

    自动化监控多个Oracle表空间 上节讲了如何利用Python自动监控Oracle表空间使用率 这节会利用一个循环一次性查询多个表空间使用率 环境设置 Linux系统为 Centos 6.8 Pyth ...

  7. zabbix mysql 表空间_Zabbix监控达梦数据库表空间

    技术实现思路 利用Zabbix监控工具的定制功能.借鉴Zabbix对Oracle的监控原理,实现达梦数据库表空间监控.通过自动发现脚本发现达梦数据库表空间,然后再制定额外的属于达梦表空间的监控项,配置 ...

  8. oracle系统表空间不足,oracle表空间不足相关问题解决办法

    oracle 临时表空间和数据表空间 Oracle临时表空间主要用来做查询和存放一些缓冲区数据.临时表空间消耗的主要原因是需要对查询的中间结果进行排序.重启数据库可以释放临时表空间,如果不能重启实例, ...

  9. Oracle 表空间扩容

    2019独角兽企业重金招聘Python工程师标准>>> 1.查询当前表空间使用情况 col FILE_NAME format a50; col SPACE_NAME format a ...

  10. oracle 创建空文件系统,六分钟学会创建Oracle表空间的实现步骤

    经过长时间学习创建Oracle表空间,于是和大家分享一下,看完本文你肯定有不少收获,希望本文能教会你更多东西. 1.先查询空闲空间 select tablespace_name,file_id,blo ...

最新文章

  1. perl+cgi学习
  2. Excel 向程序发送命令时出现问题 解决方法 VS
  3. Linux centos openshift安装教程整理
  4. pollard_rho大数分解Java版
  5. MySQL基础入门学习【7】查询表达式解析 SELECT
  6. vue vue的table表格自适应_vue table autoHeight(vue 表格自动高度)
  7. 476. 数字的补数
  8. Java笔记-CXF增加拦截器与自定义拦截器
  9. 人工智障学习笔记——机器学习(8)K均值聚类
  10. 大龄打工者的出路在哪里
  11. PHP手机获取6为不反复验证码
  12. Facebook F8|闲鱼高级技术专家参会分享
  13. 抽象代数 Abstract Algebra 学习笔记
  14. 景区旅游信息管理系统数据结构源代码_成果共享 为综合利用提供支撑——旅游资源普查试点系列报道之四...
  15. 网络战争全面打响!究竟谁能更胜一筹?
  16. 微信公众号平台如何批量给粉丝自动打标签分组
  17. 一个表情包引发的悬案!
  18. ubuntu使用exiftool查看图片exif信息
  19. Allegro任意形状铜皮倒圆角
  20. 【视频教程免费领取】聚焦Python分布式爬虫必学框架Scrapy 打造搜索引擎

热门文章

  1. Unity 生命周期
  2. lua工具库penlight--06数据(二)
  3. pp影视播放器官方版
  4. apk文件以及打包流程
  5. html文本框自动宽度,input文本框宽度自适应
  6. java地图开发视频教程_java开发地图教程
  7. php导出excel列宽,PHP导出Excel 之 Spreadsheet_Excel_Writer
  8. android 系统重新安装程序,安卓手机系统怎么重装
  9. 微信小程序音乐播放器实践
  10. 最新仿720全景云系统/可生成小程序+带PC端和教程