none
Sql Server 2008 RRS feed

  • Pergunta

  • Como faço para criar um alerta que me mande um email assim que meu HD estiver com 90 % de uso?

     

    Obrigado...

    • Movido Gustavo Maia Aguiar quinta-feira, 4 de agosto de 2011 17:08 (De:SQL Server - Desenvolvimento Geral)
    quinta-feira, 4 de agosto de 2011 15:17

Respostas

  • Oi Mairon,

    Supondo que você tenha um disco de 500GB com um único MDF, quando o MDF chegasse a 450Gb, você teria 90% do espaço preenchido. Você poderia então configurar o alerta do tipo SQL Server performance condition alert com o objeto SQL Server:Databases, escolhendo o contador Data File(s) Size (KB) e o seu respectivo banco. Configure os operadores e o email para que o alerta o informe quando disparado.

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.wordpress.com


    Classifique as respostas. O seu feedback é imprescindível
    • Sugerido como Resposta Gustavo Maia Aguiar quinta-feira, 4 de agosto de 2011 17:07
    • Marcado como Resposta Mairon Costa quinta-feira, 4 de agosto de 2011 17:52
    quinta-feira, 4 de agosto de 2011 17:05

Todas as Respostas

  • Mairon,

     

    Desconheco qualquer maneira de fazer isso, pois os alerta do SQL Server trabalham, dentro do SQL Server, e dentro do SQL Server voce pode dividir seus datafile em muitos hd, voce consegue especificar o arquivo de uma base, mas não encontrei nenhum em relação a HD.

     

    Todo caso, existem outras maneiras claro, veja este link: http://www.sqlservercentral.com/articles/Administration/monitoringdiskspaceandsendingalertswithtsql/1114/


    Fabrizzio A. Caputo
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Blog Empresa: www.tripletech.com.br/blog
    Twitter: @FabrizzioCaputo
    Email: fabrizzio.antoniaci@gmail.com
    quinta-feira, 4 de agosto de 2011 15:25
    Moderador
  • obrigado pela resposta Fabrizzio.

    Mas acho que nao me expressei direito.

    Gostaria de criar no server agent do SQL server 2008 um alerta que me notifique quando meu espaço em disco esteja chegando perto de 100% de uso.

    Sera que teria como??

     

    quinta-feira, 4 de agosto de 2011 15:32
  • Mairon,

     

    Quanto exatamente voce quer que o email seja enviado?

     

    Tenho essa proc que diz em percentual o total utilizado do disco:

     

    sp_configure 'Ole Automation Procedures',1

    GO

    RECONFIGURE

    GO

    DECLARE @hr int

    DECLARE @fso int

    DECLARE @drive char(1)

    DECLARE @odrive int

    DECLARE @TotalSize varchar(20) DECLARE @MB Numeric ; SET @MB = 1048576

    CREATE TABLE #drives (drive char(1) PRIMARY KEY, FreeSpace int NULL,

    TotalSize int NULL) INSERT #drives(drive,FreeSpace) EXEC

    master.dbo.xp_fixeddrives EXEC @hr=sp_OACreate

    'Scripting.FileSystemObject',@fso OUT IF @hr <> 0 EXEC sp_OAGetErrorInfo

    @fso

    DECLARE dcur CURSOR LOCAL FAST_FORWARD

    FOR SELECT drive from #drives ORDER by drive

    OPEN dcur FETCH NEXT FROM dcur INTO @drive

    WHILE @@FETCH_STATUS=0

    BEGIN

    EXEC @hr = sp_OAMethod @fso,'GetDrive', @odrive OUT, @drive

    IF @hr <> 0 EXEC sp_OAGetErrorInfo @fso EXEC @hr =

    sp_OAGetProperty

    @odrive,'TotalSize', @TotalSize OUT IF @hr <> 0 EXEC sp_OAGetErrorInfo

    @odrive UPDATE #drives SET TotalSize=@TotalSize/@MB WHERE

    drive=@drive FETCH NEXT FROM dcur INTO @drive

    End

    Close dcur

    DEALLOCATE dcur

    EXEC @hr=sp_OADestroy @fso IF @hr <> 0 EXEC sp_OAGetErrorInfo @fso

    SELECT

    (select @@servername) as Server, drive, TotalSize as 'Total(MB)', FreeSpace as 'Free(MB)', 100-(100*FreeSpace)/TotalSize as '% Used'

    FROM #drives

    ORDER BY drive 

    DROP TABLE #drives

     

    sp_configure 'Ole Automation Procedures',0

    GO

    RECONFIGURE

    GO

     

     

    A partir dela basta implementar uma logica de selects + if para envio de email


    Fabrizzio A. Caputo
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Blog Empresa: www.tripletech.com.br/blog
    Twitter: @FabrizzioCaputo
    Email: fabrizzio.antoniaci@gmail.com

    quinta-feira, 4 de agosto de 2011 15:35
    Moderador
  • vou testar esse scrpit aqui..

    valeu...

    mas pelo Server Agent nao teria como??

    ja vi alguma coisa a esse respeito...

    quinta-feira, 4 de agosto de 2011 16:15
  • Mairon,

     

    basta voce agendar essa execução de tempos em tempos, eu particularmente desconheco uma maneira automaica via alerta de fazer isso por exemplo.

    Agora, se voce tivesse um disco exclusivo para cada base, ai sim seria possivel sem problemas.


    Fabrizzio A. Caputo
    Certificações:
    Oracle OCA 11g
    MCITP SQL Server 2008 Implementation and Maintenance
    MCITP SQL Server 2008 Developer
    Blog Pessoal: www.fabrizziocaputo.wordpress.com
    Blog Empresa: www.tripletech.com.br/blog
    Twitter: @FabrizzioCaputo
    Email: fabrizzio.antoniaci@gmail.com
    quinta-feira, 4 de agosto de 2011 16:33
    Moderador
  • Olá Mairon,

    Essa necessidade deveria ficar fora do SQL Server, pois, refere-se puramente ao SO. O alerta deveria ser de Windows (configurável no System Monitor) e não no SQL Server Agent. Dá pra fazer no SQL Agent com WMI, mas não conheço a instrução WQL para fazer isso.

    Se o disco tiver um único MDF, você pode usar o tamanho do MDF para disparar o alerta quando esse tiver 90% do disco

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.wordpress.com


    Classifique as respostas. O seu feedback é imprescindível
    quinta-feira, 4 de agosto de 2011 16:41
  • Valeu Gustavo...

    Pelo system Monitor eu realmente vi que funciona. Acho q vai ser mais tranquilo fazer por ele.

    Agora quanto ao MDF como eu faria??

     

    Obrigado...

    valeu tb Frabizzio

     

     

    quinta-feira, 4 de agosto de 2011 16:51
  • Oi Mairon,

    Supondo que você tenha um disco de 500GB com um único MDF, quando o MDF chegasse a 450Gb, você teria 90% do espaço preenchido. Você poderia então configurar o alerta do tipo SQL Server performance condition alert com o objeto SQL Server:Databases, escolhendo o contador Data File(s) Size (KB) e o seu respectivo banco. Configure os operadores e o email para que o alerta o informe quando disparado.

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.wordpress.com


    Classifique as respostas. O seu feedback é imprescindível
    • Sugerido como Resposta Gustavo Maia Aguiar quinta-feira, 4 de agosto de 2011 17:07
    • Marcado como Resposta Mairon Costa quinta-feira, 4 de agosto de 2011 17:52
    quinta-feira, 4 de agosto de 2011 17:05
  • Ok Gustavo, entendi.

     

    Acredito que no meu caso o melhor vai ser pelo perfom mesmo.

     

    Agradeço a todos pelas repostas...

    qualquer outra duvida posto novamente...

    quinta-feira, 4 de agosto de 2011 17:52