Log shipping durumunu ve gecikmesini izle
SQL ServerAlways On & HAKomut
-- Ozet (primary, secondary veya monitor sunucuda):
EXEC master.sys.sp_help_log_shipping_monitor;
-- PRIMARY: son log yedegi ne zaman alindi:
SELECT p.primary_server, p.primary_database,
p.last_backup_date, p.last_backup_file,
DATEDIFF(MINUTE, p.last_backup_date, GETDATE()) AS backup_age_min,
p.backup_threshold AS threshold_min
FROM msdb.dbo.log_shipping_monitor_primary p;
-- SECONDARY: kopyalama ve restore gecikmesi:
SELECT s.secondary_server, s.secondary_database, s.primary_server,
s.last_copied_date, s.last_copied_file,
s.last_restored_date, s.last_restored_file,
s.last_restored_latency AS restore_latency_min,
DATEDIFF(MINUTE, s.last_restored_date, GETDATE()) AS since_last_restore_min,
s.restore_threshold AS threshold_min
FROM msdb.dbo.log_shipping_monitor_secondary s;
-- Son 24 saatin hatalari:
SELECT e.database_name, e.agent_type, e.log_time, e.message
FROM msdb.dbo.log_shipping_monitor_error_detail e
WHERE e.log_time >= DATEADD(HOUR, -24, GETDATE())
ORDER BY e.log_time DESC;
-- Secondary DB modu (RESTORING = NORECOVERY, is_in_standby = STANDBY):
SELECT name, state_desc, is_in_standby FROM sys.databases WHERE name = N'Musteri';Ne yapar?
Primary'de son log yedeğinin yaşını, secondary'de son kopyalanan/restore edilen dosyayı ve restore gecikmesini eşik değerleriyle birlikte; son 24 saatin backup/copy/restore job hatalarını gösterir.
Ne zaman kullanılır?
Log shipping alert job'ı (14420/14421 hatası) tetiklendiğinde, DR testinden önce, secondary'nin ne kadar geride olduğunu raporlarken.
Dikkat
Monitor tabloları yalnız ilgili sunucunun gördüğü tarafı içerir: primary tablosu primary/monitor'de, secondary tablosu secondary/monitor'de dolar. Araya manuel (log shipping dışı) bir log yedeği girerse zincir kırılır ve restore job sürekli hata verir; ad-hoc log yedeği gerekiyorsa COPY_ONLY kullan. STANDBY modda her restore öncesi kullanıcı bağlantıları kesilir. Sadece sorgu; risksiz.