적용 대상:SQL Server
SQLdiag 유틸리티는 콘솔 애플리케이션 또는 서비스로 실행할 수 있는 범용 진단 컬렉션 유틸리티입니다. SQLdiag를 사용하여 SQL Server 및 기타 서버 유형에서 로그 및 데이터 파일을 수집할 수 있으며 이러한 파일을 사용하여 지속적으로 서버를 모니터링하거나 특정 서버 문제를 해결할 수 있습니다. SQLdiag는 Microsoft 고객 지원 서비스에서 진단 정보를 빠르고 간편하게 수집할 수 있도록 지원하는 유틸리티입니다.
참고
이 유틸리티가 변경될 수 있으며 명령줄 인수 또는 동작을 사용하는 애플리케이션 또는 스크립트가 향후 릴리스에서 제대로 작동하지 않을 수 있습니다.
SQLdiag는 다음과 같은 유형의 진단 정보를 수집할 수 있습니다.
- Windows 성능 로그
- Windows 이벤트 로그
- SQL Server 프로파일러 추적
- SQL Server 차단 정보
- SQL 서버 구성 정보
다음 섹션에 설명된 구성 파일을 SQLdiag.xml편집하여 SQLdiag에서 수집할 정보 유형을 지정할 수 있습니다.
구문
sqldiag
{ [ /? ] }
|
{
[ /I configuration_file ]
[ /O output_folder_path ]
[ /P support_folder_path ]
[ /N output_folder_management_option ]
[ /M machine1 [ machine2 machineN ] | @machinelistfile ]
[ /C file_compression_type ]
[ /B [+]start_time ]
[ /E [+]stop_time ]
[ /A SQLdiag_application_name ]
[ /T { tcp [ ,port ] | np | lpc } ]
[ /Q ] [ /G ] [ /R ] [ /U ] [ /L ] [ /X ]
}
|
{ [ START | STOP | STOP_ABORT ] }
|
{ [ START | STOP | STOP_ABORT ] /A SQLdiag_application_name }
논쟁
/?
사용 정보를 표시합니다.
/ 구성_파일
SQLdiag에서 사용할 구성 파일을 설정합니다. 기본적으로 /I는 SQLdiag.xml값으로 설정됩니다.
/O output_folder_path
SQLdiag 출력을 지정된 폴더로 리디렉션합니다. 옵션을 지정하지 않으면 SQLdiag 출력이 SQLdiag 시작 폴더 아래에 있는 SQLDIAG 하위 폴더에 기록됩니다./O 폴더가 SQLDIAG 없으면 SQLdiag 에서 폴더를 만들려고 시도합니다.
참고
출력 폴더 위치는 /P으로 지정할 수 있는 지원 폴더 위치를 기준으로 합니다. 출력 폴더에 대해 완전히 다른 위치를 설정하려면 에 대한 전체 디렉터리 경로를 /O지정합니다.
/P support_folder_path
지원 폴더 경로를 설정합니다. 기본적으로 /PSQLdiag 실행 파일이 있는 폴더로 설정됩니다. 지원 폴더에는 XML 구성 파일, Transact-SQL 스크립트 및 진단 수집 중에 유틸리티가 사용하는 기타 파일과 같은 SQLdiag 지원 파일이 포함됩니다. 이 옵션을 사용하여 대체 지원 파일 경로를 지정하는 경우 SQLdiag 는 필요한 지원 파일을 지정된 폴더에 복사합니다(아직 없는 경우).
현재 폴더를 지원 경로로 설정하려면 명령줄에서 다음과 같이 지정 %cd% 합니다.
sqldiag /P %cd%
/N output_folder_management_option
SQLdiag가 시작될 때 출력 폴더를 덮어쓰거나 이름을 바꿀지 여부를 설정합니다. 사용 가능한 옵션:
- 1 = 출력 폴더를 덮어씁니다(기본값).
- 2 = SQLdiag가 시작되면 출력 폴더 이름을
SQLDIAG_00001,SQLDIAG_00002등으로 변경합니다. 현재 출력 폴더의 이름을 변경한 후 SQLdiag 는 출력을 기본 출력 폴더SQLDIAG에 씁니다.
SQLdiag 는 시작할 때 현재 출력 폴더에 출력을 추가하지 않습니다. 기본 출력 폴더(옵션 1)만 덮어쓰거나 폴더 이름을 바꿀 수 있습니다(옵션 2). 그런 다음 새 SQLDIAG기본 출력 폴더에 출력을 씁니다.
/M machine1 [ machine2machineN ] | @machinelistfile
구성 파일에 지정된 장치들을 재정의합니다. 기본적으로 구성 파일은 SQLdiag.xml 이며, /I 매개 변수로 설정될 수도 있습니다. 둘 이상의 컴퓨터를 지정할 때는 각 컴퓨터 이름을 공백으로 구분합니다.
@machinelistfile 옵션은 구성 파일에 저장할 컴퓨터 목록 파일 이름을 지정합니다.
/C 파일_압축_유형
SQLdiag 출력 폴더 파일에서 사용되는 파일 압축 유형을 설정합니다. 사용 가능한 옵션:
- 0 = 없음(기본값)
- 1 = NTFS 압축 사용
/B [+]start_time
진단 데이터 수집을 시작할 날짜 및 시간을 다음 형식으로 지정합니다. yyyyMMdd_HH:mm:ss
시간은 24시간 표기법을 사용하여 지정됩니다. 예를 들어 오후 2:00을 로 지정 14:00:00해야 합니다.
날짜(HH:mm:ss에만 해당)를 사용하지 않고 현재 + 날짜 및 시간을 기준으로 하는 시간을 지정합니다. 예를 들어 지정 /B +02:00:00하는 경우 SQLdiag 는 정보 수집을 시작하기 2시간 전에 대기합니다.
지정한 start_time 사이에 + 공백을 삽입하지 마세요.
지정한 시작 시간이 과거일 경우 SQLdiag 에서 강제로 시작 날짜를 변경하여 시작 날짜와 시간을 미래 시간으로 설정합니다. 예를 들어 지정 /B 01:00:00 하고 현재 시간이 08:00:00인 경우 SQLdiag 는 시작 날짜를 강제로 변경하여 시작 날짜가 다음 날이 되도록 합니다.
SQLdiag 는 유틸리티가 실행 중인 컴퓨터에서 현지 시간을 사용합니다.
/E [+]stop_time
진단 데이터 수집을 중지할 날짜 및 시간을 다음 형식으로 지정합니다. yyyyMMdd_HH:mm:ss
시간은 24시간 표기법을 사용하여 지정됩니다. 예를 들어 오후 2:00을 로 지정 14:00:00해야 합니다.
날짜(HH:mm:ss에만 해당)를 사용하지 않고 시작+ 날짜 및 시간을 기준으로 하는 시간을 지정합니다. 예를 들어 시작 시간과 종료 시간을 사용하여 /B +02:00:00 /E +03:00:00지정하는 경우 SQLdiag 는 정보 수집을 시작하기 전에 2시간을 기다린 다음 3시간 동안 정보를 수집한 후 중지하고 종료합니다.
/B가 지정되지 않으면, SQLdiag는 진단 수집을 즉시 시작하며, /E에 지정된 날짜 및 시간에 종료됩니다.
지정한 start_time 또는 end_time 사이에 + 공백을 삽입하지 마세요.
SQLdiag 는 유틸리티가 실행 중인 컴퓨터에서 현지 시간을 사용합니다.
/A SQLdiag_application_name
동일한 SQL Server 인스턴스에 대해 여러 SQLdiag 유틸리티 인스턴스를 실행할 수 있도록 합니다.
각 SQLdiag_application_name 은 서로 다른 SQLdiag인스턴스를 식별합니다. SQLdiag_application_name 인스턴스와 SQL Server 인스턴스 이름 사이에는 관계가 없습니다.
SQLdiag_application_name을 사용하여 SQLdiag 서비스의 특정 인스턴스를 시작하거나 중지할 수 있습니다.
이 예제에서는 SQLdiag_application_name을 적절한 값으로 <SQLdiag_application_name>로 바꿉니다.
sqldiag START /A <SQLdiag_application_name>
SQLdiag의 /R 특정 인스턴스를 서비스로 등록하는 옵션과 함께 사용할 수도 있습니다. 이 예제에서는 <SQLdiag_application_name>를 적절한 SQLdiag_application_name 값으로 교체하십시오.
sqldiag /R /A <SQLdiag_application_name>
참고
SQLdiag 는 SQLdiag_application_name 지정된 인스턴스 이름 앞에 자동으로 접두 DIAG$ 사를 추가합니다. 이는 SQLdiag를 서비스로 등록하는 경우 합리적인 서비스 이름을 제공합니다.
/T 프로토콜
다음 프로토콜 값 중 하나를 사용하여 SQL Server 인스턴스에 연결합니다.
| 프로토콜(및 포트) | 설명 |
|---|---|
| tcp [ ,port ] | TCP/IP(Transmission Control Protocol/Internet Protocol)입니다. 선택 사항으로 연결할 포트 번호를 지정할 수 있습니다. |
| np | 명명된 파이프 기본적으로 SQL Server의 기본 인스턴스는 명명된 파이프 \\.\pipe\sql\query 및 \\.\pipe\MSSQL$<instancename>\sql\query에서 명명된 인스턴스를 수신합니다. 대체 파이프 이름을 사용하여 SQL Server 인스턴스에 연결할 수 없습니다. |
| lpc | 로컬 프로시저 호출입니다. 클라이언트가 동일한 컴퓨터의 SQL Server 인스턴스에 연결하는 경우 공유 메모리 프로토콜을 사용할 수 있습니다. |
/Q
조용한 모드에서 SQLdiag를 실행합니다.
/Q 는 암호 프롬프트와 같은 모든 프롬프트를 표시하지 않습니다.
/G
제네릭 모드에서 SQLdiag 를 실행합니다. 지정된 경우 /G 시작 시 SQLdiag 는 SQL Server 연결 검사를 적용하거나 사용자가 sysadmin 고정 서버 역할의 멤버인지 확인하지 않습니다. 대신, SQLdiag는 사용자가 요청된 각 진단을 수집할 수 있는 적절한 권한이 있는지 여부를 확인하기 위해 Windows로 연기합니다.
지정되지 않은 경우 /GSQLdiag 는 사용자가 Windows Administrators 그룹의 구성원인지 여부를 확인하고 사용자가 Administrators 그룹 구성원이 아닌 경우 SQL Server 진단을 수집하지 않습니다.
/R
SQLdiag 를 서비스로 등록합니다. SQLdiag 를 서비스로 등록할 때 지정하는 모든 명령줄 인수는 나중에 서비스를 실행할 때 사용할 수 있도록 보관됩니다.
SQLdiag가 서비스로 등록되면 기본 서비스 이름은 .입니다SQLDIAG. 인수를 사용하여 /A 서비스 이름을 변경할 수 있습니다.
START 명령줄 인수를 사용하여 서비스를 시작합니다.
sqldiag START
이 명령을 사용하여 net start 서비스를 시작할 수도 있습니다.
net start SQLDIAG
/U
SQLdiag를 서비스로 등록 취소합니다.
명명된 /ASQLdiag 인스턴스의 등록을 취소하는 경우에도 인수를 사용합니다.
/L
/B 또는 /E 인수와 함께 각각 시작 시간이나 종료 시간이 지정된 경우, 연속 모드에서 SQLdiag를 실행합니다. 예약된 종료로 인해 진단 정보 수집이 중지되면SQLdiag 가 자동으로 다시 시작됩니다. 예를 들어, /E 또는 /X 인수를 사용하여.
참고
SQLdiag는 /B 및 /E 명령줄 인수를 사용하여 시작 시간 또는 종료 시간이 지정되지 않은 경우 /L 인수를 무시합니다.
사용 /L 은 서비스 모드를 의미하지 않습니다.
SQLdiag를 서비스로 실행할 때 사용 /L 하려면 서비스를 등록할 때 명령줄에 지정합니다.
/X
스냅샷 모드에서 SQLdiag를 실행합니다. SQLdiag는 구성된 모든 진단의 스냅샷을 생성한 다음 자동으로 종료됩니다.
START | STOP | STOP_ABORT
SQLdiag 서비스를 시작하거나 중지합니다.
STOP_ABORT 는 현재 수집 중인 진단 수집을 완료하지 않고 서비스가 가능한 한 빨리 종료되도록 합니다.
이러한 서비스 제어 인수를 사용하는 경우 명령줄에서 사용되는 첫 번째 인수여야 합니다. 예시:
sqldiag START
/A
SQLdiag의 명명된 인스턴스를 지정하는 인수만 START, STOP, 또는 STOP_ABORT과 함께 사용하여 SQLdiag 서비스의 특정 인스턴스를 제어할 수 있습니다. 이 예제에서는 SQLdiag_application_name 적절한 값으로 바꿉 <SQLdiag_application_name> 다.
sqldiag START /A <SQLdiag_application_name>
보안 요구 사항
SQLdiag가 일반 모드에서 실행되지 않는 한(명령줄 인수를 지정하여/G) SQLdiag를 실행하는 사용자는 Windows Administrators 그룹의 멤버이자 SQL Server sysadmin 고정 서버 역할의 멤버여야 합니다. 기본적으로 SQLdiag에서는 Windows 인증을 사용하여 SQL Server에 연결하지만 SQL Server 인증도 지원합니다.
성능 고려 사항
SQLdiag 실행의 성능 효과는 수집하도록 구성한 진단 데이터의 유형에 따라 달라집니다. 예를 들어 SQL Server Profiler 추적 정보를 수집하도록 SQLdiag를 구성한 경우 추적하도록 선택하는 이벤트 클래스가 많을수록 서버 성능에 더 많은 영향을 줍니다.
SQLdiag를 실행할 때 성능에 주는 영향은 구성한 진단 정보를 개별적으로 수집할 때 드는 노력을 모두 합한 것과 거의 같습니다. 예를 들어 SQLdiag를 사용하여 추적을 수집하면 SQL Server Profiler를 사용하여 추적을 수집하는 것과 동일한 성능 비용이 발생합니다. SQLdiag 사용의 성능 영향은 무시할 수 있습니다.
필요한 디스크 공간
SQLdiag는 다양한 유형의 진단 정보를 수집할 수 있으므로 SQLdiag를 실행하는 데 필요한 사용 가능한 디스크 공간은 다양합니다. 수집되는 진단 정보의 양은 서버가 처리하는 워크로드의 특성과 볼륨에 따라 달라지고 몇 메가바이트에서 몇 기가바이트까지 다양할 수 있습니다.
구성 파일
시작 시 SQLdiag는 지정된 구성 파일 및 명령줄 인수를 읽습니다. 사용자는 구성 파일에 SQLdiag 가 구성 파일에 수집할 진단 정보 유형을 지정합니다. 기본적으로 SQLdiag 는 도구가 SQLdiag.xml 실행될 때마다 추출되고 SQLdiag 유틸리티 시작 폴더에 있는 구성 파일을 사용합니다. 구성 파일은 SQLdiag가 실행될 때마다 실행 파일에서 유틸리티 시작 디렉터리로 추출되는 XML 스키마 SQLDiag_schema.xsd를 사용합니다.
구성 파일 편집
복사하고 편집 SQLdiag.xml 하여 SQLdiag 에서 수집하는 진단 데이터 형식을 변경할 수 있습니다. 구성 파일을 편집할 때는 항상 Management Studio와 같은 XML 스키마에 대해 구성 파일의 유효성을 검사할 수 있는 XML 편집기를 사용합니다.
SQLdiag.xml를 직접 편집해서는 안 됩니다. 대신 복사본을 SQLdiag.xml 만들고 이름을 같은 폴더의 새 파일 이름으로 바꿉니다. 그런 다음 새 파일을 편집하고 인수를 /I 사용하여 SQLdiag에 전달합니다.
SQLdiag가 서비스로 실행되면 구성 파일 편집
SQLdiag를 서비스로 이미 실행하고 구성 파일을 편집해야 하는 경우 명령줄 인수를 지정하여 /U 서비스의 등록을 취소 SQLDIAG 한 다음 명령줄 인수를 사용하여 /R 서비스를 다시 등록합니다. 서비스를 등록 취소하고 다시 등록하면 Windows 레지스트리에 캐시된 이전 구성 정보가 제거됩니다.
출력 폴더
인수를 /O 사용하여 출력 폴더를 지정하지 않으면 SQLdiag에서 SQLdiag 시작 폴더 아래에 이름이 지정된 SQLDIAG 하위 폴더를 만듭니다. SQL Server Profiler와 같은 대용량 추적이 포함된 진단 정보 수집의 경우 요청된 진단 출력을 저장할 충분한 공간이 있는 로컬 드라이브에 출력 폴더가 있는지 확인합니다.
SQLdiag를 다시 시작하면 현재 출력 폴더의 내용을 덮어씁니다. 이를 방지하려면 명령줄에 지정 /N 2 합니다.
데이터 수집 프로세스
SQLdiag가 시작되면 지정된 진단 데이터를 SQLdiag.xml수집하는 데 필요한 초기화 검사를 수행합니다. 이 프로세스는 몇 초 정도 걸릴 수 있습니다.
SQLdiag가 콘솔 애플리케이션으로 실행될 때 진단 데이터 수집을 시작한 후 SQLdiag 컬렉션이 시작되었으며 Ctrl+C를 눌러 중지할 수 있음을 알리는 메시지가 표시됩니다.
SQLdiag가 서비스로 실행되면 유사한 메시지가 Windows 이벤트 로그에 기록됩니다.
SQLdiag를 사용하여 재현할 수 있는 문제를 진단하는 경우 서버에서 문제를 재현하기 전에 이 메시지가 나타날 때까지 기다립니다.
SQLdiag 에서는 대부분의 진단 데이터를 병렬로 수집합니다. Windows 성능 로그 및 이벤트 로그에서 정보를 수집하는 경우를 제외하고 모든 진단 정보는 SQL Server sqlcmd 유틸리티 또는 Windows 명령 프로세서와 같은 도구에 연결하여 수집합니다. SQLdiag는 컴퓨터당 하나의 작업자 스레드를 사용하여 이러한 다른 도구의 진단 데이터 수집을 모니터링하며, 종종 여러 도구가 완료되기를 동시에 대기합니다. 수집이 진행되는 동안 SQLdiag 는 각 진단의 출력을 출력 폴더로 라우팅합니다.
데이터 수집 중지
SQLdiag에서 진단 데이터 수집을 시작한 후 수동으로 중지Ctrl+C하거나 파일을 만들 sqldiag.stop 거나 지정된 시간에 중지하도록 구성하지 않는 한 계속 수행됩니다.
/E 인수를 사용하여 특정 시간에 중지하도록 SQLdiag를 설정할 수 있으며, /X 인수를 사용하면 SQLdiag가 스냅샷 모드에서 실행됩니다.
SQLdiag가 중지되면 시작된 모든 진단이 중지됩니다. 예를 들어 수집 중인 SQL Server Profiler 추적이 중지되고 실행 중인 Transact-SQL 스크립트 실행이 중지되며 데이터를 수집하는 동안 발생한 모든 하위 프로세스가 중지됩니다. 진단 데이터 수집이 완료되면 SQLdiag 가 종료됩니다.
콘솔 애플리케이션으로 실행할 때 SQLdiag 중지
SQLdiag를 콘솔 애플리케이션으로 실행하는 경우 SQLdiag가 실행 중인 콘솔 창에서 Ctrl+C를 눌러 중지합니다. Ctrl+C를 누르면 SQLdiag 데이터 수집이 종료되고 프로세스가 종료될 때까지 기다려야 하며 몇 분 정도 걸릴 수 있음을 알리는 메시지가 콘솔 창에 표시됩니다.
Ctrl+C를 두 번 눌러 모든 자식 진단 프로세스를 종료하고 즉시 애플리케이션을 종료합니다.
서비스로 실행할 때 SQLdiag 중지
SQLdiag를 서비스로 실행하는 경우 SQLdiag 시작 폴더에서 실행 sqldiag STOP 하여 중지합니다. 또는 Services.msc 애플릿에서 SQLdiag 서비스를 중지할 수 있습니다.
참고
SQLdiag 서비스 일시 중지는 지원되지 않습니다.
SQLdiag 서비스를 일시 중지하려고 하면 SQLdiag 서비스를 일시 중지할 때 수집한 진단 수집이 완료된 후 중지됩니다.
SQLdiag를 중지한 후 다시 시작하면 애플리케이션이 다시 시작되고 출력 폴더를 덮어씁니다. 출력 폴더를 덮어쓰지 않도록 하려면 명령줄에 지정 /N 2 합니다.
동일한 컴퓨터에서 여러 SQLdiag 인스턴스를 실행하는 경우 서비스를 중지할 때 명령줄에 SQLdiag 인스턴스 이름을 전달할 수도 있습니다. 예를 들어 Instance1이라는 SQLdiag 인스턴스를 중지하려면 다음 구문을 사용합니다.
sqldiag STOP /A Instance1
/A는 , STOP또는 STOP_ABORT.와 함께 START사용할 수 있는 유일한 명령줄 인수입니다. 서비스 제어 동사 중 하나를 사용하여 명명된 SQLdiag 인스턴스를 지정해야 하는 경우 이전 구문 예제와 같이 명령줄의 컨트롤 동사 뒤를 지정 /A 합니다. 제어 동사를 사용하는 경우 명령줄의 첫 번째 인수여야 합니다.
서비스를 가능한 한 빨리 중지하려면 유틸리티 시작 폴더에서 실행 sqldiag STOP_ABORT 합니다. 이 명령은 완료될 때까지 기다리지 않고 현재 수행 중인 진단 수집을 중단합니다.
참고
sqldiag STOP 또는 sqldiag STOP_ABORT를 사용하여 SQLdiag 서비스를 중지합니다. Windows 서비스 콘솔을 사용하여 SQLdiag 또는 기타 SQL Server 서비스를 중지하지 마세요.
sqldiag.stop 파일을 사용하여 SQLdiag 중지
또한 SQLdiag는 유틸리티의 \Output 폴더에 이름이 지정된 sqldiag.stop 파일을 찾으면 자동으로 종료됩니다. 이 옵션은 SQLdiag 가 콘솔 앱 또는 서비스로 실행되는지 여부에 관계없이 적용됩니다.
.stop 일부 이벤트가 발생한 후 프로그래밍 방식으로 SQLdiag를 종료하려는 경우 파일을 만드는 것이 유용할 수 있지만 이 이벤트가 발생하는 시간을 미리 알 수는 없습니다.
sqldiag.stop 파일의 내용은 관련이 없습니다. 파일을 수동으로 만드는 것 외에도 한 가지 옵션은 생성할 일괄 처리 파일에서 다음과 같은 명령을 사용하는 것입니다. sqldiag.stop
ECHO stop > F:\PSSDIAG\Output\sqldiag.stop
또 다른 옵션은 PowerShell을 사용하는 것입니다.
Set-Content -Value "stop" -Path "F:\PSSDIAG\Output\sqldiag.stop"
자동으로 SQLdiag 시작 및 중지
지정된 시간에 진단 데이터 수집을 자동으로 시작하고 중지하려면 24시간 표기법을 사용하여 인수와 /E <stop_time> 인수를 사용합니다/B <start_time>. 예를 들어 약 02:00:00에 일관되게 나타나는 문제를 해결하는 경우 01:45에 진단 데이터 수집을 자동으로 시작하고 03:00:00에 자동으로 중지하도록 SQLdiag 를 구성할 수 있습니다.
/B 및 /E 인수를 사용하여 시작 및 중지 시간을 지정합니다. 24시간 표기법을 사용하여 일반적인 형식인 yyyyMMdd_HH:mm:ss로 정확한 시작 및 중지 날짜 및 시간을 지정합니다. 다음 예제에서는 01:45에 데이터 수집을 시작하고 3:00에 중지합니다.
sqldiag /B 01:45:00 /E 03:00:00
상대 시작 또는 중지 시간을 지정하려면 다음 예제와 같이 시작 및 중지 시간을 접두사로 + 사용하고 날짜 부분(yyyyMMdd_)을 생략합니다. 이로 인해 SQLdiag 는 정보 수집을 시작하기 전에 1시간 동안 기다린 다음, 중지하고 종료하기 전에 2시간 반 동안 정보를 수집합니다.
sqldiag /B +01:00:00 /E +02:30:00
상대적인 start_time을 지정하면 현재 날짜 및 시간에 대한 상대 시간에 SQLdiag가 시작됩니다. 상대적인 end_time 을 지정하면 지정한 start_time 에 대한 상대 시간에 SQLdiag가 종료됩니다. 지정한 시작 및 종료 시간이 과거일 경우 SQLdiag 에서 강제로 시작 날짜를 변경하여 시작 날짜와 시간을 미래 시간으로 설정합니다.
이는 선택한 시작 날짜와 종료 날짜에 중요한 영향을 미칩니다. 다음 예시를 참조하세요.
sqldiag /B +01:00:00 /E 08:30:00
현재 시간이 08:00이면 진단 수집이 시작되기 전에 종료 시간이 지나갑니다.
SQLdiag는 시작 및 종료 날짜를 과거에 발생한 다음 날로 자동으로 조정하므로 이 예제에서 진단 수집은 오늘 09:00에 시작되고(현재 사용 +후 1시간 후에 상대 시작 시간이 지정됨) 다음 날 아침 08:30까지 수집을 계속합니다.
SQLdiag를 중지하고 다시 시작하여 일일 진단 수집
SQLdiag를 수동으로 시작하고 중지하지 않고도 매일 지정된 진단 집합을 수집하려면 인수를 /L 사용합니다. 이 /L 인수를 사용하면 예약된 종료 후 자동으로 다시 시작하여 SQLdiag 가 지속적으로 실행됩니다.
/L 지정되고 인수로 지정된 /E 종료 시간에 도달했거나 인수를 사용하여 /X 스냅샷 모드에서 실행 중이기 때문에 SQLdiag가 중지되면 SQLdiag는 종료하는 대신 다시 시작됩니다.
다음 예제에서는 진단 데이터 수집이 03:00:00~05:00:00 사이에 발생한 후 SQLdiag가 연속 모드로 실행되어 자동으로 다시 시작되도록 지정합니다.
sqldiag /B 03:00:00 /E 05:00:00 /L
다음 예제에서는 03:00:00에 진단 데이터 스냅샷을 생성한 후 SQLdiag가 연속 모드로 실행되어 자동으로 다시 시작되도록 지정합니다.
sqldiag /B 03:00:00 /X /L
SQLdiag를 서비스로 실행
SQLdiag를 사용하여 오랜 시간 동안 진단 데이터를 수집하려는 경우 SQLdiag가 실행 중인 컴퓨터에서 로그아웃해야 하는 경우 서비스로 실행할 수 있습니다.
SQLdiag를 등록하여 서비스로 실행
명령줄에서 인수를 지정하여 서비스로 실행되도록 SQLdiag 를 /R 등록할 수 있습니다. 그러면 SQLDiag 가 서비스로 실행되도록 등록됩니다.
SQLdiag 서비스 이름은 SQLDIAG.
SQLdiag를 서비스로 등록할 때 명령줄에 지정한 다른 인수는 서비스가 시작될 때 유지되고 다시 사용됩니다.
기본 SQLDIAG 서비스 이름을 변경하려면 명령줄 인수를 /A 사용하여 다른 이름을 지정합니다.
SQLdiag 는 합리적인 서비스 이름을 만들기 위해 지정된 모든 SQLdiag 인스턴스 이름에 DIAG$를 자동으로 접두사로 /A 지정합니다.
SQLDIAG 서비스 등록 취소
서비스 등록을 취소하려면 인수를 지정합니다 /U .
SQLdiag를 서비스로 등록 취소하면 서비스의 Windows 레지스트리 키도 삭제됩니다.
SQLDIAG 서비스 시작 또는 다시 시작
서비스를 시작하거나 다시 시작 SQLDIAG 하려면 명령줄에서 실행 sqldiag START 합니다.
인수를 사용하여 /A여러 SQLdiag 인스턴스를 실행하는 경우 서비스를 시작할 때 명령줄에 SQLdiag 인스턴스 이름을 전달할 수도 있습니다. 예를 들어 Instance1이라는 SQLdiag 인스턴스를 시작하려면 다음 구문을 사용합니다.
sqldiag START /A Instance1
이 명령을 사용하여 net start 서비스를 시작할 수도 있습니다 SQLDIAG .
SQLdiag를 다시 시작하면 현재 출력 폴더의 내용을 덮어씁니다. 이를 방지하려면 명령줄에 지정 /N 2 하여 유틸리티가 시작될 때 출력 폴더의 이름을 바꿉니다.
SQLdiag 서비스 일시 중지는 지원되지 않습니다.
여러 SQLdiag 인스턴스 실행
명령줄에서 지정하여 동일한 컴퓨터에서 여러 SQLdiag 인스턴스를 /A <SQLdiag_application_name> 실행합니다. 이는 동일한 SQL Server 인스턴스에서 동시에 다양한 진단 집합을 수집하는 데 유용합니다. 예를 들어 경량 데이터 수집을 지속적으로 수행하도록 명명된 SQLdiag 인스턴스를 구성할 수 있습니다. 그런 다음 SQL Server에서 특정 문제가 발생하는 경우 기본 SQLdiag 인스턴스를 실행하여 해당 문제에 대한 진단을 수집하거나 Microsoft 고객 지원 서비스에서 문제를 진단하기 위해 수집하도록 요청하는 진단 집합을 수집할 수 있습니다.
클러스터형 SQL Server 인스턴스에서 진단 데이터 수집
SQLdiag는 클러스터형 SQL Server 인스턴스에서 진단 데이터 수집을 지원합니다. 클러스터형 SQL Server 인스턴스에서 진단을 수집하려면, 구성 파일 SQLdiag.xml의 <Machine> 요소에 대한 name 속성이 "."로 지정되어 있는지 확인하고, 명령줄에서 /G 인수를 지정하지 마세요. 기본적으로 "." 구성 파일에서 name 속성이 지정되며, /G 인수가 꺼져 있습니다. 일반적으로 클러스터형 SQL Server 인스턴스에서 수집할 때 구성 파일을 편집하거나 명령줄 인수를 변경할 필요가 없습니다.
컴퓨터 이름으로 지정된 경우 "."SQLdiag 는 클러스터에서 실행 중임을 감지하고 클러스터에 설치된 SQL Server의 모든 가상 인스턴스에서 진단 정보를 동시에 검색합니다. 컴퓨터에서 실행 중인 SQL Server의 한 가상 인스턴스에서만 진단 정보를 수집하려면 해당 가상 SQL Server를 SQLdiag.xml 요소의 name 특성으로 지정합니다.
참고
클러스터링된 SQL Server 인스턴스에서 SQL Server Profiler 추적 정보를 수집하려면 클러스터에서 관리 공유(ADMIN$)를 사용하도록 설정해야 합니다.