Query para monitorar o status do Log Shipping

Fala Galera ?
Tudo beleza?
Hoje vou trazer uma dica bem rapidinha para vocês sobre como monitorar o status do seu Log Shipping.
Há um tempo fiz um post sobre como configurar essa feature que pode ser utilizada como uma estratégia básica de DR (Disaster Recovery).
https://gustavolarocca.com.br/configurando-um-log-shipping-no-sql-server/
Não deixem de conferir ?
Sempre que implanto o Log Shipping nos clientes, utilizo essa query para validar o status das bases, com ela você pode criar alertas customizados e receber e-mails se alguma database não restaurar as peças de Backup de Log por um período pré-determinado que desejar.
Exemplo :
SELECT ls.primary_server,
ls.primary_database,
lsd.restore_delay,
DATEDIFF(mi, lms.last_restored_date, GETDATE()) AS time_since_last_restore,
lms.last_copied_date,
lms.last_restored_date,
lms.last_copied_file,
lms.last_restored_file,
lsd.disconnect_users,
ls.backup_source_directory,
ls.backup_destination_directory,
ls.monitor_server
FROM msdb.dbo.log_shipping_secondary ls
JOIN msdb.dbo.log_shipping_secondary_databases lsd
ON lsd.secondary_id = ls.secondary_id
JOIN msdb.dbo.log_shipping_monitor_secondary lms
ON lms.secondary_id = lsd.secondary_id
WHERE DATEDIFF(mi, lms.last_restored_date, GETDATE()) >= 1200; -- 1200 minutos
Como podemos ver pela imagem acima temos a base AdventureWorks2016 que está a 1395 minutos sem restaurar um backup de LOG.
Podemos usar desse threshold para criar um alerta customizado e configurar um job para me enviar um e-mail caso a base fique X minutos sem receber os arquivos de Log.
Exemplo:

E aí, gostaram?
Qualquer dúvida deixe nos comentários.
Um forte abraço até a próxima.
Gustavo Larocca
Consultor SQL Server
Gostou do conteúdo?
Acompanhe novos artigos sobre SQL Server, performance e administração de banco de dados.
