데이터베이스 실험 도우미 추적 캡처

DEA(데이터베이스 실험 도우미)를 사용하여 캡처된 서버 이벤트의 로그를 사용하여 추적 파일을 만들 수 있습니다. 캡처된 서버 이벤트는 특정 기간 동안 특정 서버에서 발생하는 이벤트입니다. 추적 캡처는 서버당 한 번 실행해야 합니다.

추적 캡처를 시작하기 전에 모든 대상 데이터베이스를 백업해야 합니다.

SQL Server의 쿼리 캐싱은 평가 결과에 영향을 줄 수 있습니다. 평가 결과의 일관성을 향상하려면 서비스 애플리케이션에서 MSSQLSERVER(SQL Server 서비스)를 다시 시작하는 것이 좋습니다.

추적 캡처 구성

  1. DEA의 왼쪽 탐색 모음에서 카메라 아이콘을 선택한 다음 모든 캡처 페이지에서 새 캡처를 선택합니다.

    Create a capture in DEA

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

    • 캡처 이름: 캡처에 대한 추적 파일의 이름을 입력합니다.

    • 형식: 캡처의 형식(추적 또는 XEvents)을 지정합니다.

    • 기간: 추적 캡처를 실행할 시간(분)을 선택합니다.

    • 캡처 위치: 추적 파일의 대상 경로를 선택합니다.

      참고 항목

      추적 파일의 파일 경로는 SQL Server를 실행하는 컴퓨터에 있어야 합니다. SQL Server 서비스가 특정 계정에 대해 설정되지 않은 경우 추적 파일을 작성하려면 지정된 폴더에 대한 쓰기 권한이 필요할 수 있습니다.

  3. 예를 선택하여 백업을 수행했는지 확인합니다. 백업을 수동으로 수행했습니다. 검사 상자입니다.

  4. 캡처 세부 정보에서 다음 정보를 입력하거나 선택합니다.

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

    New Capture page

추적 캡처 시작

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

    입력한 정보가 유효한 경우 추적 캡처 프로세스가 시작됩니다. 그렇지 않으면 잘못된 항목이 있는 텍스트 상자가 빨간색으로 강조 표시됩니다. 오류가 발생하면 필요한 항목을 수정한 다음 다시 시작을 선택합니다.

    추적 캡처가 실행되는 동안 캡처 세부 정보 아래에 추적 캡처 프로세스의 상태 및 진행률이 표시됩니다.

    Monitor capture progress

  2. 추적 캡처 실행이 완료되면 새 추적(.trc) 파일이 초기 구성 중에 특정한 캡처 위치에 저장됩니다.

    Completed trace capture

    추적 파일에는 SQL Server 데이터베이스 작업의 추적 결과가 포함됩니다. .trc 파일은 SQL Server에서 검색 및 보고하는 오류에 대한 자세한 정보를 제공하도록 설계되었습니다.

추적 캡처에 대한 질문과 대답

다음은 DEA의 추적 캡처에 대한 몇 가지 질문과 대답입니다.

Q: 프로덕션 데이터베이스에서 추적 캡처를 실행할 때 캡처되는 이벤트는 무엇인가요?

다음 표에서는 DEA가 추적을 위해 수집하는 이벤트 및 해당 열 데이터를 나열합니다.

이벤트 이름 텍스트 데이터(1) 이진 데이터(2) 데이터베이스 ID(3) 호스트 이름(8) 애플리케이션 이름(10) 로그인 이름(11) SPID(12) 시작 시간(14) 종료 시간(15) 데이터베이스 이름(35) 이벤트 시퀀스(51) IsSystem(60)
RPC:Completed (10) * * * * * * * * * * *
RPC:Starting(11) * * * * * * * * * *
RPC 출력 매개 변수(100) * * * * * * * * * *
SQL:BatchCompleted(12) * * * * * * * * * * *
SQL:BatchStarting(13) * * * * * * * * * *
감사 로그인(14) * * * * * * * * * * *
감사 로그아웃(15) * * * * * * * * * * *
기존커넥트ion(17) * * * * * * * * * * *
CursorOpen (53) * * * * * * * * * *
CursorPrepare (70) * * * * * * * * * *
SQL 준비(71) * * * * * * * * *
Exec Prepared SQL(72) * * * * * * * * *
CursorExecute (74) * * * * * * * * * *
CursorUnprepare (77) * * * * * * * * * *
CursorClose (78) * * * * * * * * * *

Q: 추적 캡처가 실행 중일 때 프로덕션 서버에 성능 효과가 있나요?

예, 추적 수집 중에 성능 효과가 최소화됩니다. 우리의 테스트에서, 우리는 약 발견 3% 메모리 압력.

