Konfigurace rozšířených událostí pro skupiny dostupnosti

platí pro:SQL Server

SQL Server definuje rozšířené události specifické pro skupiny dostupnosti. Sledujte tyto rozšířené události během sezení, abyste pomohli s diagnostikou příčiny při řešení problémů ve skupině dostupnosti. Použijte následující dotaz pro zobrazení skupiny dostupnosti Extended Events:

SELECT *
FROM sys.dm_xe_objects
WHERE name LIKE '%hadr%';

Zasedání alwayson_health

Relace rozšířených událostí alwayson_health se automaticky vytvoří při vytvoření skupiny dostupnosti a zachycuje podmnožinu událostí souvisejících se skupinou dostupnosti. Tato relace je předem nakonfigurována jako užitečný a praktický nástroj, který vám pomůže rychle začít pracovat při řešení potíží se skupinou dostupnosti. Průvodce vytvořením skupiny dostupnosti automaticky zahájí relaci na každé zúčastněné replice dostupnosti nakonfigurované v průvodci.

Important

Pokud skupinu dostupnosti nevytvoříte pomocí Průvodce vytvořením nové skupiny dostupnosti, relace alwayson_health se nemusí spustit automaticky. Pokud relace není zahájena, nemůže zachytit data o událostech, když nastane neočekávaný problém. Měl bys ručně spustit relaci a nastavit ji tak, aby se spustila automaticky, nastavením vlastností relace.

Pro zobrazení definice alwayson_health sezení:

  1. V Průzkumník objektůu rozbalte Správa, Rozšířené události a potom Relace.

  2. Klikněte pravým tlačítkem Alwayson_health, ukažte na Script Session jako, pak na CREATE To a pak vyberte Nové Editor Power Query Okno.

Rozšířené události pro ladění

Kromě rozšířených událostí, které zahrnuje relace Alwayson_health, definuje SQL Server rozsáhlou sadu událostí ladění pro skupiny dostupnosti. Pro využití těchto dalších rozšířených událostí v rámci sezení postupujte podle těchto kroků:

  1. V Průzkumník objektů rozšířte Správu, Rozšířené události a poté Relace.

  2. Klikněte pravým tlačítkem myši na Relace a vyberte Nová relace. Nebo klikněte pravým tlačítkem Alwayson_health a vyberte Vlastnosti.

  3. V panelu Vybrat stránku vyberte Události.

  4. V knihovně událostí ve sloupci Kategorie vyberte alwayson a zrušte výběr všech ostatních kategorií.

  5. Ve sloupci Kanál vyberte Debug. Knihovna událostí nyní zobrazuje všechny události související se skupinou dostupnosti, které ještě nejsou vybrané.

  6. Zvýrazněte událost v knihovně událostí a pak vyberte > tlačítko pro její výběr pro danou relaci.

  7. Po dokončení sezení vyberte OK pro jeho uzavření. Ujistěte se, že je relace zahájena tak, aby zachytila události, které jste vybrali.

availability_replica_state_change

Tato událost nastává, když se změní stav repliky dostupnosti. Vytvoření skupiny dostupnosti nebo připojení k replikě dostupnosti může tuto událost spustit. Je užitečný pro diagnostiku neúspěšného automatického přepnutí a také pomáhá sledovat kroky přepinání.

Informace o události

Column Description
Name availability_replica_state_change
Category vždy zapnuté
Channel Funkční

Pole událostí

Name type_name Description
availability_group_id guid ID skupiny dostupnosti.
availability_group_name unicode_string Název skupiny pro dostupnost.
availability_replica_id guid ID repliky dostupnosti.
previous_state availability_replica_state Role repliky před změnou.

Možné hodnoty jsou:

Primary_Normal

Secondary_Normal

Řešení_čekajícího_převzetí_služeb_při_selhání

Rozlišení_Normální

Primární_čekající

Not_Available
current_state availability_replica_state Role repliky po změně.

Možné hodnoty jsou:

Primary_Normal

Secondary_Normal

Řešení_čekajícího_převzetí_služeb_při_selhání

Normální_rozlišení

