`
jayyanzhang2010
  • 浏览: 373171 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Oracle监视表空间,并自动增加数据文件脚本

 
阅读更多
Sql代码  收藏代码
  1. --- 创建view  
  2.   
  3. --- 百分比  
  4.   
  5. create view tablespace_used_percent as  
  6. select useage from  
  7. (  
  8. select  
  9. a.tablespace_name,  
  10. a.file_name,  
  11. a.total "Total(MB)",  
  12. round(a.total-b.Free_Space) "Used(MB)",  
  13. round(((a.total-b.Free_Space)/a.total)*100,2) as useage,  
  14. a.auto_extend  
  15. from  
  16. (select  
  17. FILE_ID,  
  18. tablespace_name,  
  19. file_name,  
  20. bytes/(1024*1024) Total,  
  21. AUTOEXTENSIBLE auto_extend  
  22. from  
  23. dba_data_files ddf) a,  
  24. (select  
  25. file_id,  
  26. sum(bytes)/(1024*1024) Free_Space  
  27. from  
  28. dba_free_space  
  29. group by file_id) b  
  30. where  
  31. a.file_id=b.file_id  
  32. )  
  33. where tablespace_name = 'YOUR TABLESPACE NAME';  
  34.   
  35.   
  36. --- deails   
  37. create view TABLESPACE_USAGE as  
  38. select  
  39. a.tablespace_name,  
  40. a.file_name,  
  41. a.total "Total(MB)",  
  42. round(a.total-b.Free_Space) "Used(MB)",  
  43. round(((a.total-b.Free_Space)/a.total)*100,2) "Used(%)",  
  44. a.auto_extend  
  45. from  
  46. (select  
  47. FILE_ID,  
  48. tablespace_name,  
  49. file_name,  
  50. bytes/(1024*1024) Total,  
  51. AUTOEXTENSIBLE auto_extend  
  52. from  
  53. dba_data_files ddf) a,  
  54. (select  
  55. file_id,  
  56. sum(bytes)/(1024*1024) Free_Space  
  57. from  
  58. dba_free_space  
  59. group by file_id) b  
  60. where  
  61. a.file_id=b.file_id;  




Linux 脚本 

Java代码  收藏代码
  1. #####################################################################  
  2. ## checkTabsp.sh ##  
  3. ## This Script will add the new datafile if  Tablespace's data  
  4. ## file, which is greater than  the 80% of one datafiles size  
  5. #####################################################################  
  6. #!/bin/bash  
  7. usedPercentNO=(`sqlplus -s '/as sysdba' <<\EOF   
  8. SET heading OFF;   
  9. SET verify OFF;  
  10. SELECT * FROM tablespace_used_percent;  
  11. EOF`  
  12. )  
  13. #get  the length of array  
  14. len=${#usedPercentNO[*]}  
  15.   
  16. echo "The array has $len members."  
  17.   
  18. i=0  
  19.   
  20.  while [ $i -lt $len ]; do  
  21.       echo "$i: ${usedPercentNO[$i]}"  
  22.       arrNo=`echo "${usedPercentNO[$i]}" | awk -F. '{print $1}'`  
  23.       if [ -z $arrNo ]  
  24.       then  
  25.         arrNo=1  
  26.       fi  
  27. if usedPercentNo >= 80 then we add new data file,which will have 8G size   
  28.       if [ $arrNo -gt 80 ]  
  29.       then  
  30.         let sigNo=$i+1  
  31.      sqlplus -s "/ as sysdba" <<EOF  
  32.         ALTER TABLESPACE DB_TABLESPACE ADD DATAFILE '/opt/oracle/oradata/DB/DB_DATA$sigNo.dbf' SIZE 2G  AUTOEXTEND ON MAXSIZE 8G;  
  33. EOF  
  34. # we need send email to report the tablespace stats info  
  35.       sqlplus -s "/as sysdba" <<\EOF   
  36.         col tablespace_name for a30  
  37.         col file_name for a60  
  38.         col auto_extend for a12  
  39.         col tablespace_name justify center  
  40.         col file_name justify center  
  41.         col autoextend justify right  
  42.         set linesize 200  
  43.         set pagesize 500  
  44.         SPOOL tablespace.alert    
  45.         SELECT * FROM TABLESPACE_USAGE;  
  46.         SPOOL OFF;  
  47.         EXIT  
  48. EOF  
  49.       fi  
  50.   let i++  
  51. done  
  52.   
  53. #we needn't send email from there the crontab will do  
  54.   
  55.   if [ `cat tablespace.alert|wc -l` -gt 0 ]  
  56.   then  
  57.     cat tablespace.alert >tablespace.tmp  
  58.   mailx -s "TABLESPACE ALERT for DB"  EMAIL-ADDRESS  < tablespace.alert  
  59.   fi  



上面这个脚本会导致如果有一个文件超过80%的话,脚本会不停添加数据文件.... 

更新修改后的,而且把sql直接用文本文件来代替了以前使用的view 

Java代码  收藏代码
  1. #!/bin/bash  
  2.   
  3. # Managed by Puppet  
  4.   
  5. #####################################################################  
  6. ## checkTabsp.sh ##  
  7. ## This Script will add the new datafile if BOCC Tablespace's data  
  8. ## file, which is greater than  the 80% of one datafiles size  
  9. #####################################################################  
  10.   
  11. # Avoid have the script run if already running  
  12. source /opt/app/inc/some_functions.sh  
  13. pgrpfile=/tmp/checkTabsp.pgrp  
  14. check_if_running  
  15. # end  
  16.   
  17.   
  18. source /home/oracle/.profile  
  19.   
  20. usedDatafileNO=(`sqlplus -s '/as sysdba' <<\EOF   
  21. SET heading OFF;   
  22. SET verify OFF;  
  23. @/opt/app/sql/chktabspused.sql  
  24. EOF`  
  25. )  
  26. # check whether it needs add data file  
  27. if [ $usedDatafileNO -eq 0 ]  
  28. then  
  29. usedDatNO=(`sqlplus -s '/as sysdba' <<\EOF   
  30. SET heading OFF;   
  31. SET verify OFF;  
  32. @/opt/app/sql/chkdatno.sql  
  33. EOF`  
  34. )  
  35.   
  36. let sigNO=$usedDatNO+1  
  37. sigNO=`printf "%03d" $sigNO`  
  38.   
  39. sqlplus -s "/ as sysdba" <<EOF  
  40.        ALTER TABLESPACE DB_TABLESPACE ADD DATAFILE '/opt/oracle/oradata/DB/DB_DATA$sigNO.dbf' SIZE 500M AUTOEXTEND ON NEXT 50M;  
  41. EOF  
  42. # we need send email to report the tablespace stats info to check whether add data file successful  
  43.       sqlplus -s "/as sysdba" <<\EOF   
  44.         col tablespace_name for a30  
  45.         col file_name for a60  
  46.         col auto_extend for a12  
  47.         col tablespace_name justify center  
  48.         col file_name justify center  
  49.         col autoextend justify right  
  50.         set linesize 200  
  51.         set pagesize 500  
  52.         @/opt/bocc/sql/chktabspstats.sql  
  53.         EXIT  
  54. EOF  
  55. # out put the disk space useage  
  56. df -h  
  57. fi  
  58. #we will don't send email from there the crontab will do  
  59. #  if [ `cat tablespace.alert|wc -l` -gt 0 ]  
  60. #  then  
  61. #    cat tablespace.alert >tablespace.tmp  
  62. #  mailx -s "TABLESPACE ALERT for DB" YOUR_EMAIL_ADDRESS t  < tablespace.alert  
  63. #  fi  
分享到:
评论

相关推荐

    Oracle 主要配置文件介绍

    Oracle 应 用进行文件 I/O操作的目录为任意目录 因此 只要空间允许 可以将备份数 据存放到任意目录下 &lt;br&gt;1.2.4 监听配置文件 为了使得外部进程 如 CAMS后台程序 能够访问 Oracle 数据库 必须配 ...

    oracle 12c 数据库 教程

    (三)表空间和数据文件 57 (四)什么是自动存储管理 58 七、数据的并发处理 60 (一)锁定的机制 60 (三)锁的队列 60 (四)死锁 62 (五)手动加锁 64 (方式一)lock 语句 64 八、管理还原数据 65 (一)什么...

    ORACLE9i_优化设计与系统调整

    §1.1.2 表空间与数据文件 24 §1.1.3 Oracle实例(Instance) 24 §1.2 Oracle文件 26 §1.2.1 数据文件 26 §1.2.2 控制文件 26 §1.2.3 重做日志文件 26 §1.2.4 其它支持文件 26 §1.3 数据块、区间和段 28 §...

    OCPOCA认证考试指南全册:Oracle Database 11g(1Z0-051,1Z0-052,1Z0-053)--详细书签版(第2/2部分)

    5.1 了解表空间和数据文件 140 5.1.1 Oracle数据存储模型 140 5.1.2 段、区间、块和行 142 5.1.3 文件存储技术 144 5.2 创建和管理表空间 146 5.2.1 创建表空间 146 5.2.2 更改表空间 150 5.2.3 删除表空间 ...

    最全的oracle常用命令大全.txt

    执行“nomount”,然后打开控制文件,确认数据文件和联机日志文件的位置, 但此时不对数据文件和日志文件进行校验检查。 3、startup open dbname 先执行“nomount”,然后执行“mount”,再打开包括Redo log文件...

    oracle10g课堂练习I(2)

    表空间和数据文件 1-17 SYSTEM 和 SYSAUX 表空间 1-18 段、区和块 1-19 逻辑和物理数据库结构 1-20 课程示例: HR 方案 1-22 数据库体系结构:结构化组件概要 1-23 小结 1-24 2 安装 Oracle 数据库软件 ...

    OCPOCA认证考试指南全册:Oracle Database 11g(1Z0-051,1Z0-052,1Z0-053)--详细书签版(第1/2部分)

    5.1 了解表空间和数据文件 140 5.1.1 Oracle数据存储模型 140 5.1.2 段、区间、块和行 142 5.1.3 文件存储技术 144 5.2 创建和管理表空间 146 5.2.1 创建表空间 146 5.2.2 更改表空间 150 5.2.3 删除表空间 ...

    Oracle9i的init.ora参数中文说明

    并确保在同一事务处理种对相同数据的两次查询看到的是相同的值。 值范围: TRUE | FALSE 默认值: FALSE row_locking: 说明: 指定在表已更新或正在更新时是否获取行锁。如果设置为 ALWAYS, 只有在表被更新后才获取...

    Oracle从入门到精通

    7. tablespace 表空间:一个或多个数据文件的逻辑组成。 ..... 8. redo log file 重做日志文件............................. 9. control file 控制文件 ................................. 10. parameter file 初始...

    Visual C++程序开发范例宝典(光盘) 第四部分

    实例003 根据表中数据动态生成菜单 实例004 浮动的菜单 1.2 弹出菜单应用实例 实例005 在控件上单击右键弹出菜单 实例006 个性化的弹出菜单 实例007 任务栏托盘弹出菜单 1.3 工具栏应用实例 实例008 带背景...

    Visual C++程序开发范例宝典(光盘) 第八部分

    实例003 根据表中数据动态生成菜单 实例004 浮动的菜单 1.2 弹出菜单应用实例 实例005 在控件上单击右键弹出菜单 实例006 个性化的弹出菜单 实例007 任务栏托盘弹出菜单 1.3 工具栏应用实例 实例008 带背景...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例005 下载并安装JRE执行环境 8 实例006 编程输出星号组成的等腰三角形 9 1.2 开发工具 11 实例007 下载最新的Eclipse 11 实例008 为最新的Eclipse安装中文语言包 12 实例009 活用Eclipse的工作空间 14 实例010 在...

    JAVA上百实例源码以及开源项目源代码

     用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,...

    Visual C++程序开发范例宝典(PDF扫描版).part3

     cc实例003 根据表中数据动态生成菜单   cc实例004 浮动的菜单   1.2 弹出菜单应用实例   cc实例005 在控件上单击右键弹出菜单   cc实例006 个性化的弹出菜单   cc实例007 任务栏托盘弹出菜单   ...

Global site tag (gtag.js) - Google Analytics