Monitorování zrcadlení databáze (SQL Server)

platí pro:SQL Server

Tato část představuje monitorování zrcadlení databáze a uložené procedury systému sp_dbmmonitor , vysvětluje, jak funguje monitorování zrcadlení databáze (včetně úlohy monitorování zrcadlení databáze) a shrnuje informace, které můžete monitorovat o relacích zrcadlení databáze. Tato část dále popisuje, jak definovat prahové hodnoty upozornění pro sadu předdefinovaných událostí zrcadlení databáze a jak nastavit upozornění na jakoukoli událost zrcadlení databáze.

Během relace zrcadlení můžete monitorovat zrcadlenou databázi a ověřit, jestli a jak dobře data proudí. Chcete-li nastavit a spravovat monitorování jedné nebo více zrcadlených databází na instanci serveru, můžete použít buď nástroj Database Mirroring Monitor, nebo systémové uložené procedury sp_dbmmonitor.

Úloha monitorování zrcadlení databáze, Database Mirroring Monitor Job, běží na pozadí, nezávisle na nástroji Database Mirroring Monitor. SQL Server Agent volá úlohu monitorování zrcadlení databáze v pravidelných intervalech, výchozí hodnota je jednou minuta a úloha volá uloženou proceduru, která aktualizuje stav zrcadlení. Pokud ke spuštění relace zrcadlení použijete SQL Server Management Studio, vytvoří se úloha monitorování zrcadlení databáze automaticky. Pokud ale ke spuštění zrcadlení použijete pouze ALTER DATABASE<database_name>SET PARTNER, musíte úlohu vytvořit spuštěním uložené procedury.

V tomto tématu:

Monitorování stavu zrcadlení

Pokud chcete nastavit a spravovat monitorování jedné nebo více zrcadlených databází na instanci serveru, můžete použít buď Monitor zrcadlení databáze, nebo systémové uložené procedury dbmmonitor. Během zrcadlení můžete sledovat zrcadlenou databázi a ověřit, zda a jak dobře data proudí.

Konkrétně monitorování zrcadlené databáze umožňuje:

  • Ověřte, že zrcadlení funguje.

    Základní stav zahrnuje informaci o tom, zda jsou obě instance serveru v provozu, zda jsou servery propojené a zda se protokol transakcí přesouvá z primárního serveru na zrcadlový server.

  • Určete, jestli zrcadlová databáze udržuje krok s hlavní databází.

    Během režimu vysokého výkonu může hlavní server vyvíjet backlog neodeslaných záznamů protokolu, které je stále potřeba odeslat z hlavního serveru na zrcadlový server. Kromě toho se v jakémkoli provozním režimu může na zrcadlovém serveru hromadit prodleva v podobě neobnovených záznamů protokolu, které byly zapsány do souboru protokolu, ale dosud nebyly obnoveny v zrcadlové databázi.

  • Určete, kolik dat bylo ztraceno, když se hlavní instance serveru stane nedostupnou v režimu vysokého výkonu.

    Ztrátu dat můžete určit podle množství neodeslaného protokolu transakcí (pokud nějaký existuje) a podle časového intervalu, ve kterém byly ztracené transakce zapsány na hlavním serveru.

  • Porovnejte aktuální výkon s minulým výkonem.

    Když dochází k problémům, může správce databáze zobrazit historii výkonu zrcadlení, aby vám pomohl pochopit aktuální stav. Při pohledu na historii může uživatel zjistit trendy v výkonu, identifikovat vzory problémů s výkonem (například denní dobu, kdy je síť pomalá nebo počet příkazů při zadávání protokolu je velmi velký).

  • Vyřešte příčinu sníženého toku dat mezi partnery při zrcadlení.

  • Nastavte prahové hodnoty upozornění u klíčových metrik výkonu.

    Pokud nový řádek stavu obsahuje hodnotu, která překračuje prahovou hodnotu, do protokolu událostí Windows se odešle informační událost. Správce systému pak může ručně nakonfigurovat výstrahy na základě těchto událostí. Pro více informací viz Použití varovných prahů a upozornění na zrcadlení metrik výkonu (SQL Server).

Nástroje pro monitorování stavu zrcadlení databáze

Stav zrcadlení lze sledovat buď pomocí nástroje Database Mirroring Monitor, nebo pomocí systémové uložené procedury sp_dbmmonitorresults. Tyto nástroje lze použít ke sledování zrcadlení databáze u libovolné zrcadlené databáze na místní instanci serveru jak správci systému, tj. členy pevné role serveru sysadmin, tak uživateli, které správce systému přidal do pevné databázové role dbm_monitor v databázi msdb. Při použití některého z nástrojů může správce systému také ručně aktualizovat stav zrcadlení.