Primární_čeká

Not_Available

Definice sezení v alwayson_health

CREATE EVENT SESSION [alwayson_health] ON SERVER
ADD EVENT availability_replica_state_change
ADD TARGET package0.event_file (
    SET filename = N'alwayson_health.xel',
    max_file_size = (5),
    max_rollover_files = (4),
    metadatafile = N'alwayson_health.xem'
)
WITH (
    MAX_MEMORY = 4096 KB,
    EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS,
    MAX_DISPATCH_LATENCY = 30 SECONDS,
    MAX_EVENT_SIZE = 0 KB,
    MEMORY_PARTITION_MODE = NONE,
    TRACK_CAUSALITY = OFF,
    STARTUP_STATE = ON
)
GO

Vypršela platnost lease skupiny dostupnosti

Tato událost nastává, když mají cluster a skupina dostupnosti problém s připojením a nájem vyprší. Naznačuje, že propojení mezi dostupnou skupinou a základním clusterem WSFC je narušeno. Pokud se problém s připojením objeví na primární replice, událost může způsobit automatické přepnutí nebo přejít do offline skupiny dostupnosti.

Informace o události

Column Description
Name availability_group_lease_expired
Category vždy zapnuté
Channel Funkční

Pole událostí

Name type_name Description
availability_group_id guid ID skupiny dostupnosti.
availability_group_name unicode_string Název skupiny dostupnosti.

Definice sezení v alwayson_health

CREATE EVENT SESSION [alwayson_health] ON SERVER
ADD EVENT availability_group_lease_expired
ADD TARGET package0.event_file (
    SET filename = N'alwayson_health.xel',
    max_file_size = (5),
    max_rollover_files = (4),
    metadatafile = N'alwayson_health.xem'
)
WITH (
    MAX_MEMORY = 4096 KB,
    EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS,
    MAX_DISPATCH_LATENCY = 30 SECONDS,
    MAX_EVENT_SIZE = 0 KB,
    MEMORY_PARTITION_MODE = NONE,
    TRACK_CAUSALITY = OFF,
    STARTUP_STATE = ON
)
GO

ověření_automatického_převzetí_služeb_při_selhání_repliky_dostupnosti

Tato událost nastává, když automatické přerušení ověřuje připravenost repliky dostupnosti jako primární repliky. Ukazuje, zda je cílová replika dostupnosti připravena stát se novou primární replikou. Například ověření při failoveru vrací nepravdu, pokud nejsou všechny databáze synchronizovány nebo spojeny. Tato událost poskytuje bod selhání během failoverů. Správce databáze má zvláštní zájem o tyto informace pro automatické přepnutí, protože automatické přepnutí je operace bez dozoru. Správce databáze může událost zkontrolovat, aby zjistil, proč automatické přerušení selhalo.

Informace o události

Name Description
Name availability_replica_automatic_failover_validation
Category vždy zapnuté
Channel Analytic

Pole událostí

Name type_name Description
availability_group_id guid ID skupiny dostupnosti.
availability_group_name unicode_string Název skupiny dostupnosti.
availability_replica_id guid ID repliky dostupnosti.
forced_quorum validation_result_type Pokud je hodnota , TRUEautomatické přepinání je na této replikě dostupnosti neplatné.

TRUE

FALSE
joined_and_synchronized validation_result_type Pokud je hodnota FALSE, je automatické převzetí služeb při selhání na této replice dostupnosti zneplatněno.

TRUE

FALSE
previous_primary_or_automatic_failover_target validation_result_type Pokud je hodnota , FALSEautomatické přepinání je na této replikě dostupnosti neplatné.

TRUE

FALSE

Definice sezení v alwayson_health

