다음을 통해 공유


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

참고 항목

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

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

참고 항목

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

Deacmd.exe -o <operation> --help

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

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

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

Deacmd.exe -o StartCapture -n <Trace FileName> -x <Trace Format> -h <SQLServerInstance> -f <database name> -e <Encrypt Connection> -m <Authetication 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 Authentication).
-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를 실행하는 대상 컴퓨터에서 추적 캡처를 시작합니다.

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

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

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

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

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

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

    DReplay replay -m "dreplaycontroller" -d "<Folder Path on Dreplay Controller>\IrfFolder" -o -s "SQL2016Target" -w "dreplaychild1,dreplaychild2,dreplaycild3,dreplaychild4"
    

    a. 상태를 모니터링하려면 다음 명령을 실행합니다.

    DReplay status -f 1
    

    b. 예를 들어 통과 비율이 예상보다 낮은 경우 재생을 중지하려면 다음 명령을 실행합니다.

    DReplay cancel
    
  5. 대상 SQL Server 인스턴스에서 추적 캡처를 중지합니다.

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

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

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

InBuilt Replay 사용

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 Authentication).
-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 키를 사용하는 A 인스턴스의 Blob URL.
--bbu SAS 키를 사용하는 B 인스턴스의 Blob URL.

참고 항목