sp_trace_create(Transact-SQL)

추적 정의를 만듭니다. 새 추적은 중지된 상태가 됩니다.

중요 정보중요

Microsoft SQL Server의 이후 버전에서는 이 기능이 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 응용 프로그램은 수정하십시오. 확장 이벤트를 대신 사용하십시오.

항목 링크 아이콘 Transact-SQL 구문 표기 규칙

구문

sp_trace_create [ @traceid = ] trace_id OUTPUT 
          , [ @options = ] option_value  
          , [ @tracefile = ] 'trace_file' 
     [ , [ @maxfilesize = ] max_file_size ]
     [ , [ @stoptime = ] 'stop_time' ]
     [ , [ @filecount = ] 'max_rollover_files' ]

인수

  • [ @traceid= ] trace_id
    Microsoft SQL Server에서 새 추적에 부여한 번호입니다. 모든 사용자 제공 입력은 무시됩니다. trace_id은 int이며 기본값은 NULL입니다. 사용자는 trace_id 값을 사용하여 이 저장 프로시저에 의해 정의된 추적을 확인, 수정 및 제어합니다.

  • [ @options= ] option_value
    추적에 대한 옵션 집합을 지정합니다. option_value는 int이며 기본값은 없습니다. 선택한 옵션 값의 합계를 지정하여 이러한 옵션의 조합을 선택할 수 있습니다. 예를 들어 TRACE_FILE_ROLLOVER와 SHUTDOWN_ON_ERROR 두 옵션 모두를 설정하려면 option_value를 6으로 지정합니다.

    다음 표에서는 옵션, 설명 및 해당 값을 나열합니다.

    옵션 이름

    옵션 값

    설명

    TRACE_FILE_ROLLOVER

    2

    max_file_size에 도달하면 현재 추적 파일이 닫히고 새 파일이 생성되도록 지정합니다. 모든 새 기록은 새 파일에 기록합니다. 새 파일은 이전 파일과 같은 이름을 갖지만 정수를 붙여 시퀀스를 표시합니다. 예를 들어 원래 추적 파일 이름이 filename.trc이면, 다음 추적 파일 이름은 filename_1.trc이고 그 다음은 filename_2.trc의 식으로 명명됩니다.

    롤오버 추적 파일이 많이 생성될수록 파일 이름에 붙이는 정수 값도 순차적으로 증가합니다.

    max_file_size 값을 지정하지 않고 이 옵션을 지정하면 SQL Server는 max_file_size의 기본값(5MB)을 사용합니다.

    SHUTDOWN_ON_ERROR

    4

    어떤 이유에서건 추적을 파일에 쓸 수 없으면 SQL Server가 시스템을 종료하도록 지정합니다. 이 옵션은 보안 감사 추적을 수행할 때 유용합니다.

    TRACE_PRODUCE_BLACKBOX

    8

    서버가 만든 마지막 5MB 추적 정보의 기록은 서버에 의해 저장됨을 지정합니다. TRACE_PRODUCE_BLACKBOX는 다른 모든 옵션과 호환되지 않습니다.

  • [ @tracefile= ] 'trace_file'
    추적을 기록할 위치와 파일 이름을 지정합니다. trace_file는 nvarchar(245)이며 기본값은 없습니다. trace_file은 N 'C:\MSSQL\Trace\trace.trc'와 같은 로컬 디렉터리이거나 N'\\Servername\Sharename\Directory\trace.trc'와 같은 공유 또는 경로의 UNC일 수 있습니다.

    SQL Server는 모든 추적 파일 이름에 .trc 확장명을 붙입니다. TRACE_FILE_ROLLOVER 옵션과 max_file_size를 지정하면 SQL Server는 원래 추적 파일이 최대 크기에 도달할 경우 새 추적 파일을 만듭니다. 새 파일의 이름은 원래 파일의 이름과 같지만 시퀀스를 나타내는 _n이 추가되며 1부터 시작합니다. 예를 들어 첫 번째 추적 파일의 이름이 filename.trc인 경우 두 번째 추적 파일의 이름은 filename_1.trc가 됩니다.

    TRACE_FILE_ROLLOVER 옵션을 사용하는 경우 원래 추적 파일 이름에 밑줄 문자를 사용하지 않는 것이 좋습니다. 밑줄을 사용할 경우 다음 동작이 발생합니다.

    • SQL Server 프로파일러에서 롤오버 파일을 자동으로 로드하거나 사용자에게 로드하라는 메시지를 표시하지 않습니다(이러한 파일 롤오버 옵션 중 하나가 구성된 경우).

    • fn_trace_gettable 함수는 원래 파일 이름이 밑줄과 숫자 값으로 끝나는 롤오버 파일을 로드하지 않습니다(number_files 인수를 사용하여 지정된 경우). 이는 파일이 롤오버될 때 자동으로 추가된 밑줄과 숫자에는 적용되지 않습니다.

    [!참고]

    추적 파일의 이름을 변경하여 원래 파일 이름에서 밑줄을 제거하면 이러한 문제를 모두 해결할 수 있습니다. 예를 들어 원래 파일 이름이 my_trace.trc이고 롤오버 파일 이름이 my_trace_1.trc인 경우 SQL Server 프로파일러에서 파일을 열기 전에 파일 이름을 mytrace.trcmytrace_1.trc로 변경할 수 있습니다.

    TRACE_PRODUCE_BLACKBOX 옵션을 사용할 때는 trace_file을 지정할 수 없습니다.

  • [ @maxfilesize= ] max_file_size
    추적 파일의 최대 크기(MB)를 지정합니다. max_file_size는 bigint이며 기본값은 5입니다.

    TRACE_FILE_ROLLOVER 옵션 없이 이 매개 변수를 지정하면 사용된 디스크 공간이 max_file_size에 지정된 양을 초과할 경우 추적의 파일 기록이 중지됩니다.

  • [ @stoptime= ] 'stop_time'
    추적을 중지할 날짜 및 시간을 지정합니다. stop_time은 datetime이며 기본값은 NULL입니다. NULL일 경우 추적은 수동으로 중지하거나 서버가 시스템을 종료할 때까지 계속 실행됩니다.

    stop_time과 max_file_size를 모두 지정하고 TRACE_FILE_ROLLOVER를 지정하지 않으면 추적은 지정된 중지 시간이 되거나 최대 파일 크기에 도달할 때 중지합니다. stop_time, max_file_size 및 TRACE_FILE_ROLLOVER를 지정하면 추적은 드라이브를 채우지 않은 것으로 간주하고 지정된 중지 시간에 중지합니다.

  • [ @filecount= ] 'max_rollover_files'
    같은 기본 파일 이름으로 유지할 최대 추적 파일 수를 지정합니다. max_rollover_files는 1보다 큰 int입니다. 이 매개 변수는 TRACE_FILE_ROLLOVER 옵션을 지정한 경우에만 유효합니다. max_rollover_files를 지정하면 SQL Server에서 새 추적 파일을 열기 전에 가장 오래된 추적 파일을 삭제하여 max_rollover_files에 지정된 추적 파일 수 이하로 유지하려고 시도합니다. SQL Server에서는 기본 파일 이름에 숫자를 추가하여 추적 파일의 보존 기간을 추적합니다.

    예를 들어 trace_file 매개 변수를 "c:\mytrace"로 지정한 경우 이름이 "c:\mytrace_123.trc"인 파일은 "c:\mytrace_124.trc" 파일보다 오래되었습니다. max_rollover_files를 2로 설정하면 SQL Server에서 추적 파일 "c:\mytrace_125.trc"를 열기 전에 "c:\mytrace_123.trc" 파일을 삭제합니다.

    SQL Server에서는 각 파일을 한 번만 삭제하려고 시도하며 다른 프로세스에서 사용 중인 파일은 삭제할 수 없습니다. 그러므로 추적을 실행하는 동안 다른 응용 프로그램에서 추적 파일을 사용하는 경우 SQL Server에서는 이 추적 파일을 파일 시스템에 유지합니다.

