Melihat dan Membaca Log Diagnostik Instans Kluster Failover

Berlaku untuk:SQL Server

Semua kesalahan penting dan peristiwa peringatan untuk DLL Sumber Daya SQL Server ditulis ke log peristiwa Windows. Catatan log yang terus diperbarui berisi informasi diagnostik khusus untuk SQL Server dicatat oleh prosedur tersimpan sistem sp_server_diagnostics (Transact-SQL) dan ditulis ke file log diagnostik kluster failover SQL Server (juga dikenal sebagai log SQLDIAG).

Sebelum Anda mulai

Nama file, lokasi, dan format

Secara bawaan, SQLDIAG disimpan dalam folder LOG lokal di direktori instans SQL Server, misalnya, 'C\Program Files\Microsoft SQL Server\MSSQL13.<InstanceName>\MSSQL\LOG' pada simpul pemilik Always On Failover Cluster Instance (FCI). Ukuran maksimum setiap file log SQLDIAG diperbaiki pada 100 MB. Sepuluh file log tersebut disimpan di komputer sebelum didaur ulang untuk log baru. Nama file adalah format MACHINE_SQLINSTANCE_SQLDIAG_0_xxxxxxxxxxxxxxxxx.xel berikut di mana bagian terakhir 'xxxxxxxx' adalah angka yang dihasilkan secara otomatis. Misalnya untuk instans default nama file adalah NODE1_MSSQLSERVER_SQLDIAG_0_133177967257760000.xel dan untuk instans bernama, nama tersebut akan menjadi NODE1_SQL2019INST_SQLDIAG_0_133177967257760000.xel

Log tersebut menggunakan format file Extended Events. Fungsi sys.fn_xe_file_target_read_file sistem dapat digunakan untuk membaca file yang dibuat oleh Extended Events dan menampilkannya sebagai tataan hasil. Satu peristiwa, dalam format XML, dikembalikan per baris. Untuk informasi selengkapnya, lihat sys.fn_xe_file_target_read_file (Transact-SQL).

Keamanan

Izin

VIEW Izin STATUS SERVER diperlukan untuk menjalankan fn_xe_file_target_read_file.

Buka SQL Server Management Studio sebagai Administrator

Menggunakan SQL Server Management Studio

Untuk melihat file log Diagnostik:

  1. Dari menu File, pilih Buka, File, dan pilih file log diagnostik yang ingin Anda lihat.

  2. Peristiwa ditampilkan sebagai baris di panel kanan, dan secara bawaan nama dan stempel waktu adalah dua kolom yang ditampilkan.

    Ini juga mengaktifkan menu ExtendedEvents .

  3. Untuk melihat kolom lainnya, buka menu ExtendedEvents , dan pilih Pilih Kolom.

    Kotak dialog terbuka dengan kolom yang tersedia yang memungkinkan Anda memilih kolom untuk ditampilkan.

  4. Anda dapat memfilter, dan mengurutkan data peristiwa menggunakan menu ExtendedEvents dan memilih opsi Filter .

Menampilkan file log diagnostik dengan Transact-SQL

Untuk melihat file log Diagnostik:

Untuk menampilkan semua item log dalam file log SQLDIAG, gunakan kueri berikut:

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;

Catatan

Anda dapat memfilter hasil untuk komponen atau status tertentu menggunakan klausa WHERE.

Mengonfigurasi Properti Log Diagnostik dengan Transact-SQL

Untuk mengonfigurasi properti log Diagnostik:

Catatan

Untuk contoh prosedur ini, lihat Contoh (Transact-SQL), nanti di bagian ini.

Menggunakan pernyataan Bahasa Definisi Data (DDL), ALTER SERVER CONFIGURATION, Anda dapat memulai atau menghentikan pengelogan data diagnostik yang diambil oleh prosedur sp_server_diagnostics (Transact-SQL), dan mengatur parameter konfigurasi log SQLDIAG seperti jumlah rollover file log, ukuran file log, dan lokasi file. Untuk detail sintaks, lihat Mengatur opsi log diagnostik.

Contoh (Transact-SQL)

Mengatur opsi log diagnostik

Contoh di bagian ini menunjukkan cara mengatur nilai untuk opsi log diagnostik.

A. Mulai pembuatan log diagnostik

Contoh berikut memulai pengelogan data diagnostik.

ALTER SERVER CONFIGURATION SET DIAGNOSTICS LOG ON;
B. Menghentikan pembuatan log diagnostik

Contoh berikut menghentikan pengelogan data diagnostik.

ALTER SERVER CONFIGURATION SET DIAGNOSTICS LOG OFF;
C. Tentukan lokasi log diagnostik

Contoh berikut mengatur lokasi log diagnostik ke jalur file yang ditentukan.

ALTER SERVER CONFIGURATION
SET DIAGNOSTICS LOG PATH = 'C:\logs';
D. Tentukan ukuran maksimum setiap log diagnostik

Contoh berikut mengatur ukuran maksimum setiap log diagnostik menjadi 10 megabyte.

ALTER SERVER CONFIGURATION
SET DIAGNOSTICS LOG MAX_SIZE = 10 MB;
E. Periksa apakah Log Diagnostik untuk Failover Cluster Instance diaktifkan dan konfigurasi saat ininya.

Contoh berikut menggunakan DMV sys.dm_os_server_diagnostics_log_configurations untuk memeriksa konfigurasi saat ini

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

Lihat juga