장애 조치(failover) 클러스터 인스턴스 진단 로그 보기 및 읽기

SQL Server 리소스 DLL에 대한 모든 오류 및 경고 이벤트는 Windows 이벤트 로그에 기록됩니다. sp_server_diagnostics (Transact-SQL) 시스템 저장 프로시저에서 캡처된 SQL Server 관련 진단 정보의 실행 로그는 SQL Server 장애 조치(failover) 클러스터 진단(SQLDIAG 로그라고도 함) 로그 파일에 기록됩니다.

시작하기 전에

권장 사항

기본적으로 SQLDIAG는 SQL Server 인스턴스 디렉터리의 로컬 LOG 폴더(예: 'C\Program Files\Microsoft SQL Server\MSSQL12)에 저장됩니다.<AlwaysOn FCI(장애 조치(failover) 클러스터 인스턴스)의 소유 노드에 대한 InstanceName>\MSSQL\LOG' 각 SQLDIAG 로그 파일의 크기는 100MB로 고정됩니다. 이러한 로그 파일 10개가 컴퓨터에 저장된 후 새 로그에 재활용됩니다.

로그는 확장 이벤트 파일 형식을 사용합니다. sys.fn_xe_file_target_read_file 시스템 함수를 사용하여 확장 이벤트에서 만든 파일을 읽을 수 있습니다. 행마다 하나의 이벤트가 XML 형식으로 반환됩니다. 시스템 뷰를 쿼리하여 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 사용

진단 로그 파일을 보려면:

  1. 파일 메뉴에서 열기, 파일을 선택하고, 보려는 진단 로그 파일을 선택합니다.

  2. 이벤트가 오른쪽 창에 행으로 표시되며, 기본적으로 이름타임스탬프 열만 표시됩니다.

    또한 ExtendedEvents 메뉴도 활성화됩니다.

  3. 더 많은 열을 보려면 ExtendedEvents 메뉴로 이동하고, 열 선택을 선택합니다.

    대화 상자가 열리고 사용 가능한 열이 나열됩니다. 그 중에서 표시할 열을 선택할 수 있습니다.

  4. 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\MSSQL12.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)

Setting diagnostic log options

이 섹션의 예에서는 진단 로그 옵션 값을 설정하는 방법을 보여 줍니다.

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;  

참고 항목

Failover Policy for Failover Cluster Instances