CREATE EVENT SESSION [alwayson_health] ON SERVER
ADD EVENT availability_replica_automatic_failover_validation (
    WHERE (
        [forced_quorum] = (TRUE)
        OR [joined_and_synchronized] = (FALSE)
        OR [previous_primary_or_automatic_failover_target] = (TRUE)
    )
)
ADD TARGET package0.event_file (
    SET filename = N'alwayson_health.xel',
    max_file_size = (5),
    max_rollover_files = (4),
    metadatafile = N'alwayson_health.xem'
)
WITH (
    MAX_MEMORY = 4096 KB,
    EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS,
    MAX_DISPATCH_LATENCY = 30 SECONDS,
    MAX_EVENT_SIZE = 0 KB,
    MEMORY_PARTITION_MODE = NONE,
    TRACK_CAUSALITY = OFF,
    STARTUP_STATE = ON
)
GO

error_reported (více chybových čísel): Pro problémy s přepravou nebo spojením

Každá filtrovaná událost naznačuje, že došlo k problému s konektivitou v transportním nebo databázovém zrcadleném bodě, na kterém závisí skupina dostupnosti.

Column Description
Name error_reported

Čísla k filtrování: 35201, 35202, 35206, 35217, 35204, 9642, 9666, 35207, 9693, 28091, 9692, 28034, 28036, 28080, 9691, 33309
Category chyby
Channel Administrátor

Chybová čísla pro filtrování

Číslo chyby Description
9642 V koncovém bodu přenosového připojení služby Service Broker/Database Mirroring došlo k chybě: %i, stav: %i. (Role blízkého koncového bodu: %S_MSG, adresa vzdáleného koncového bodu: '%.*hs')
9666 Koncový bod %S_MSG je v zakázaném nebo zastaveném stavu.
9691 Koncový bod %S_MSG přestal naslouchat připojení.
9692 Koncový bod %S_MSG nemůže naslouchat na portu %d, protože ho používá jiný proces.
9693 Koncový bod %S_MSG nemůže naslouchat připojení z důvodu následující chyby:%.*ls.
28034 Navázání připojení se nezdařilo. Přihlášení '%.*ls' nemá oprávnění CONNECT na koncovém bodu. Stav %d.
28036 Navázání připojení se nezdařilo. Certifikát používaný tímto koncovým bodem nebyl nalezen: %S_MSG. Pomocí DBCC CHECKDB v hlavní databázi ověřte integritu metadat koncových bodů. Stav %d.
28080 Navázání připojení se nezdařilo. Koncový bod %S_MSG není nakonfigurovaný. Stav %d.
28091 Počáteční koncový bod pro %S_MSG bez ověřování se nepodporuje.
33309 Koncový bod clusteru nelze spustit, protože výchozí konfigurace koncového bodu %S_MSG ještě nebyla načtena.
35201 Při pokusu o navázání připojení k replice dostupnosti%lss ID [%ls] došlo k vypršení časového limitu připojení. Existuje problém se sítí nebo s bránou firewall, nebo adresa koncového bodu zadaná pro repliku není koncovým bodem zrcadlení databáze instance hostitelského serveru.
35202 Připojení pro skupinu dostupnosti '%ls' z repliky dostupnosti '%ls' s ID [%ls] k '%ls' s ID [%ls] bylo úspěšně navázáno. Toto je pouze informační zpráva. Není nutná žádná akce uživatele.
35204 Připojení mezi instancemi serveru%lss ID [%ls] a%lss ID [%ls] bylo zakázáno, protože koncový bod zrcadlení databáze byl zakázán nebo zastaven. Restartujte koncový bod pomocí ALTER ENDPOINT příkazu Transact-SQL se stavem = STARTED.
35206 U dříve vytvořeného připojení k replice dostupnosti%lss ID [%ls] vypršel časový limit pro připojení. Existuje problém se sítí nebo s bránou firewall nebo replika dostupnosti přešla na roli řešení.
35207 Pokus o připojení skupiny dostupnosti s ID%lsz repliky s ID%lsna repliku s ID%lsselhal kvůli chybě %d, závažnosti %d, stavu %d.

Poznámka: Tato chyba nemusí mít dobré využití v DBA. V takovém případě zkontrolujte a odstraňte později.
35217 Fond vláken pro skupiny dostupnosti AlwaysOn nemohl spustit nové pracovní vlákno, protože není k dispozici dostatek pracovních vláken. To může snížit výkon skupin dostupnosti AlwaysOn. Pokud chcete zvýšit počet povolených vláken, použijte možnost konfigurace maximálního počtu pracovních vláken.

