다음을 통해 공유


데이터베이스 실험 도우미에서 추적 재생

참고 항목

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

DEA(데이터베이스 실험 도우미)에서는 업그레이드된 테스트 환경에 대해 캡처된 추적 파일을 재생할 수 있습니다. 예를 들어 SQL Server 2008 R2에서 실행되는 프로덕션 워크로드를 고려합니다. 워크로드에 대한 추적 파일은 프로덕션에서 실행되는 동일한 버전의 SQL Server가 있는 환경에서 한 번, SQL Server 2016과 같이 업그레이드 대상 SQL Server 버전이 있는 환경에서 두 번 재생해야 합니다.

참고 항목

추적을 재생하려면 가상 머신 또는 물리적 컴퓨터를 수동으로 설정하여 Distributed Replay 추적을 실행해야 합니다. 자세한 내용은 데이터베이스 실험 도우미 대한 Distributed Replay 구성 을 참조하세요.

대상 1에 대한 추적 재생 구성

먼저 기존 프로덕션 환경을 나타내는 대상 1에 대해 추적 재생을 수행해야 합니다.

  1. DEA의 왼쪽 탐색 모음에서 화살표 아이콘을 선택한 다음 모든 재생 페이지에서 새 재생을 선택합니다.

    DEA에서 재생 만들기

    참고 항목

    Distributed Replay 컨트롤러 컴퓨터에는 원격으로 연결하는 데 사용하는 사용자 계정에 대한 권한이 필요합니다.

  2. 새 재생 페이지의 재생 세부 정보 에서 다음 정보를 입력하거나 선택합니다.

    • 재생 이름: 추적 재생의 이름을 입력합니다.

    • 원본 추적 형식: 원본 추적 파일의 형식(추적 또는 XEvents)을 지정합니다.

    • 원본 파일의 전체 경로: 원본 추적 파일의 전체 경로를 지정합니다. DReplay를 사용하는 경우 DReplay 컨트롤러 역할을 하는 컴퓨터에 파일이 있어야 하며 사용자 계정에는 파일 및 폴더에 대한 액세스 권한이 필요합니다.

    • 재생 도구: 재생 도구(DReplay 또는 InBuilt)를 지정합니다.

    • 컨트롤러 컴퓨터 이름: Distributed Replay 컨트롤러 역할을 하는 컴퓨터의 이름을 지정합니다.

    • 추적 위치 재생: 추적 재생과 연결된 추적 파일/XEvents를 저장할 경로를 지정합니다.

      참고 항목

      Azure SQL 데이터베이스 또는 Azure SQL Managed Instance의 경우 Azure Blob Storage 계정의 SAS URI를 제공해야 합니다.

  3. 예, 데이터베이스를 수동으로 복원했습니다 확인란을 선택하여 데이터베이스를 복원했는지 확인합니다.

  4. SQL Server 연결 세부 정보에서 다음 정보를 입력하거나 선택합니다.

    • 서버 유형: SQL Server의 형식을 지정합니다(SqlServer, AzureSqlDb, AzureSqlManagedInstance).
    • 서버 이름: SQL Server의 서버 이름 또는 IP 주소를 지정합니다.
    • 인증 유형: 인증 유형에 대해 Windows 를 선택합니다.
    • 데이터베이스 이름: 서버 쪽 추적을 시작할 데이터베이스의 이름을 입력합니다. 데이터베이스를 지정하지 않으면 추적이 서버의 모든 데이터베이스에서 캡처됩니다.
  5. 시나리오에 맞게 연결 암호화서버 인증서 신뢰 를 선택하거나 선택 취소합니다.

    새 재생 페이지

대상 1에서 추적 재생 시작

  • 필요한 정보를 입력하거나 선택한 후 시작 을 선택하여 추적 재생을 시작합니다.

    입력한 정보가 유효한 경우 Distributed Replay 프로세스가 시작됩니다. 그렇지 않으면 잘못된 정보가 있는 텍스트 상자가 빨간색으로 강조 표시됩니다. 입력한 값이 올바른지 확인한 다음 시작 을 선택합니다.

    대상 1에 대한 재생 진행률

    필요에 따라 프로세스를 모니터링할 수 있습니다. 재생이 완료되면 DEA는 사용자가 지정한 위치에 있는 파일에 결과를 저장합니다.

    대상 1 완료에 대한 재생

대상 2에 대해 추적 재생 수행