Q: 프로덕션 워크로드에서 추적을 캡처하는 데 필요한 권한은 무엇인가요?

  • DEA 애플리케이션에서 추적 작업을 실행하는 Windows 사용자는 SQL Server를 실행하는 컴퓨터에 대한 sysadmin 권한이 있어야 합니다.
  • SQL Server를 실행하는 컴퓨터에서 사용되는 서비스 계정에는 지정된 추적 파일 경로에 대한 쓰기 권한이 있어야 합니다.

Q: 전체 서버 또는 단일 데이터베이스에서만 추적을 캡처할 수 있나요?

DEA를 사용하여 서버의 모든 데이터베이스 또는 단일 데이터베이스에 대한 추적을 캡처할 수 있습니다.

Q: 프로덕션 환경에 연결된 서버가 구성되어 있습니다. 이러한 쿼리가 추적에 표시합니까?

전체 서버에 대한 추적 캡처를 실행하는 경우 추적은 연결된 서버 쿼리를 포함하여 모든 쿼리를 캡처합니다. 전체 서버에 대한 추적 캡처를 실행하려면 새 캡처 아래에 데이터베이스 이름 상자를 비워 둡니다.

Q: 프로덕션 워크로드 추적에 권장되는 최소 시간은 얼마인가요?

워크로드 전체를 가장 잘 나타내는 시간을 선택하는 것이 좋습니다. 이렇게 하면 워크로드의 모든 쿼리에서 분석이 실행됩니다.

Q: 추적 캡처를 시작하기 직전에 데이터베이스 백업을 수행하는 것이 얼마나 중요합니까?

추적 캡처를 시작하기 전에 모든 대상 데이터베이스를 백업해야 합니다. 대상 1 및 대상 2에서 캡처된 추적이 재생됩니다. 데이터베이스 상태가 동일하지 않으면 실험 결과가 왜곡됩니다.

Q: 추적 대신 XEvents를 수집할 수 있고 XEvents를 재생할 수 있나요?

예. DEA는 XEvents를 지원합니다. DEA의 최신 버전을 다운로드하고 시도해 보세요.

추적 캡처 문제 해결

추적 캡처를 실행할 때 오류가 표시되면 다음을 확인합니다.

  • SQL Server를 실행하는 컴퓨터의 이름이 유효합니다. 확인하려면 SSMS(SQL Server Management Studio)를 사용하여 SQL Server를 실행하는 컴퓨터에 연결합니다.
  • 방화벽 구성은 SQL Server를 실행하는 컴퓨터에 대한 연결을 차단하지 않습니다.
  • 사용자에게 재생 FAQ에 나열된 권한이 있습니다.
  • 추적 이름은 표준 롤오버 규칙(Capture_1)을 따르지 않습니다. 대신 Capture_1A 또는 Capture1과 같은 추적 이름을 사용해 보세요.

다음은 발생할 수 있는 몇 가지 오류와 해결 방법입니다.

가능한 오류 솔루션
대상 SQL Server에서 추적을 시작할 수 없습니다. 검사 필요한 권한이 있는지 여부와 SQL Server 계정에 지정된 추적 파일 경로에 대한 쓰기 권한이 있는지 여부(53) DEA 도구를 실행하는 사용자는 SQL Server를 실행하는 컴퓨터에 액세스할 수 있어야 합니다. 사용자에게 sysadmin 역할이 할당되어야 합니다.
대상 SQL Server에서 추적을 시작할 수 없습니다. 검사 필요한 권한이 있는지 여부와 SQL Server 계정에 지정된 추적 파일 경로에 대한 쓰기 권한이 있는지 여부(19062) 지정한 추적 경로가 없거나 SQL Server 서비스가 실행 중인 계정에 대한 쓰기 권한이 폴더에 없습니다(예: NETWORK SERVICE). 경로가 있어야 하며 추적을 시작하는 데 필요한 권한이 있어야 합니다.
DEA 추적은 현재 대상 서버에서 실행 중입니다. 활성 추적이 대상 서버에서 이미 실행되고 있습니다. 서버 전체 추적이 이미 실행 중인 경우 새 추적을 시작할 수 없습니다.
추적을 캡처하기 위해 요청된 데이터베이스를 열 수 없습니다. 이 오류는 잘못된 데이터베이스 이름으로 인해 발생할 수 있습니다. 지정된 데이터베이스가 없거나 현재 사용자가 액세스할 수 없습니다. 올바른 데이터베이스 이름을 사용합니다.

Sql 오류 코드 레이블이 지정된 다른 오류가 표시되는 경우 자세한 설명은 데이터베이스 엔진 오류를 참조하세요.

참고 항목

  • 캡처된 추적을 재생하기 전에 SQL Server에서 Distributed Replay 도구를 구성하는 방법을 알아보려면 데이터베이스 실험 도우미 대한 Distributed Replay 구성을 참조하세요.