Note

Správci systému můžou také nakonfigurovat a zobrazit prahové hodnoty upozornění pro klíčové metriky výkonu. Pro více informací viz Použití varovných prahů a upozornění na zrcadlení metrik výkonu (SQL Server).

  • Monitor zrcadlení databáze

    Monitorování zrcadlení databáze je grafický nástroj uživatelského rozhraní, který správcům systému umožňuje zobrazit a aktualizovat stav a nakonfigurovat prahové hodnoty upozornění na několik klíčových metrik výkonu. Monitorování zrcadlení databáze mohou také používat členové dbm_monitor pevné databázové role k zobrazení nejnovějšího řádku tabulky stavu zrcadlení, i když nemůžou aktualizovat stavové tabulky.

    Monitor zobrazuje na stránce s kartami Stav stav vybrané databáze včetně metrik výkonu. Obsah této stránky pochází jak z instance primárního serveru, tak ze instance zrcadlového serveru. Stránka se asynchronně naplňuje, protože informace o stavu se získávají prostřednictvím samostatných připojení k instancím primárního a zrcadlového serveru. Monitor se pokouší aktualizovat stavovou tabulku v 30sekundových intervalech. Aktualizace proběhne úspěšně pouze v případě, že se tabulka neaktualizovala během 15 sekund a uživatel je členem pevné role serveru správce systému . Souhrn informací uvedených na stránce Stav viz Stav zobrazený monitorem zrcadlení databáze dále v tomto tématu.

    Úvod do rozhraní monitorování zrcadlení databáze naleznete v tématu Přehled monitorování zrcadlení databáze. Informace o spuštění nástroje Database Mirroring Monitor najdete v tématu Start Database Mirroring Monitor (SQL Server Management Studio).

  • Systémové uložené procedury

    Aktuální stav můžete také načíst nebo aktualizovat spuštěním uložené procedury sp_dbmmonitorresults systému. Další uložené procedury dbmmonitor umožňují nastavit monitorování, změnit parametry monitorování, zobrazit aktuální interval aktualizace a zrušit monitorování u instance serveru.

    Následující tabulka uvádí uložené procedury pro správu a používání monitorování zrcadlení databáze nezávisle na nástroji Database Mirroring Monitor.

    Procedure Description
    sp_dbmmonitoraddmonitoring Vytvoří úlohu, která pravidelně aktualizuje informace o stavu pro každou zrcadlenou databázi v instanci serveru.
    sp_dbmmonitorchangemonitoring Změní hodnotu parametru monitorování zrcadlení databáze.
    sp_dbmmonitorhelpmonitoring Vrátí aktuální období aktualizace.
    sp_dbmmonitorresults Vrátí stavové řádky pro monitorovanou databázi a umožňuje zvolit, jestli procedura předem získá nejnovější stav.
    sp_dbmmonitordropmonitoring Zastaví a odstraní úlohu monitoru zrcadlení pro všechny databáze na instanci serveru.

    Systémové uložené procedury dbmmonitor lze použít jako doplněk k nástroji Monitor zrcadlení databáze. Například i když bylo monitorování nakonfigurováno pomocí sp_dbmmonitoraddmonitoring, můžete k zobrazení stavu použít monitorování zrcadlení databáze.

Jak funguje monitorování

Tato část představuje tabulku stavu zrcadlení databáze, úlohu monitoru zrcadlení databáze a nástroj Monitor, způsob, jak mohou uživatelé sledovat stav zrcadlení databáze, a způsob, jak lze úlohu monitorování odstranit.

Tabulka stavu zrcadlení databáze

Stav zrcadlení databáze je uložen v interní nedokumentované tabulce stavu zrcadlení databáze v databázi msdb . Tato stavová tabulka se automaticky vytvoří při první aktualizaci stavu zrcadlení na instanci serveru.

Stavovou tabulku může aktualizovat buď automaticky, nebo ručně správce systému s minimálním intervalem aktualizace 15 sekund. Minimální interval 15 sekund zabraňuje přetížení instancí serveru dotazy na stav.

Stavová tabulka se automaticky aktualizuje monitorováním zrcadlení databáze i úlohou monitorování zrcadlení databáze, pokud je spuštěná. Úloha monitorování zrcadlení databáze aktualizuje tabulku ve výchozím nastavení jednou za minutu (správce systému může zadat dobu aktualizace 1 až 120 minut). Monitorování zrcadlení databáze naproti tomu aktualizuje tabulku automaticky každých 30 sekund. U těchto aktualizací volá úloha monitorování zrcadlení databáze a monitorování zrcadlení databáze sp_dbmmonitorupdate.

