다음을 통해 공유


sysdac_history_internal(Transact-SQL)

DAC(데이터 계층 응용 프로그램)를 관리하기 위해 수행된 동작에 대한 정보를 포함합니다. 이 테이블은 msdb 데이터베이스의 dbo 스키마에 저장됩니다.

열 이름

데이터 형식

설명

action_id

int

동작의 식별자입니다.

sequence_id

int

동작 내의 단계를 식별합니다.

instance_id

uniqueidentifier

DAC 인스턴스의 식별자입니다. 이 열은 dbo.sysdac_instances(Transact-SQL)instance_id 열에서 조인할 수 있습니다.

action_type

tinyint

동작 유형의 식별자입니다.

0 = 배포

1 = 만들기

2 = 이름 바꾸기

3 = 분리

4 = 삭제

action_type_name

varchar(19)

동작 유형의 이름입니다.

배포

만들기

이름 바꾸기

분리

삭제

dac_object_type

tinyint

동작의 영향을 받는 개체의 유형에 대한 식별자입니다.

0 = dacpac

1 = 로그인

2 = 데이터베이스

dac_object_type_name

varchar(8)

동작의 영향을 받는 개체의 유형에 대한 이름입니다.

dacpac = DAC 인스턴스

로그인

데이터베이스

action_status

tinyint

동작의 현재 상태를 식별하는 코드입니다.

0 = 보류 중

1 = 성공

2 = 실패

action_status_name

varchar(11)

동작의 현재 상태입니다.

보류 중

성공

실패

Required

bit

DAC 작업을 롤백할 때 데이터베이스 엔진에서 사용됩니다.

dac_object_name_pretran

sysname

동작이 포함된 트랜잭션이 커밋되기 전의 개체 이름입니다. 데이터베이스 및 로그인에만 사용됩니다.

dac_object_name_posttran

sysname

동작이 포함된 트랜잭션이 커밋된 후의 개체 이름입니다. 데이터베이스 및 로그인에만 사용됩니다.

sqlscript

nvarchar(max)

데이터베이스 또는 로그인에서 동작을 구현하는 Transact-SQL 스크립트입니다.

payload

varbinary(max)

인코딩된 이진 문자열에 저장된 DAC 패키지 정의입니다.

comments

varchar(max)

DAC 업그레이드 시 잠재적 데이터 손실을 허용한 사용자의 로그인을 기록합니다.

error_string

nvarchar(max)

동작에 오류가 발생한 경우 생성되는 오류 메시지입니다.

created_by

sysname

이 항목을 만든 동작을 시작한 로그인입니다.

date_created

datetime

이 항목을 만든 날짜와 시간입니다.

date_modified

datetime

이 항목을 마지막으로 수정한 날짜와 시간입니다.

주의

DAC 배포 또는 삭제와 같은 DAC 관리 동작은 여러 단계를 생성합니다. 각 동작에는 동작 식별자가 할당됩니다. 각 단계에는 단계의 상태가 기록되는 sysdac_history_internal의 시퀀스 번호와 행이 할당됩니다. 각 행은 동작 단계가 시작될 때 만들어지고 작업 상태를 반영하기 위해 필요에 따라 업데이트됩니다. 예를 들어 DAC 배포 동작은 action_id 12가 할당되고 sysdac_history_internal의 네 개 행을 가질 수 있습니다.

action_id

sequence_id

action_type_name

dac_object_type_name

12

0

만들기

dacpac

12

1

만들기

로그인

12

2

만들기

데이터베이스

12

3

이름 바꾸기

데이터베이스

삭제와 같은 DAC 작업은 sysdac_history_internal에서 행을 제거하지 않습니다. 다음 쿼리를 사용하여 데이터베이스 엔진 인스턴스에 더 이상 배포되지 않는 DAC의 행을 수동으로 삭제할 수 있습니다.

DELETE FROM msdb.dbo.sysdac_history_internal
WHERE instance_id NOT IN
   (SELECT instance_id
    FROM msdb.dbo.sysdac_instances_internal);

활성 DAC의 행을 삭제해도 DAC 작업에는 영향을 주지 않습니다. 이로 인해서는 DAC의 전체 기록을 보고할 수 없을 뿐입니다.

[!참고]

현재까지는 SQL Azure에서 sysdac_history_internal 행을 삭제할 수 있는 메커니즘이 없습니다.

변경 내역

업데이트된 내용

행 삭제에 대한 방법이 추가되었습니다.

requiredcomments 열이 추가되었습니다.