Zobrazení a čtení protokolu diagnostiky instancí clusteru s podporou převzetí služeb při selhání

platí pro:SQL Server

Všechny kritické chyby a události upozornění pro knihovnu DLL prostředků SQL Server se zapisují do protokolu událostí Windows. Průběžný protokol diagnostických informací specifických pro SQL Server se zaznamenává pomocí systémové uložené procedury sp_server_diagnostics (Transact-SQL) a zapisuje se do souborů protokolu diagnostiky clusteru s podporou převzetí služeb při selhání serveru SQL Server (označovaných také jako protokoly SQLDIAG).

Název souboru, umístění a formát

Ve výchozím nastavení se soubory SQLDIAG ukládají do místní složky LOG v adresáři instance SQL Serveru, například do složky „C\Program Files\Microsoft SQL Server\MSSQL13.<InstanceName>\MSSQL\LOG“ na vlastnickém uzlu instance clusteru s podporou převzetí služeb při selhání Always On (FCI). Maximální velikost každého souboru protokolu SQLDIAG je pevná na 100 MB. Deset takových souborů protokolu je uloženo v počítači před recyklací pro nové protokoly. Název souboru je v následujícím formátu MACHINE_SQLINSTANCE_SQLDIAG_0_xxxxxxxxxxxxxxxxx.xel , kde poslední část xxxxxxxx je automaticky vygenerované číslo. Například pro výchozí instanci by název souboru byl NODE1_MSSQLSERVER_SQLDIAG_0_133177967257760000.xel a pro pojmenovanou instanci by název byl NODE1_SQL2019INST_SQLDIAG_0_133177967257760000.xel

Protokoly používají formát souboru rozšířených událostí. Systémovou sys.fn_xe_file_target_read_file funkci lze použít ke čtení souborů vytvořených rozšířenými událostmi a jejich zobrazení jako sady výsledků. Na každý řádek je vrácena jedna událost ve formátu XML. Další informace naleznete v tématu sys.fn_xe_file_target_read_file (Transact-SQL).

Permissions

VIEW Ke spuštění fn_xe_file_target_read_file je potřeba oprávnění STAV SERVERU.

Otevřete SQL Server Management Studio jako správce.

Použití aplikace SQL Server Management Studio

Zobrazit soubory protokolu diagnostiky:

  1. V nabídce Soubor vyberte Otevřít, Soubor a zvolte soubor diagnostického protokolu, který chcete zobrazit.

  2. Události se zobrazují jako řádky v pravém podokně a ve výchozím nastavení jsou jedinými dvěma zobrazenými sloupci name a timestamp.

    Tím se aktivuje také nabídka ExtendedEvents .

  3. Pokud chcete zobrazit další sloupce, přejděte do nabídky ExtendedEvents a vyberte Zvolit sloupce.

    Otevře se dialogové okno s dostupnými sloupci, které umožňují vybrat sloupce pro zobrazení.

  4. Data události můžete filtrovat a řadit pomocí nabídky ExtendedEvents a vybrat možnost Filtr .

Zobrazení souborů diagnostických protokolů pomocí Transact-SQL

Zobrazit soubory protokolu diagnostiky:

Pokud chcete zobrazit všechny položky protokolu v souboru protokolu SQLDIAG, použijte následující dotaz:

SELECT
  xml_data.value('(event/@name)[1]','varchar(max)') AS 'Name'
  ,xml_data.value('(event/@package)[1]','varchar(max)') AS 'Package'
  ,xml_data.value('(event/@timestamp)[1]','datetime') AS 'Time'
  ,xml_data.value('(event/data[@name=''state'']/value)[1]','int') AS 'State'
  ,xml_data.value('(event/data[@name=''state_desc'']/text)[1]','varchar(max)') AS 'State   Description'
  ,xml_data.value('(event/data[@name=''failure_condition_level'']/value)[1]','int') AS   'Failure Conditions'
  ,xml_data.value('(event/data[@name=''node_name'']/value)[1]','varchar(max)') AS   'Node_Name'
  ,xml_data.value('(event/data[@name=''instancename'']/value)[1]','varchar(max)') AS   'Instance Name'
  ,xml_data.value('(event/data[@name=''creation time'']/value)[1]','datetime') AS 'Creation   Time'
  ,xml_data.value('(event/data[@name=''component'']/value)[1]','varchar(max)') AS   'Component'
  ,xml_data.value('(event/data[@name=''data'']/value)[1]','varchar(max)') AS 'Data'
  ,xml_data.value('(event/data[@name=''info'']/value)[1]','varchar(max)') AS 'Info'
FROM
 ( SELECT object_name AS 'event'
  ,CONVERT(xml,event_data) AS 'xml_data'
  FROM sys.fn_xe_file_target_read_file('C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Log\SQLNODE1_MSSQLSERVER_SQLDIAG_0_129936003752530000.xel',NULL,NULL,NULL)
 )
AS XEventData
ORDER BY Time;

Note

Výsledky můžete filtrovat pro konkrétní komponenty nebo stav pomocí klauzule WHERE.

Nakonfigurujte vlastnosti protokolu diagnostiky pomocí Transact-SQL

Konfigurace vlastností diagnostického protokolu:

Note

Příklad tohoto postupu najdete v části Příklad (Transact-SQL), dále v této části.

Pomocí příkazu DDL (Data Definition Language) můžete spustit nebo zastavit protokolování diagnostických dat zachycených procedurou ALTER SERVER CONFIGURATION a nastavit parametry konfigurace protokolu SQLDIAG, jako je například počet vrácení souboru protokolu, velikost souboru protokolu a umístění souboru. Podrobnosti o syntaxi najdete v tématu Nastavení možností diagnostického protokolu.

Examples

Příklady v této části ukazují, jak nastavit hodnoty pro možnost diagnostického protokolu.

A. Spustit diagnostické protokolování

Následující příklad spustí protokolování diagnostických dat.

ALTER SERVER CONFIGURATION SET DIAGNOSTICS LOG ON;

B. Zastavení protokolování diagnostiky

Následující příklad zastaví protokolování diagnostických dat.

ALTER SERVER CONFIGURATION SET DIAGNOSTICS LOG OFF;

C. Určení umístění diagnostických protokolů

Následující příklad nastaví umístění diagnostických protokolů na zadanou cestu k souboru.

ALTER SERVER CONFIGURATION
SET DIAGNOSTICS LOG PATH = 'C:\logs';

D. Zadejte maximální velikost každého diagnostického protokolu.

Následující příklad nastaví maximální velikost každého diagnostického protokolu na 10 megabajtů.

ALTER SERVER CONFIGURATION
SET DIAGNOSTICS LOG MAX_SIZE = 10 MB;

E. Zkontrolujte, zda je protokol diagnostiky instance clusteru s podporou převzetí služeb při selhání povolen a jaká je jeho aktuální konfigurace.

Následující příklad používá sys.dm_os_server_diagnostics_log_configurations dmv ke kontrole aktuální konfigurace.

SELECT is_enabled, [path], max_size, max_files
FROM sys.dm_os_server_diagnostics_log_configurations;