Při prvním spuštění procedury sp_dbmmonitorupdate vytvoří v databázi msdbtabulku stavu zrcadlení databáze a dbm_monitor pevnou databázovou roli. sp_dbmmonitorupdate obvykle aktualizuje stav zrcadlení vložením nového řádku do stavové tabulky pro každou zrcadlenou databázi v instanci serveru; Další informace naleznete v části Tabulka stavu zrcadlení databáze dále v tomto tématu. Tento postup také vyhodnotí metriky výkonu v nových řádcích a zkrátí řádky starší než aktuální doba uchovávání (výchozí hodnota je 7 dnů). Další informace najdete v tématu sp_dbmmonitorupdate (Transact-SQL).

Note

Pokud monitorování zrcadlení databáze aktuálně nepoužívá člen pevné role serveru správce systému, tabulka stavů se automaticky aktualizuje pouze v případě, že existuje úloha monitorování zrcadlení databáze a SQL Server Agent je spuštěna.

Úloha monitorování zrcadlení databáze

Úloha monitorování zrcadlení databáze, Database Mirroring Monitor Job, pracuje nezávisle na nástroji Database Mirroring Monitor. Úloha monitorování zrcadlení databáze se automaticky vytvoří pouze v případě, že se ke spuštění relace databázového zrcadlení použije SQL Server Management Studio. Pokud se příkazy PARTNER ALTER DATABASEdatabase_nameSET vždy používají k zahájení zrcadlení, úloha existuje pouze v případě, že správce systému spustí uloženou proceduru sp_dbmmonitoraddmonitoring.

Po vytvoření úlohy monitorování zrcadlení databáze za předpokladu, že SQL Server Agent běží, se úloha ve výchozím nastavení volá jednou za minutu. Úloha pak zavolá systémovou uloženou proceduru sp_dbmmonitorupdate.

SQL Server Agent ve výchozím nastavení volá úlohu monitorování zrcadlení databáze jednou za minutu a tato úloha volá proceduru sp_dbmmonitorupdate, aby aktualizovala stavovou tabulku. Správci systému můžou dobu aktualizace změnit pomocí uložené procedury sp_dbmmonitorchangemonitoring systému a mohou zobrazit aktuální období aktualizace pomocí uložené procedury sp_dbmmonitorchangemonitoring systému. Další informace najdete v tématech sp_dbmmonitoraddmonitoring (Transact-SQL) a sp_dbmmonitorchangemonitoring (Transact-SQL).

Monitorování stavu zrcadlení databáze (správci systému)

Členové pevné role serveru správce systému můžou zobrazit a aktualizovat tabulku stavu.

  • Použití Monitoru databázového zrcadlení

    Při použití Monitoru zrcadlení databáze může správce systému ručně aktualizovat stránku Stav, navigační strom nebo stránku Historie. Tím se aktualizuje také stavová tabulka, pokud ještě nebyla aktualizována během předchozích 15 sekund.

    Chcete-li zobrazit historii stavu zrcadlení na dané instanci serveru, může správce systému také kliknout na tlačítko Historie pro instanci serveru (na stránce Stav ). Historie se zobrazí v dialogovém okně Historie zrcadlení databáze . Správce systému tam může zobrazit některé nebo všechny řádky ve stavové tabulce instance serveru.

    Informace o metrikách na stránce Stav naleznete v části „Metriky výkonu zobrazené nástrojem „Database Mirroring Monitor““, dále v tomto tématu.

  • Použití sp_dbmmonitorresults

    Správci systému můžou k zobrazení a případně aktualizaci stavové tabulky použít sp_dbmmonitorresults uloženou proceduru systému, pokud nebyla aktualizována během předchozích 15 sekund. Tento postup volá sp_dbmmonitorupdate proceduru a vrátí jeden nebo více řádků historie v závislosti na množství požadované v volání procedury. Informace o stavu v její sadě výsledků naleznete v tématu sp_dbmmonitorresults (Transact-SQL).

Monitorování stavu zrcadlení databáze (členy dbm_monitor)

Jak už bylo zmíněno, při prvním spuštění sp_dbmmonitorupdate se v databázi msdb vytvoří dbm_monitor pevná role databáze. Členové pevné databázové role dbm_monitor mohou zobrazit aktuální stav zrcadlení pomocí nástroje Database Mirroring Monitor nebo uložené procedury sp_dbmmonitorresults. Tito uživatelé ale nemůžou aktualizovat tabulku stavů. Pokud chcete zjistit věk zobrazeného stavu, může se uživatel podívat na časy v popiscích hlavního protokolu (<čas>) a zrcadlového protokolu (<čas>) na stránce Stav .

