需求:
1.有很多不在一个局域网内的实例和表空间 (>100 Instance)
2.无法预计每个表空间的增长趋势
3.要求自动实现,防止表空间满
4.高峰并发大,数据增长快
 
注: oracle那种自动增长只有等用到将近所设大小的100%的时候才自动增加
 
各位大师,请给出你们的高见,谢谢

解决方案 »

  1.   

    10g以上用em,10g以下只能自己写脚本监控。
      

  2.   

    10g可以用em,配置一下email就可以。
      

  3.   

    实例太多,表空间太多,而且不在同一个机房,DBA少,总得有个自动管理,所以考虑在所设置的基础上价格阀值来控制这一自动增长,只是我暂时还没管用的资料
      

  4.   

    下面是我的SHELL脚本,可设置自动监控表空间并自动增加数据文件大小,其中包括5个参数,对于监控多个Instance中的多个表空间比较实用,欢迎各位大侠提出宝贵的意见,谢谢!
    #####################################################################
    ## chktbspace_dbmail.sh ##
    ######################################################################!/bin/sh
    # ORACLE_SID
    export ORACLE_SID=CNMMBO# DB USER/PWD   File(Send Mail)
    sqlplus -s goex_admin/goex_admin >chktbspace.alert<<EOF
    # Max Threshold
    DEFINE v_used_max = 60.01 ;  
    # Incremental
    DEFINE v_used_min = 0.05 ;  
    set serveroutput off
    set newp none
    set echo off
    set feedback off
    set heading off
    set pagesize 0 
    set termout off
    set trimout on
    set trimspool on
    set verify off
    set autotrace off
    SET LINESIZE 25000
    set feed OFF
    SET verify OFF
     
    select 'ALTER DATABASE DATAFILE ' || chr(39) || FILE_NAME || chr(39) ||
           ' RESIZE ' ||ceil(bytes / 1024 / 1024 * (1+&v_used_min))|| 'M;'
      from dba_data_files
     where tablespace_name in
           (select d.tablespace_name
              FROM sys.dba_tablespaces d,
                   (select tablespace_name, sum(bytes) bytes
                      from dba_data_files
                     group by tablespace_name) a,
                   (select tablespace_name, sum(bytes) bytes
                      from dba_free_space
                     group by tablespace_name) f
             WHERE d.tablespace_name = a.tablespace_name(+)
               AND d.tablespace_name = f.tablespace_name(+)
               AND NVL((a.bytes - NVL(f.bytes, 0)) / a.bytes * 100, 0) >
                   &v_used_max
               AND d.tablespace_name not in
                   ('UNDOTBS1', 'SYSAUX', 'SYSTEM', 'USERS', 'TEMP'));
    EXIT
    EOF# Mail
    sqlplus goex_admin/goex_admin @chktbspace.alert
    EXIT
    if [ `cat chktbspace.alert|wc -l` -gt 0 ]  
    then  
    cat chktbspace.alert | mail [email protected] [email protected] -s "TABLESPACE ALERT !" 
    fi