Lá vai uma procedure que faz isso, espero que ajude. Ele faz uma verificação
em todos as tablespaces de um determinado banco e envia um email com as que
ultrapassaram 80% da utilização. Basta configurar as informações de acordo
com suas necessidades. Se precisar de mais ajuda avise.

Create Or Replace Procedure Verifica_Tablespaces Is

  --
  -- Verificacao de tablespaces no banco BDPROD
  --

  Cursor c_Dbname_BDprod Is
    Select Name From V$database;

  Cursor c_Tablespaces_BDprod Is
    Select Df.Tablespace_Name,
           Df.Valor Total,
           Df.Valor - Nvl(Fs.Valor,
                          Df.Valor) Usado,
           Round((1 - (Nvl(Fs.Valor,
                           0) / Df.Valor)) * 100,
                 2) Percentual
      From (Select Tablespace_Name,
                   Round(Sum(Bytes / 1024 / 1024),
                         2) Valor
              From Dba_Data_Files
             Group By Tablespace_Name) Df,
           (Select Tablespace_Name,
                   Round(Sum(Bytes / 1024 / 1024),
                         2) Valor
              From Dba_Free_Space
             Group By Tablespace_Name) Fs
     Where Df.Tablespace_Name = Fs.Tablespace_Name(+)
     Order By 1;

Begin

  --
  -- Verificacao de tablespaces no banco BDPROD
  --

  If To_Char(Sysdate,
             'DAY') Not In ('saturday',
                            'sunday')
  Then
    Open c_Dbname_BDPROD;
    Fetch c_Dbname_BDPROD
      Into v_Dbname;
    Close c_Dbname_BDPROD;
  
    For i In c_Tablespaces_BDPROD
    Loop
      If i.Percentual > 80
      Then
        p_Envia_Email('[EMAIL PROTECTED]',
                      '[EMAIL PROTECTED]',
                      'Alerta do banco ' || v_Dbname,
                      'Tablespace: ' || i.Tablespace_Name || Chr(13) ||
                      Chr(10) || 'Tamanho total: ' || i.Total || ' Mb ' ||
                      Chr(13) || Chr(10) || 'Tamanho usado: ' || i.Usado ||
                      ' Mb ' || Chr(13) || Chr(10) || 'Percentual usado: '
||
                      i.Percentual || ' % ');
      
        p_Envia_Email('[EMAIL PROTECTED]',
                      '[EMAIL PROTECTED]',
                      'Alerta do banco ' || v_Dbname,
                      'Tablespace: ' || i.Tablespace_Name || Chr(13) ||
                      Chr(10) || 'Tamanho total: ' || i.Total || ' Mb ' ||
                      Chr(13) || Chr(10) || 'Tamanho usado: ' || i.Usado ||
                      ' Mb ' || Chr(13) || Chr(10) || 'Percentual usado: '
||
                      i.Percentual || ' % ');
      End If;
    End Loop;
  
  End If;

End;

 
Alexandre Rocha Placido
Divisão de Tecnologia da Informação
+55 74 3612-2900
+55 87 8802-0474
[EMAIL PROTECTED]
www.agrovale.com
Mas, a todos quantos o receberam, aos que crêem no seu nome, deu-lhes o
poder de se tornarem filhos de Deus;
 os quais não nasceram do sangue, nem da vontade da carne, nem da vontade do
varão, mas de Deus.  João 1:12-13.
 


[As partes desta mensagem que não continham texto foram removidas]



--------------------------------------------------------------------------------------------------------------------------
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--------------------------------------------------------------------------------------------------------------------------__________________________________________________________________

Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine 
__________________________________________________________________
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o 
link do mesmo para evitar trafego(pedidos) desnecessário. 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 


Responder a