Usuário com melhor resposta
Sql Server 2008

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)
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
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 -
-
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
-
-
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 -
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 -
-
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
-