장애 조치(failover) 클러스터 인스턴스 진단 로그 보기 및 읽기
적용 대상: SQL Server
SQL Server 리소스 DLL에 대한 모든 오류 및 경고 이벤트는 Windows 이벤트 로그에 기록됩니다. sp_server_diagnostics (Transact-SQL) 시스템 저장 프로시저에서 캡처된 SQL Server 관련 진단 정보의 실행 로그는 SQL Server 장애 조치(failover) 클러스터 진단(SQLDIAG 로그라고도 함) 로그 파일에 기록됩니다.
시작하기 전: 파일 이름, 위치 및 형식, 보안
진단 로그를 보려면 다음을 사용: SQL Server Management Studio, Transact-SQL
진단 로그 설정을 구성하려면 다음을 사용: Transact-SQL
시작하기 전에
파일 이름, 위치 및 형식
기본적으로 SQLDIAG는 SQL Server 인스턴스 디렉터리의 로컬 LOG 폴더(예: Always On FCI(장애 조치(failover) 클러스터 인스턴스) 소유 노드의 ‘C\Program Files\Microsoft SQL Server\MSSQL13.<InstanceName>\MSSQL\LOG’)에 저장됩니다. 각 SQLDIAG 로그 파일의 최대 크기는 100MB로 고정됩니다. 이러한 로그 파일 10개가 컴퓨터에 저장된 후 새 로그에 재활용됩니다. 파일 이름은 MACHINE_SQLINSTANCE_SQLDIAG_0_xxxxxxxxxxxxxxxxx.xel
형식이며 마지막 'xxxxxxxx' 파트는 자동으로 생성되는 숫자입니다. 예를 들어 기본 인스턴스의 파일 이름은 NODE1_MSSQLSERVER_SQLDIAG_0_133177967257760000.xel
이고 명명된 인스턴스의 파일 이름은 NODE1_SQL2019INST_SQLDIAG_0_133177967257760000.xel
입니다.
로그는 확장 이벤트 파일 형식을 사용합니다. sys.fn_xe_file_target_read_file
시스템 함수를 사용하여 확장 이벤트에서 만든 파일을 읽고 결과 집합으로 표시할 수 있습니다. 행마다 하나의 이벤트가 XML 형식으로 반환됩니다. 자세한 내용은 sys.fn_xe_file_target_read_file(Transact-SQL)을 참조하세요.
보안
사용 권한
fn_xe_file_target_read_file을 실행하려면 VIEW SERVER STATE 권한이 필요합니다.
관리자 권한으로 SQL Server Management Studio 열기
SQL Server Management Studio 사용
진단 로그 파일을 보려면:
파일 메뉴에서 열기, 파일을 선택하고, 보려는 진단 로그 파일을 선택합니다.
이벤트가 오른쪽 창에 행으로 표시되며, 기본적으로 이름 및 타임스탬프 열만 표시됩니다.
또한 ExtendedEvents 메뉴도 활성화됩니다.
더 많은 열을 보려면 ExtendedEvents 메뉴로 이동하고, 열 선택을 선택합니다.
대화 상자가 열리고 사용 가능한 열이 나열됩니다. 그 중에서 표시할 열을 선택할 수 있습니다.
ExtendedEvents 메뉴를 사용하여 이벤트 데이터를 필터링 및 정렬하고 필터 옵션을 선택할 수 있습니다.
Transact-SQL을 사용하여 진단 로그 파일 보기
진단 로그 파일을 보려면:
SQLDIAG 로그 파일의 모든 로그 항목을 보려면 다음 쿼리를 사용합니다.
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;
참고
WHERE 절을 사용하여 특정 구성 요소 또는 상태에 대한 결과를 필터링할 수 있습니다.
Transact-SQL을 사용하여 진단 로그 속성 구성
진단 로그 속성을 구성하려면:
참고
이 절차의 예시는 이 섹션 후반부의 예제(Transact-SQL)를 참조하세요.
DDL(데이터 정의 언어) 문, ALTER SERVER CONFIGURATION을 사용하여 sp_server_diagnostics(Transact-SQL) 프로시저에서 캡처된 진단 데이터의 로깅을 시작하거나 중지하고 로그 파일 롤오버 수, 로그 파일 크기 및 파일 위치와 같은 SQLDIAG 로그 구성 매개 변수를 설정할 수 있습니다. 구문에 대한 자세한 내용은 Setting diagnostic log options을 참조하세요.
예시(Transact-SQL)
진단 로그 옵션 설정
이 섹션의 예에서는 진단 로그 옵션 값을 설정하는 방법을 보여 줍니다.
A. 진단 로깅 시작
다음 예에서는 진단 데이터의 로깅을 시작합니다.
ALTER SERVER CONFIGURATION SET DIAGNOSTICS LOG ON;
B. 진단 로깅 중지
다음 예에서는 진단 데이터의 로깅을 중지합니다.
ALTER SERVER CONFIGURATION SET DIAGNOSTICS LOG OFF;
C. 진단 로그의 위치 지정
다음 예에서는 진단 로그의 위치를 지정된 파일 경로로 설정합니다.
ALTER SERVER CONFIGURATION
SET DIAGNOSTICS LOG PATH = 'C:\logs';
D. 각 진단 로그의 최대 크기 지정
다음 예에서는 각 진단 로그의 최대 크기를 10MB로 설정합니다.
ALTER SERVER CONFIGURATION
SET DIAGNOSTICS LOG MAX_SIZE = 10 MB;
E. 장애 조치(failover) 클러스터 인스턴스 진단 로그가 사용하도록 설정되어 있는지 여부와 현재 구성을 확인합니다.
다음 예제에서는 dmv sys.dm_os_server_diagnostics_log_configurations를 사용하여 현재 구성을 확인합니다.
SELECT is_enabled, [path], max_size, max_files
FROM sys.dm_os_server_diagnostics_log_configurations;