대상 1에 대한 추적 재생을 완료한 후에는 의도한 업그레이드 환경을 나타내는 두 번째 대상에 대해 동일한 작업을 수행해야 합니다.

  1. 이번에는 대상 2 환경과 연결된 세부 정보를 사용하여 추적 재생을 구성합니다.

  2. 대상 2에서 추적 재생을 시작합니다.

    필요에 따라 프로세스를 모니터링할 수 있습니다. 재생이 완료되면 DEA는 사용자가 지정한 위치에 있는 파일에 결과를 저장합니다.

추적 재생에 대한 질문과 대답

Q: 대상 서버에서 재생 캡처를 시작하는 데 필요한 보안 권한은 무엇인가요?

  • DEA 애플리케이션에서 추적 작업을 실행하는 Windows 사용자에게는 SQL Server를 실행하는 대상 컴퓨터에 대한 sysadmin 권한이 있어야 합니다. 추적을 시작하려면 이러한 사용자 권한이 필요합니다.
  • SQL Server를 실행하는 대상 컴퓨터가 실행 중인 서비스 계정에는 지정된 추적 파일 경로에 대한 쓰기 권한이 있어야 합니다.
  • Distributed Replay 클라이언트 서비스가 실행되는 서비스 계정에는 SQL Server를 실행하는 대상 컴퓨터에 연결하고 쿼리를 실행할 수 있는 사용자 권한이 있어야 합니다.

Q: 동일한 세션에서 둘 이상의 재생을 시작할 수 있나요?

예, 여러 재생을 시작하고 동일한 세션에서 완료되도록 추적할 수 있습니다.

Q: 둘 이상의 재생을 병렬로 시작할 수 있나요?

예, 컨트롤러와 클라이언트에서 동일한 컴퓨터 집합이 선택되어 있지는 않습니다. 컨트롤러와 클라이언트가 사용 중입니다. 컨트롤러와 클라이언트 아래에 별도의 컴퓨터 집합을 설정하여 병렬 재생을 시작합니다.

Q: 재생을 완료하는 데 일반적으로 걸리는 기간은 얼마나 되나요?

재생 시간은 일반적으로 원본 추적과 동일한 시간과 원본 추적을 전처리하는 데 걸리는 시간을 더합니다. 그러나 컨트롤러에 등록된 클라이언트 컴퓨터가 재생에서 생성된 부하를 관리하는 데 충분하지 않은 경우 재생을 완료하는 데 시간이 더 오래 걸릴 수 있습니다. 컨트롤러에 최대 16개의 클라이언트 컴퓨터를 등록할 수 있습니다.

Q: 대상 추적 파일의 규모는 얼마인가요?

대상 추적 파일은 원본 추적 크기의 5~15배 사이일 수 있습니다. 파일 크기는 실행되는 쿼리 수를 기반으로 합니다. 예를 들어 쿼리 계획 Blob은 클 수 있습니다. 이러한 쿼리에 대한 통계가 자주 변경되면 더 많은 이벤트가 캡처됩니다.

Q: 데이터베이스를 복원해야 하는 이유는 무엇인가요?

SQL Server는 상태 저장 관계형 데이터베이스 관리 시스템입니다. A/B 테스트를 제대로 실행하려면 데이터베이스의 상태를 항상 유지해야 합니다. 그렇지 않으면 재생 중에 프로덕션에 표시되지 않는 오류가 쿼리에 표시될 수 있습니다. 이러한 오류를 방지하려면 원본 캡처 바로 전에 백업을 수행하는 것이 좋습니다. 마찬가지로 재생 중에 오류를 방지하려면 SQL Server를 실행하는 대상 컴퓨터에서 백업을 복원해야 합니다.

Q: 재생 페이지에서 "통과 %"는 무엇을 의미하나요?

통과 %는 통과한 쿼리의 백분율만을 의미합니다. 오류 수가 예상되는지 여부를 진단할 수 있습니다. 오류가 예상되거나 데이터베이스의 무결성이 손실되어 오류가 발생할 수 있습니다. 통과 % 값이 예상과 다른 경우 추적을 중지하고 SQL Profiler의 추적 파일을 확인하여 성공하지 못한 쿼리를 확인할 수 있습니다.

Q: 재생 중에 수집된 추적 이벤트를 어떻게 볼 수 있나요?

대상 추적 파일을 열고 SQL Profiler에서 확인합니다. 또는 재생 캡처를 수정하려는 경우 모든 SQL Server 스크립트는 C:\Program Files (x86)\Microsoft Corporation\Database Experimentation Assistant\Scripts\StartReplayCapture.sql에서 확인할 수 있습니다.

Q: DEA는 재생 중에 어떤 추적 이벤트를 수집하나요?

