다음을 통해 공유


명령 프롬프트에서 데이터베이스 실험 도우미 실행

메모

이 도구는 2024년 12월 15일에 사용 중지되었습니다. 발생하는 문제에 대해 이 도구 지원을 중지했으며 버그 수정 또는 추가 업데이트를 실행하지 않습니다.

이 문서에서는 DEA(데이터베이스 실험 도우미)에서 추적을 캡처한 다음 명령 프롬프트에서 결과를 분석하는 방법을 설명합니다.

각 DEA 작업에 대해 자세히 알아보려면 다음 명령을 실행합니다.

deacmd.exe -o <operation> --help

작업 이름이 필요합니다. 유효한 작업은 Analysis, StartCaptureStopCapture.

DEA 명령을 사용하여 새 워크로드 캡처 시작

새 워크로드 캡처를 시작하려면 명령 프롬프트에서 다음 명령을 실행합니다.

deacmd.exe -o StartCapture -n <Trace FileName> -x <Trace Format> -h <SQLServerInstance> -f <database name> -e <Encrypt Connection> -m <Authentication Mode> -u <user name> -p <password> -l <Location of Output Folder> -d <duration>

예를 들어:

deacmd.exe -o StartCapture -n sql2008capture -x 0 -h localhost -f adventureworks -e --trust -m 0 -l c:\test  -d 60

deacmd.exe 명령을 사용하여 새 워크로드 캡처를 시작할 때 다음 옵션을 사용할 수 있습니다.

옵션 묘사
-n, --name 필수. 추적 파일 이름입니다.
-x, --format 필수. 추적 형식(0 = Trace, 1 = XEvents)입니다.
-d, --duration 필수. 캡처의 최대 기간(분)입니다.
-l, --location 필수. 호스트 컴퓨터에 추적 또는 XEvent 파일을 저장하기 위한 출력 폴더의 위치입니다.
-t, --type 기본값: 0. SQL Server 유형(0 = SqlServer, 1 = AzureSQLDB, 2 = Azure SQL Managed Instance).
-h, --host 필수. 캡처를 시작할 SQL Server 호스트 이름 또는 인스턴스 이름입니다.
-e, --encrypt 기본값: True입니다. SQL Server 인스턴스에 대한 연결을 암호화합니다.
--trust 기본값: False입니다. SQL Server 인스턴스에 연결하는 동안 서버 인증서를 신뢰합니다.
-f, --databasename 추적을 필터링할 데이터베이스의 이름입니다(지정하지 않은 경우 캡처는 모든 데이터베이스에서 시작됨).
-m, --authmode 기본값: 0. 인증 모드(0 = Windows, 1 = Sql 인증).
-u, --username SQL Server에 연결하기 위한 사용자 이름입니다.
-p, --password SQL Server에 연결하기 위한 암호입니다.

워크로드 캡처 재생

Distributed Replay를 사용하는 경우 다음 단계를 수행합니다.

  1. Distributed Replay 컨트롤러 컴퓨터에 로그인합니다.

  2. DEA 명령을 사용하여 캡처한 워크로드 추적을 IRF 파일로 변환하려면 다음 명령을 실행합니다.

    DReplay preprocess -m "dreplaycontroller" -i "Path to first trace file" -d "<Folder path on controller>\IrfFolder"
    
  3. StartReplayCaptureTrace.sql사용하여 SQL Server를 실행하는 대상 컴퓨터에서 추적 캡처를 시작합니다.

    1. SSMS(SQL Server Management Studio)에서 \Scripts\StartReplayCaptureTrace.sql <Dea_InstallPath>엽니다.

    2. 지정된 시간 후에 추적 캡처가 자동으로 중지되지 않도록 Set @durationInMins=0 실행합니다.

    3. 추적 파일당 최대 파일 크기를 설정하려면 Set @maxfilesize실행합니다. 권장 크기는 200MB입니다.

    4. @Tracefile 편집하여 추적 파일의 고유한 이름을 설정합니다.

    5. 특정 데이터베이스에서만 워크로드를 캡처해야 하는 경우 데이터베이스 이름을 지정하도록 @dbname 편집합니다. 기본적으로 전체 서버의 워크로드가 캡처됩니다.

  4. 대상 SQL Server 인스턴스에 대해 IRF 파일을 재생하려면 다음 명령을 실행합니다.

    DReplay replay -m "dreplaycontroller" -d "<Folder Path on Dreplay Controller>\IrfFolder" -o -s "SQL2016Target" -w "dreplaychild1,dreplaychild2,dreplaychild3,dreplaychild4"
    
    1. 상태를 모니터링하려면 다음 명령을 실행합니다.
    DReplay status -f 1
    
    1. 예를 들어 패스 비율이 예상보다 낮은 경우 재생을 중지하려면 다음 명령을 실행합니다.
    DReplay cancel
    
  5. 대상 SQL Server 인스턴스에서 추적 캡처를 중지합니다.

  6. SSMS에서 \Scripts\StopCaptureTrace.sql <Dea_InstallPath>엽니다.

  7. SQL Server를 실행하는 대상 컴퓨터의 추적 파일 경로와 일치하도록 @Tracefile 편집합니다.

  8. SQL Server를 실행하는 대상 컴퓨터에 대해 스크립트를 실행합니다.

