데이터 계층 애플리케이션 테이블 - sysdac_history_internal
적용 대상: SQL Server
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 = create 2 = 이름 바꾸기 3 = 분리 4 = 삭제 |
action_type_name | varchar(19) | 동작 유형의 이름입니다. 전개시키다 만들기 rename 떼다 delete |
dac_object_type | tinyint | 작업의 영향을 받는 개체 형식의 식별자: 0 = dacpac 1 = 로그인 2 = 데이터베이스 |
dac_object_type_name | varchar(8) | 작업의 영향을 받는 개체 형식의 이름입니다. dacpac = DAC 인스턴스 로그인 database |
action_status | tinyint | 작업의 현재 상태를 식별하는 코드: 0 = 보류 중 1 = 성공 2 = 실패 |
action_status_name | varchar(11) | 동작의 현재 상태입니다. 보류 중 성공 fail |
Required | bit | DAC 작업을 롤백할 때 데이터베이스 엔진 사용됩니다. |
dac_object_name_pretran | sysname | 작업이 포함된 트랜잭션이 커밋되기 전의 개체 이름입니다. 데이터베이스 및 로그인에만 사용됩니다. |
dac_object_name_posttran | sysname | 작업이 포함된 트랜잭션이 커밋된 후의 개체 이름입니다. 데이터베이스 및 로그인에만 사용됩니다. |
sqlscript | nvarchar(max) | 데이터베이스 또는 로그인에 대한 작업을 구현하는 Transact-SQL 스크립트입니다. |
payload | varbinary(max) | 이진 인코딩된 문자열에 저장된 DAC 패키지 정의입니다. |
의견 | varchar(max) | DAC 업그레이드에서 잠재적인 데이터 손실을 수락한 사용자의 로그인을 기록합니다. |
error_string | nvarchar(max) | 작업에 오류가 발생할 경우 생성되는 오류 메시지입니다. |
created_by | sysname | 이 항목을 만든 동작을 시작한 로그인입니다. |
date_created | 날짜/시간 | 이 항목을 만든 날짜와 시간입니다. |
date_modified | 날짜/시간 | 항목이 마지막으로 수정된 날짜 및 시간입니다. |
설명
DAC 배포 또는 삭제와 같은 DAC 관리 동작은 여러 단계를 생성합니다. 각 작업에는 작업 식별자가 할당됩니다. 각 단계에는 시퀀스 번호와 sysdac_history_internal 행이 할당됩니다. 여기서 단계의 상태가 기록됩니다. 각 행은 동작 단계가 시작될 때 만들어지고 작업 상태를 반영하기 위해 필요에 따라 업데이트됩니다. 예를 들어 배포 DAC 작업은 action_id 12에 할당되고 sysdac_history_internal 4개의 행을 가져올 수 있습니다.
action_id | sequence_id | action_type_name | dac_object_type_name |
---|---|---|---|
12 | 0 | 만들기 | dacpac |
12 | 1 | 만들기 | login |
12 | 2 | 만들기 | database |
12 | 3 | rename | database |
삭제와 같은 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에 대한 전체 기록을 보고할 수 없다는 것입니다.
참고 항목
현재 Azure SQL Database에서 sysdac_history_internal 행을 삭제하는 메커니즘은 없습니다.
사용 권한
sysadmin 고정 서버 역할의 멤버 자격이 필요합니다. 이 보기에 대한 읽기 전용 액세스는 master 데이터베이스에 연결할 수 있는 권한이 있는 모든 사용자가 사용할 수 있습니다.
참고 항목
데이터 계층 애플리케이션
dbo.sysdac_instances(Transact-SQL)
sysdac_instances_internal(Transact-SQL)