Platí na: SQL Server 2019 CU 15 a novější verze.

Definice sezení v alwayson_health

CREATE EVENT SESSION [alwayson_health] ON SERVER
ADD EVENT sqlserver.error_reported
    (
    WHERE (
        --Connectivity Error Messages
        [error_number] = (35201)
        OR [error_number] = (35202)
        OR [error_number] = (35204)
        OR [error_number] = (35206)
        OR [error_number] = (35207)
        OR [error_number] = (35217)
        OR [error_number] = (9642)
        --OR [error_number]=(9666)
        OR [error_number] = (9691)
        OR [error_number] = (9692)
        OR [error_number] = (9693)
        OR [error_number] = (28034)
        OR [error_number] = (28036)
        OR [error_number] = (28080)
        OR [error_number] = (28091)
        OR [error_number] = (33309)
    )
)
ADD TARGET package0.event_file (
    SET filename = N'alwayson_health.xel',
        max_file_size = (5),
        max_rollover_files = (4),
        metadatafile = N'alwayson_health.xem'
)
WITH
(
    MAX_MEMORY = 4096 KB,
    EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS,
    MAX_DISPATCH_LATENCY = 30 SECONDS,
    MAX_EVENT_SIZE = 0 KB,
    MEMORY_PARTITION_MODE = NONE,
    TRACK_CAUSALITY = OFF,
    STARTUP_STATE = ON
);
GO

data_movement_suspend_resume

Tato událost nastává, když je pohyb repliky databáze pozastaven nebo obnoven.

Informace o události

Column Description
Name pozastavení/obnovení přesunu dat
Category Vždy zapnuto
Channel Funkční

Pole událostí

Name type_name Description
availability_group_id guid ID skupiny dostupnosti.
availability_group_name unicode_string Název skupiny dostupnosti, pokud je k dispozici.
availability_replica_id guid ID repliky dostupnosti.
database_replica_id guid ID databáze dostupnosti.
database_replica_name unicode_string Název databáze dostupnosti.
database_id uint32 ID databáze dostupnosti.
suspend_status suspend_status_type Hodnoty stavu pozastavení.

SUSPEND_NULL

OBNOVENO

SUSPENDED

SUSPENDED_INVALID
suspend_source suspend_source_type Zdroj akce pozastavení nebo obnovení.
suspend_reason unicode_string Důvod pozastavení zachycený ve správci replik databáze.

Definice sezení v alwayson_health

CREATE EVENT SESSION [alwayson_health] ON SERVER
ADD EVENT data_movement_suspend_resume (
    WHERE (
        [suspend_status] = (SUSPENDED)
        OR [suspend_status] = (SUSPENDED_INVALID)
        OR [suspend_status] = (SUSPEND_NULL)
    )
)
ADD TARGET package0.event_file (
    SET filename = N'alwayson_health.xel',
    max_file_size = (5),
    max_rollover_files = (4),
    metadatafile = N'alwayson_health.xem'
)
WITH (
    MAX_MEMORY = 4096 KB,
    EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS,
    MAX_DISPATCH_LATENCY = 30 SECONDS,
    MAX_EVENT_SIZE = 0 KB,
    MEMORY_PARTITION_MODE = NONE,
    TRACK_CAUSALITY = OFF,
    STARTUP_STATE = ON
)
GO

alwayson_ddl_executed

Tato událost nastává, když se příkaz pro definici dat skupiny dostupnosti (DDL) začne vykonávat, včetně CREATE, ALTER, nebo DROP. Událost primárně indikuje problém s uživatelskou akcí na replikě dostupnosti, nebo označuje výchozí bod operační akce. Po této akci následuje provozní problém, například ruční failover, vynucený failover, pozastavený přenos dat nebo obnovený přenos dat.

Informace o události

Column Description
Name alwayson_ddl_execution
Category vždy zapnuté
Channel Analytic

Pole událostí