내장 재생 사용

InBuilt Replay를 사용하는 경우 Distributed Replay를 설정할 필요가 없습니다. 명령 프롬프트에서 InBuilt Replay를 사용하는 기능이 진행 중입니다. 현재 GUI를 사용하여 InBuilt Replay를 사용하여 재생을 실행할 수 있습니다.

DEA 명령을 사용하여 추적 분석

새 추적 분석을 시작하려면 다음 명령을 실행합니다.

deacmd.exe -o analysis -a <Target1 trace filepath> -b <Target2 trace filepath> -r reportname -h <SQLserverInstance> -e <encryptconnection> -u <username>

예를 들어:

deacmd.exe -o analysis -a C:\Trace\SQL2008Source\Trace.trc -b C:\ Trace\SQL2014Trace\Trace.trc -r upgrade20082014 -h localhost -e

이러한 추적 파일의 분석 보고서를 보려면 GUI를 사용하여 차트 및 구성된 메트릭을 확인해야 합니다. 그러나 분석 데이터베이스는 지정된 SQL Server 인스턴스에 기록되므로 생성된 분석 테이블을 직접 쿼리할 수도 있습니다.

DEA 명령을 사용하여 추적을 분석하는 경우 다음 옵션을 사용할 수 있습니다.

선택 묘사
-a, --traceA 필수. A 인스턴스에 대한 이벤트 파일의 파일 경로입니다. 예: C:\traces\Sql2008trace.trc. 파일 일괄 처리가 있는 경우 첫 번째 파일을 선택하고 DEA는 자동으로 롤오버 파일을 확인합니다. 파일이 Blob에 있는 경우 이벤트 파일을 로컬로 저장할 폴더 경로를 제공합니다. 예: C:\traces\
-b, --traceB 필수. B 인스턴스에 대한 이벤트 파일의 파일 경로입니다. 예: C:\traces\Sql2014trace.trc. 파일 일괄 처리가 있는 경우 첫 번째 파일을 선택하고 DEA는 자동으로 롤오버 파일을 확인합니다. 파일이 Blob에 있는 경우 이벤트 파일을 로컬로 저장할 폴더 경로를 제공합니다. 예: C:\traces\
-r, --ReportName 필수. 현재 분석의 이름입니다. 생성되는 분석 보고서는 이 이름으로 식별됩니다.
-t, --type 기본값: 0. SQL Server 유형(0 = SqlServer, 1 = AzureSQLDB, 2 = Azure SQL Managed Instance).
-h, --host 필수. SQL Server 호스트 이름 또는 인스턴스 이름입니다.
-e, --encrypt 기본값: True입니다. SQL Server 인스턴스에 대한 연결을 암호화합니다.
--trust 기본값: False입니다. SQL Server 인스턴스에 연결하는 동안 서버 인증서를 신뢰합니다.
-m, --authmode 기본값: 0. 인증 모드(0 = Windows, 1 = Sql 인증).
-u, --username SQL Server에 연결하기 위한 사용자 이름입니다.
--p SQL Server에 연결하기 위한 암호입니다.
--ab 기본값: False입니다. 추적 A의 스토리지 위치는 Blob에 있습니다. 사용하는 경우 --abu (Trace A Blob Url) 지정해야 합니다.
--bb 기본값: False입니다. 추적 B의 스토리지 위치는 Blob에 있습니다. 사용하는 경우 --bbu (Trace B Blob Url) 지정해야 합니다.
--abu SAS 키를 사용하는 인스턴스의 Blob URL입니다.
--bbu SAS 키를 사용하는 B 인스턴스에 대한 Blob URL입니다.
  • 데이터베이스 실험 도우미 개요