entretando agora teremos um pouco a mais de tempo para blog e duvida dos usuarios.
Tempos gostaria de demonstrar como criar uma notificação de quando a sua instância (serviço)
for reiniciada ou acontecer um faillover (falha); um assunto crítico bem especulado, e porem longo.
Quando administramos muitas instâncias, pode ocorrer alguns eventos como um restart de uma instância ou um faillover e acabar passando despercebido pelos admins, e derrubando todos os acessos momentaneamente, por isso, toda vez que ocorre um destes eventos inexperados criaremos uma notificação por email para posteriormente analisar o que realmente ocorreu;
GO
SELECT servicename, startup_type_desc, status_desc, last_startup_time
FROM sys.dm_server_services
Esta notificação do evento será executada atraves de um job que é executado toda vez em que o SQL agent for iniciado (reiniciado), enviaremos um e-mail notificando que houve um evento no services, identificando qual a instância foi reiniciada.
-- inicio script
DECLARE
@msg NVARCHAR(MAX),
@instancia VARCHAR(100),
@assunto VARCHAR(100);
SELECT
@instancia = @@SERVERNAME;
SET @assunto = 'A instancia ' + @instancia + ' Foi reiniciada';
SET @msg = '<p> ' + @instancia + ' A Instancia foi reniciada.</p>';
SET @msg = @msg + '<table border="2" cellspacing="2" cellpadding="2">';
SET @msg = @msg + '<tbody align="left" style="font-family:Arial; font-size: 11;"
<TR><TH>Service Name</TH><TH>Startup Type</TH><TH>Status</TH>
<TH>Startup Time</TH></TR></tbody>';
SELECT
@msg = @msg + '<tbody align="left" style="font-family:Arial;
font-size: 11;" <TR><TD>' + servicename + '</TD><TD>'
+ startup_type_desc + '</TD><TD>' + status_desc
+ '</TD><TD>'+ CAST(last_startup_time AS VARCHAR(30))
+ '</TD></TR></tbody>'
FROM
sys.dm_server_services;
EXEC
msdb.dbo.sp_send_dbmail
@profile_name = 'MSSQLSERVER',
@recipients = 'email_destino@email.com',
@subject = @assunto,
@body = @msg,
@body_format = 'HTML';
-- fim script
Para criar o job basta expandir o SQL agent, e na guia steps colamos o script acima; Na guia schedules optamos por “Start automatically when SQL Server Agent starts”
Feito, quando ocorrer algum restart receberemos um e-mail (semelhante a este)
no destinario configurado e seus respectivos database;
Para criar um notificação em caso de failover, é um procedimento um pouco diferente,
consideramos mais complexo para isso precisamos de um futuro topico detalhando cada passo;
acompanhem o blog na proxima semana o script para monitoramento de failover;
Duvidas, problemas, e melhorias no email particular gudamatto@gmail.com
Grande abraços, sucesso ;)
Para criar este monitoramento usamos a sys.dm_server_services,
para mais informações complemente a leitura em (https://msdn.microsoft.com/pt-br/library/hh204542%28v=sql.120%29.aspx)
Nenhum comentário:
Postar um comentário