장애 조치(failover) 클러스터 인스턴스 진단 로그 보기 및 읽기
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 폴더(예: '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 사용
진단 로그 파일을 보려면:
파일 메뉴에서 열기, 파일을 선택하고, 보려는 진단 로그 파일을 선택합니다.
이벤트가 오른쪽 창에 행으로 표시되며, 기본적으로 이름 및 타임스탬프 열만 표시됩니다.
또한 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\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;