반환 코드 값

아래 표에서는 저장 프로시저가 완료된 후 사용자가 얻을 수 있는 코드 값을 설명합니다.

반환 코드

설명

0

오류가 없습니다.

1

알 수 없는 오류입니다.

10

잘못된 옵션입니다. 지정한 옵션이 호환되지 않으면 반환됩니다.

12

파일이 생성되지 않았습니다.

13

메모리가 부족합니다. 지정한 동작을 수행할 메모리가 충분하지 않으면 반환됩니다.

14

잘못된 중지 시간입니다. 지정한 중지 시간이 이미 지난 경우 반환됩니다.

15

잘못된 매개 변수입니다. 사용자가 호환되지 않는 매개 변수를 제공하면 반환됩니다.

주의

sp_trace_create는 이전 버전의 SQL Server에서 사용 가능한 xp_trace_* 확장 저장 프로시저가 실행하던 대부분의 동작을 수행하는 SQL Server 저장 프로시저입니다. sp_trace_create를 아래 프로시저 대신 사용합니다.

  • xp_trace_addnewqueue

  • xp_trace_setqueuecreateinfo

  • xp_trace_setqueuedestination

sp_trace_create는 추적 정의를 만들 수만 있을 뿐 추적을 시작하거나 변경하는 데 사용할 수 없는 저장 프로시저입니다.