Členové dbm_monitor pevné databázové role závisí na úloze monitorování zrcadlení databáze , která aktualizuje tabulku stavu v pravidelných intervalech. Pokud úloha neexistuje nebo služba SQL Server Agent není spuštěna, údaje o stavu budou čím dál neaktuálnější a nemusí již odrážet konfiguraci relace zrcadlení. Například po převzetí služeb při selhání se může zdát, že oba partneři mají stejnou roli – hlavní nebo zrcadlovou, nebo se aktuální hlavní server může zobrazovat jako zrcadlový, zatímco aktuální zrcadlový server se zobrazuje jako hlavní.

Vyřazení úlohy monitorování zrcadlení databáze

Úloha monitorování zrcadlení databáze, Database Mirroring Monitor Job, zůstává, dokud není odstraněna. Úlohu monitorování musí spravovat správce systému. Chcete-li odstranit úlohu Database Mirroring Monitor, použijte sp_dbmmonitordropmonitoring. Další informace najdete v tématu sp_dbmmonitordropmonitoring (Transact-SQL).

Stav zobrazený monitorem zrcadlení databáze

Stránka Stav nástroje Monitor zrcadlení databáze popisuje partnery i stav relace zrcadlení. Stav zahrnuje ukazatele výkonu, jako je stav transakčního protokolu, a další informace, které mají pomoci při aktuálním odhadu času potřebného k dokončení převzetí služeb při selhání a možné ztráty dat, pokud relace není synchronizovaná. Kromě toho stránka Stav zobrazuje stav a informace o relaci zrcadlení obecně.

Note

Úvod na stránku Monitorování zrcadlení databáze a stav naleznete v části Nástroje pro monitorování stavu zrcadlení databáze, dříve v tomto tématu.

Informace uvedené pro každý z nich jsou shrnuty v následujících částech.

Partners

Na stránce Stav se zobrazí následující informace pro každého z partnerů:

  • Instance serveru

    Název instance serveru, jejíž stav se zobrazí v řádku Stav .

  • Aktuální role

    Aktuální role instance serveru Možné stavy:

    • Ředitel školy

    • Mirror

  • Stav zrcadlení

    Možné stavy:

    • Neznámý

    • Synchronizace

    • Synchronizováno

    • Pozastavený

    • Disconnected

  • Připojení ke svědkovi

    Stav připojení svědka. Možné stavy:

    • Neznámý

    • Connected

    • Odpojen.

Přihlášení k hlavnímu serveru

Na stránce Stav se zobrazí následující informace o stavu protokolu na hlavním serveru v zadaném čase:

  • Neodeslaný záznam

    Množství protokolu čekajících ve frontě pro odesílání v kilobajtech (KB).

  • Nejstarší neodeslaná transakce

    Věk nejstarší neodeslané transakce ve frontě pro odesílání. Stáří této transakce označuje, kolik minut transakcí ještě nebylo odesláno do instance zrcadlového serveru. Tato hodnota pomáhá měřit potenciál ztráty dat z hlediska času.

  • Čas odeslání protokolu (odhadovaný)

    Odhadovaný počet minut, po které instance hlavního serveru vyžaduje odeslání protokolu, který je aktuálně ve frontě pro odesílání, do instance zrcadlového serveru na základě aktuální rychlosti odesílání. Skutečný čas odeslání protokolu bude ovlivněn rychlostí příchozích transakcí, které se mohou výrazně lišit. Hodnota Time to send log (estimated) ale může být užitečná k přibližnému odhadu doby potřebné pro ruční failover.

  • Aktuální rychlost odesílání

    Rychlost, s jakou se transakce odesílají do instance zrcadlového serveru v kB za sekundu.

  • Aktuální míra nových transakcí

    Rychlost, jakou se příchozí transakce zapisují do protokolu objektu zabezpečení, v KB za sekundu Chcete-li zjistit, zda se zrcadlení zpožďuje, drží krok nebo se dotahuje, porovnejte tuto hodnotu s hodnotou Odhadovaná doba odeslání protokolu.

Přihlaste se k zrcadlovému serveru

Na stránce Stav se zobrazí následující informace o stavu protokolu na zrcadlovém serveru od uvedeného času:

  • Neobnovený záznam

    Množství protokolu čekajících ve frontě opakování v kB.

  • Doba obnovení protokolu (odhadovaná doba)

    Přibližný počet minut potřebných k aplikaci protokolu, který je aktuálně ve frontě opětovného provedení, na zrcadlenou databázi.

  • Aktuální rychlost obnovení

    Rychlost obnovení transakcí do zrcadlové databáze (v kB za sekundu).