DEA는 성능 관련 정보를 포함하는 추적 이벤트를 캡처합니다. 캡처 구성은 StartReplayCaptureTrace.sql 스크립트에 있습니다. 이러한 이벤트는 sp_trace_setevent(Transact-SQL) 참조 설명서 에 나열된 일반적인 SQL Server 추적 이벤트입니다.

추적 재생 문제 해결

Q: SQL Server를 실행 중인 컴퓨터에 연결할 수 없는 이유는 무엇인가요?

  • SQL Server를 실행하는 컴퓨터의 이름이 유효한지 확인합니다. 확인하려면 SSMS(SQL Server Management Studio)를 사용하여 서버에 연결을 시도합니다.
  • 방화벽 구성이 SQL Server를 실행하는 컴퓨터에 대한 연결을 차단하지 않는지 확인합니다.
  • 사용자에게 필요한 사용자 권한이 있는지 확인합니다.
  • Distributed Replay 클라이언트의 서비스 계정이 SQL Server를 실행하는 컴퓨터에 액세스할 수 있는지 확인합니다.

%temp%\DEA의 로그에서 자세한 내용을 확인할 수 있습니다. 문제가 지속되면 제품 팀에 문의하세요.

Q: Distributed Replay 컨트롤러에 연결할 수 없는 이유는 무엇인가요?

  • Distributed Replay 컨트롤러 서비스가 컨트롤러 컴퓨터에서 실행 중인지 확인합니다. 확인하려면 Distributed Replay 관리 도구를 사용합니다(dreplay.exe status -f 1 명령 실행).
  • 재생이 원격으로 시작되는 경우:
    • DEA를 실행하는 컴퓨터가 컨트롤러를 성공적으로 ping할 수 있는지 확인합니다. 방화벽 설정이 재생 환경 구성 페이지의 지침에 따라 연결을 허용하는지 확인합니다. 자세한 내용은 SQL Server Distributed Replay 문서를 참조하세요.
    • Distributed Replay 컨트롤러 사용자에 대해 DCOM 원격 시작 및 원격 활성화가 허용되어 있는지 확인합니다.
    • Distributed Replay 컨트롤러 사용자에 대해 DCOM 원격 액세스 사용자 권한이 허용되어 있는지 확인합니다.

Q: 추적 파일 경로가 내 컴퓨터에 있습니다. Distributed Replay 컨트롤러에서 찾을 수 없는 이유는 무엇인가요?

Distributed Replay는 로컬 디스크 리소스에만 액세스할 수 있습니다. 재생을 시작하기 전에 원본 추적 파일을 Distributed Replay 컨트롤러 컴퓨터에 복사해야 합니다. 또한 DEA 새 재생 페이지에서 경로를 제공해야 합니다.

UNC 경로는 Distributed Replay와 호환되지 않습니다. Distributed Replay 경로는 확장을 포함하여 첫 번째 원본 추적 파일에 대한 로컬의 절대 경로여야 합니다.

Q: 새 재생 페이지에서 파일을 찾을 수 없는 이유는 무엇인가요?

원격 컴퓨터에서 폴더를 찾아볼 수 없으므로 파일 검색은 유용하지 않습니다. 절대 경로를 복사하여 붙여넣는 것이 더 효율적입니다.

Q: 추적으로 재생을 시작했지만 Distributed Replay는 이벤트를 재생하지 않았습니다. 이유는 무엇입니까?

이 문제는 추적 파일에 재생 가능한 이벤트가 없거나 이벤트를 재생하는 방법에 대한 정보가 없기 때문에 발생할 수 있습니다. 제공된 추적 파일 경로가 원본 추적 파일을 가리키는지 확인합니다. 원본 추적 파일은 StartCaptureTrace.sql 스크립트에 제공된 구성을 사용하여 생성됩니다.

Q: SQL Server 2017 Distributed Replay 컨트롤러를 사용하여 추적 파일을 전처리하려고 할 때 "예기치 않은 오류가 발생했습니다!"가 표시됩니다. 이유는 무엇입니까?

이 문제는 RTM 버전의 SQL Server 2017에서 알려져 있습니다. 자세한 내용은 DReplay 기능을 사용하여 SQL Server 2017에서 캡처된 추적을 재생할 때 발생하는 예기치 않은 오류 를 참조하세요.

이 문제는 SQL Server 2017의 최신 누적 업데이트 1에서 해결되었습니다. 최신 버전의 SQL Server 2017 누적 업데이트 1 을 다운로드합니다.

참고 항목

  • 제안된 변경 내용에 대한 인사이트를 얻는 데 도움이 되는 분석 보고서를 만들려면 보고서 만들기를 참조하세요.