Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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:
V nabídce Soubor vyberte Otevřít, Soubor a zvolte soubor diagnostického protokolu, který chcete zobrazit.
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 .
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í.
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;