Name type_name Description
availability_group_id guid ID skupiny dostupnosti.
availability_group_name unicode_string Název skupiny dostupnosti.
ddl_action alwayson_ddl_action Označuje typ DDL akce: CREATE, ALTER, nebo DROP.
ddl_phase ddl_opcode Označuje fázi operace DDL: BEGIN, COMMIT, nebo ROLLBACK.
Statement unicode_string Text prohlášení, které bylo vykonáno.

Definice sezení v alwayson_health

CREATE EVENT SESSION [alwayson_health] ON SERVER
ADD EVENT alwayson_ddl_executed
ADD TARGET package0.event_file (
    SET filename = N'alwayson_health.xel',
    max_file_size = (5),
    max_rollover_files = (4),
    metadatafile = N'alwayson_health.xem'
)
WITH (
    MAX_MEMORY = 4096 KB,
    EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS,
    MAX_DISPATCH_LATENCY = 30 SECONDS,
    MAX_EVENT_SIZE = 0 KB,
    MEMORY_PARTITION_MODE = NONE,
    TRACK_CAUSALITY = OFF,
    STARTUP_STATE = ON
)
GO

dostupnost_replika_správce_stav

Tato událost nastává, když se změní stav správce dostupnosti replik. Ukazuje tep správce replik dostupnosti. Když správce replik dostupnosti není v dobrém stavu, všechny repliky dostupnosti v instanci SQL Server přestanou fungovat.

Informace o události

Column Description
Name availability_replica_manager_state_change
Category vždy zapnuté
Channel Funkční

Pole událostí

Name type_name Description
current_state manager_state Aktuální stav správce replik dostupnosti.

Online

Offline

Čekání na komunikaci clusteru

Definice sezení v alwayson_health

CREATE EVENT SESSION [alwayson_health] ON SERVER
ADD EVENT availability_replica_manager_state (
    WHERE ([current_state] = (OFFLINE))
)
ADD TARGET package0.event_file (
    SET filename = N'alwayson_health.xel',
    max_file_size = (5),
    max_rollover_files = (4),
    metadatafile = N'alwayson_health.xem'
)
WITH (
    MAX_MEMORY = 4096 KB,
    EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS,
    MAX_DISPATCH_LATENCY = 30 SECONDS,
    MAX_EVENT_SIZE = 0 KB,
    MEMORY_PARTITION_MODE = NONE,
    TRACK_CAUSALITY = OFF,
    STARTUP_STATE = ON
)
GO

error_reported (1480): Změna role repliky databáze

Tato filtrovaná error_reported událost nastává asynchronně po změně role repliky dostupnosti. Označuje, která databáze dostupnosti během procesu přepinání nezmění svou očekávanou roli.

Informace o události

Column Description
Name error_reported

Error Number 1480: The REPLICATION_TYPE_MSG database "DATABASE_NAME" is changing roles from "OLD_ROLE" to "NEW_ROLE" due to REASON_MSG
Category chyby
Channel Administrátor

Definice sezení v alwayson_health

CREATE EVENT SESSION [alwayson_health] ON SERVER
ADD EVENT sqlserver.error_reported (
    WHERE (
        --database replica role change message
        OR [error_number] = (1480)
        --database replica runtime error messages
        OR [error_number] = (823)
        OR [error_number] = (824)
        OR [error_number] = (829)
    )
)
ADD TARGET package0.event_file (
    SET filename = N'alwayson_health.xel',
    max_file_size = (5),
    max_rollover_files = (4),
    metadatafile = N'alwayson_health.xem'
)
WITH (
    MAX_MEMORY = 4096 KB,
    EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS,
    MAX_DISPATCH_LATENCY = 30 SECONDS,
    MAX_EVENT_SIZE = 0 KB,
    MEMORY_PARTITION_MODE = NONE,
    TRACK_CAUSALITY = OFF,
    STARTUP_STATE = ON
)
GO

sqlserver.sp_server_diagnostics_component_result

Zaznamenává diagnostická data a informace o stavu SQL Serveru za účelem zjištění potenciálních selhání. Procedura se spouští v režimu opakování a pravidelně odesílá výsledky. Tato rozšířená eventová relace je dostupná od SQL Server 2019 CU15 (15.0.4198.2).