모든 SQL 추적 저장 프로시저(sp_trace_xx)의 매개 변수는 유형 지정이 엄격합니다. 이러한 매개 변수가 정확한 입력 매개 변수 데이터 형식으로 호출되지 않으면 인수 설명에서 지정한 대로 저장 프로시저는 오류를 반환합니다.

sp_trace_create를 실행하려면 SQL Server 서비스 계정에 추적 파일 폴더에 대한 쓰기 권한이 있어야 합니다. 추적 파일이 있는 컴퓨터에서 SQL Server 서비스 계정이 관리자가 아닌 경우 SQL Server 서비스 계정에 명시적으로 쓰기 권한을 부여해야 합니다.

[!참고]

fn_trace_gettable 시스템 함수를 사용하면 sp_trace_create로 만든 추적 파일을 테이블에 자동으로 로드할 수 있습니다. 이 시스템 함수 사용에 대한 자세한 내용은 sys.fn_trace_gettable(Transact-SQL)을 참조하십시오.

추적 저장 프로시저 사용에 대한 예는 추적 만들기(Transact-SQL)를 참조하십시오.

TRACE_PRODUCE_BLACKBOX의 특징은 다음과 같습니다.

  • 이 옵션은 롤오버 추적입니다. 기본 file_count는 2이고 filecount 옵션을 사용하여 무시할 수 있습니다.

  • 기본 file_size는 다른 추적과 마찬가지로 5MB이고 변경할 수 있습니다.

  • 파일 이름을 지정할 수 없습니다. 이 파일은 N'%SQLDIR%\MSSQL\DATA\blackbox.trc'

  • 이 추적에는 다음과 같은 이벤트와 이러한 이벤트의 열만 포함됩니다.

    • RPC starting

    • Batch starting

    • 예외

    • Attention

  • 이 추적에서는 이벤트나 열을 추가 또는 제거할 수 없습니다.

  • 이 추적에는 필터를 지정할 수 없습니다.

사용 권한

사용자는 ALTER TRACE 권한이 있어야 합니다.

참고 항목

참조

sp_trace_generateevent(Transact-SQL)

sp_trace_setevent(Transact-SQL)

sp_trace_setfilter(Transact-SQL)

sp_trace_setstatus(Transact-SQL)

개념

SQL 추적