Zrcadlicí relace

Na stránce Stav se navíc zobrazí následující informace o relaci zrcadlení:

  • Režie zrcadleného commitu

    Průměrné zpoždění na transakci v milisekundách (relevantní pouze v režimu vysoké bezpečnosti). Toto zpoždění představuje množství režie, která vzniká, zatímco instance hlavního serveru čeká, až instance zrcadlového serveru zapíše záznam transakce do fronty pro opakování.

  • Čas odeslání a obnovení veškerého aktuálního protokolu (odhadovaného)

    Odhadovaná doba potřebná k odeslání všech neodeslaných protokolů transakcí, které byly potvrzeny na primárním serveru, a k obnovení všech protokolů transakcí, které se aktuálně nacházejí ve frontě opakovaného provedení. Tento odhad může být menší než součet hodnot polí Time to send log (odhad) a Time to restore log (estimated), protože odesílání a obnovení může fungovat paralelně.

  • Adresa svědka

    Síťová adresa instance serveru svědka. Informace o formátu této adresy naleznete v tématu Určení síťové adresy serveru (zrcadlení databáze).

  • Provozní režim

    Provozní režim relace zrcadlení databáze:

    • Vysoký výkon (asynchronní)

    • Vysoká bezpečnost bez automatického převzetí služeb při selhání (synchronní)

    • Vysoká bezpečnost díky automatickému převzetí služeb při selhání (synchronně)

Další zdroje informací o zrcadlené databázi

Kromě použití monitoru zrcadlení databáze a uložených procedur dbmmonitoru k monitorování zrcadlené databáze a nastavení výstrah na monitorované proměnné výkonu SQL Server poskytuje zobrazení katalogu, čítače výkonu a oznámení událostí pro zrcadlení databáze.

V této části:

Metadata databázového zrcadlení

Každá relace zrcadlení databáze je popsaná v metadatech, která jsou zpřístupněna prostřednictvím následujícího katalogu nebo zobrazení dynamické správy:

  • sys.database_mirroring

    Toto zobrazení zobrazuje metadata databázového zrcadlení pro každou zrcadlenou databázi v instanci serveru. Další informace najdete v tématu sys.database_mirroring (Transact-SQL).

  • sys.database_mirroring_endpoints

    Zobrazení katalogu sys.database_mirroring_endpoints zobrazuje informace o koncovém bodu zrcadlení databáze instance serveru. Další informace najdete v tématu sys.database_mirroring_endpoints (Transact-SQL).

  • sys.database_mirroring_witnesses

    Toto zobrazení katalogu zobrazuje metadata zrcadlení databáze pro každou relaci, ve kterých je instance serveru svědkem. Další informace najdete v tématu sys.database_mirroring_witnesses (Transact-SQL).

  • sys.dm_db_mirroring_connections

    Toto zobrazení dynamické správy vrací řádek pro každé síťové připojení databázového zrcadlení.

    Další informace najdete v tématu sys.dm_db_mirroring_connections (Transact-SQL).

Čítače výkonu zrcadlení databáze

Čítače výkonu umožňují monitorovat výkon zrcadlení databáze. Můžete například zkontrolovat čítač Zpoždění transakcí a zjistit, zda zrcadlení databáze ovlivňuje výkon hlavního serveru; také můžete zkontrolovat čítače Fronta opakování a Fronta odesílání protokolu transakcí a zjistit, jak dobře zrcadlová databáze drží krok s hlavní databází. Můžete zkontrolovat čítač Počet bajtů protokolu odeslaných za sekundu a sledovat množství dat protokolu odeslaných za sekundu.

V nástroji Sledování výkonu na kterémkoli z partnerů jsou k dispozici čítače výkonu v objektu výkonu pro zrcadlení databáze (SQLServer:Database Mirroring). Další informace najdete v tématu SQL Server, objekt zrcadlení databáze.

Spuštění monitorování výkonu

Oznámení událostí zrcadlení databáze

Oznámení událostí jsou speciálním druhem databázového objektu. Oznámení událostí se spouštějí v reakci na řadu Transact-SQL příkazů jazyka DDL (Data Definition Language) a událostí trasování SQL a odesílají informace o serverových a databázových událostech do služby Service Broker.

Pro zrcadlení databáze jsou k dispozici následující události:

Související úkoly

Uložené procedury

Viz také

Zrcadlení databáze (SQL Server)
Zprostředkovatel WMI pro koncepty serverových událostí