Informace o události

Name Description
Name sp_server_diagnostics_component_result
Category Server
Channel Debug

Pole událostí

Name type_name Description
component uint8 Název komponenty.
state uint8 Označuje stav komponenty.
data xml XML pole obsahující dodatečné informace o komponentě.

Definice sezení v alwayson_health

CREATE EVENT SESSION [alwayson_health] ON SERVER
ADD EVENT sqlserver.sp_server_diagnostics_component_result (
    SET collect_data = (1)
    WHERE ([state] = (3))
)
ADD TARGET package0.event_file (
    SET filename = N'alwayson_health.xel',
        max_file_size = (5),
        max_rollover_files = (4),
        metadatafile = N'alwayson_health.xem'
)
WITH
(
    MAX_MEMORY = 4096 KB,
    EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS,
    MAX_DISPATCH_LATENCY = 30 SECONDS,
    MAX_EVENT_SIZE = 0 KB,
    MEMORY_PARTITION_MODE = NONE,
    TRACK_CAUSALITY = OFF,
    STARTUP_STATE = ON
);
GO

ucs.ucs_connection_setup

Vypíše protokoly týkající se připojení nebo sítě mezi primárními a sekundárními replikami. Tato rozšířená eventová relace je dostupná od SQL Server 2019 CU15 (15.0.4198.2).

Informace o události

Name Description
Name ucs_connection_setup
Category Transport
Channel Debug

Pole událostí

Name type_name Description
setup_event int32 Událost nastavení připojení
obj_address pointer Adresa koncového bodu spojení
endpoint_type int32 Typ koncového bodu
stream_status int32 Stav datového toku připojení
error_number uint32 Chybový kód připojení
connection_id guid ID připojení
error_message unicode_string Chybová zpráva o připojení
address unicode_string Cílová adresa spojení
circuit_id unicode_string Identifikace spojovacího obvodu

Definice sezení v alwayson_health

CREATE EVENT SESSION [alwayson_health] ON SERVER
ADD EVENT ucs.ucs_connection_setup
ADD TARGET package0.event_file (
    SET filename = N'alwayson_health.xel',
        max_file_size = (5),
        max_rollover_files = (4),
        metadatafile = N'alwayson_health.xem'
)
WITH
(
    MAX_MEMORY = 4096 KB,
    EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS,
    MAX_DISPATCH_LATENCY = 30 SECONDS,
    MAX_EVENT_SIZE = 0 KB,
    MEMORY_PARTITION_MODE = NONE,
    TRACK_CAUSALITY = OFF,
    STARTUP_STATE = ON
);
GO

sqlserver.hadr_trace_message

Přesměruje výstup některých příkazů DBCC a informací z logu HADR do rozšířené relace události (podobně jako trace flag 3605). Tato rozšířená eventová relace je dostupná od SQL Server 2019 CU15 (15.0.4198.2).

Informace o události

Name Description
Name hadr_trace_message
Category Vždy zapnuto
Channel Debug

Pole událostí

Name type_name Description
hadr_message unicode_string Přesměruje výstup některých příkazů DBCC a informací z logu HADR do rozšířené relace události (podobně jako trace flag 3605).

Definice sezení v alwayson_health

CREATE EVENT SESSION [alwayson_health] ON SERVER
ADD EVENT sqlserver.hadr_trace_message
ADD TARGET package0.event_file (
    SET filename = N'alwayson_health.xel',
        max_file_size = (5),
        max_rollover_files = (4),
        metadatafile = N'alwayson_health.xem'
)
WITH
(
    MAX_MEMORY = 4096 KB,
    EVENT_RETENTION_MODE = ALLOW_SINGLE_EVENT_LOSS,
    MAX_DISPATCH_LATENCY = 30 SECONDS,
    MAX_EVENT_SIZE = 0 KB,
    MEMORY_PARTITION_MODE = NONE,
    TRACK_CAUSALITY = OFF,
    STARTUP_STATE = ON
);
GO