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 행을 삭제할 수 있는 메커니즘이 없습니다.
참고 항목
참조
개념
변경 내역
업데이트된 내용 |
---|
행 삭제에 대한 방법이 추가되었습니다. |
required 및 comments 열이 추가되었습니다. |