DAC(데이터 계층 애플리케이션)

적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

DAC(데이터 계층 애플리케이션)는 사용자의 데이터베이스와 연결된 모든 SQL Server 개체(예: 테이블, 뷰 및 로그인을 포함한 인스턴스 개체)를 정의하는 논리 데이터베이스 엔터티입니다. DAC는 전체 데이터베이스 모델의 자체 포함 단위이며 DAC 패키지 또는 .dacpac라는 아티팩트에서 이식 가능합니다. 데이터 계층 애플리케이션에 대한 도구 지원을 사용하면 개발자와 데이터베이스 관리자가 새 데이터베이스 또는 기존 데이터베이스에 dacpacs를 배포할 수 있습니다. 기존 데이터베이스에 대한 배포는 dacpac의 내용과 일치하도록 기존 상태에서 데이터베이스 모델을 업데이트합니다. 개발자는 데이터베이스 스키마에서 원본 제어를 사용하도록 설정하는 SQL 개체를 빌드하기 위한 선언적 개발 개념인 SQL 데이터베이스 프로젝트에서 DAC를 빌드합니다.

.bacpac은 기본적으로 데이터베이스 스키마와 데이터베이스에 저장된 데이터를 캡슐화하는 관련 아티팩트입니다. BACPAC의 주요 사용 사례는 데이터베이스를 한 서버에서 다른 서버로 이동하거나 로컬 서버에서 클라우드 로 데이터베이스를 마이그레이션하고 기존 데이터베이스를 개방형 형식으로 보관하는 것입니다.

데이터 계층 애플리케이션의 이점

데이터베이스 애플리케이션의 수명 주기에는 개발자와 DBA가 스크립트를 교환하고 애플리케이션 업데이트 작업에 대한 일회용 통합 정보를 공유해야 할 수 있습니다. 이 프로세스는 경우에 따라 허용되지만 DevOps 파이프라인 및 일반 개발 프로세스와 통합하기 어려울 수 있습니다.

데이터 계층 애플리케이션은 선언적 데이터베이스 개발을 가능하게 하여 개발 프로세스를 간소화하고 보다 일관되고 예측 가능한 개발 환경을 제공합니다. 개발자는 선택한 IDE(통합 개발 환경)에서 SQL 데이터베이스 프로젝트를 사용하여 데이터베이스를 작성할 수 있습니다. SQL 데이터베이스 프로젝트는 로컬 또는 DevOps 파이프라인에서 DAC 패키지로 컴파일할 수 있습니다. DAC 패키지는 자동화된 프로세스를 통해 또는 CLI 또는 GUI 도구를 사용하여 수동으로 테스트, 스테이징 또는 프로덕션 데이터베이스에 배포됩니다. .dacpac사용하여 새 개체 또는 수정된 개체로 데이터베이스를 업데이트하거나, 이전 버전의 데이터베이스로 되돌리기, 완전히 새로운 데이터베이스를 프로비전할 수 있습니다. 반대로 기존 데이터베이스에서 .dacpac 을 생성하고 현재 데이터베이스 스키마를 기반으로 SQL 데이터베이스 프로젝트를 설정하는 데 사용할 수 있습니다.

마이그레이션 기반 프로세스에 비해 DAC 기반 배포의 장점은 이 프로세스를 통해 다른 원본 및 대상 데이터베이스의 동작을 식별하고 유효성을 검사할 수 있다는 것입니다. 데이터베이스 배포/업그레이드 중에 사용되는 도구에는 데이터 손실을 유발할 수 있는 열 크기 변경 및 업그레이드 계획을 직접 스크립팅하는 기능과 같은 위험한 작업에 플래그를 지정하는 옵션이 있습니다. 이 계획은 업데이트를 계속하기 전에 수동으로 평가할 수 있습니다.

작업

DAC는 애플리케이션을 지원하는 데이터 계층 요소의 개발, 배포 및 관리를 간소화합니다.

DACPAC

DAC는 다음 작업을 지원합니다.

  • EXTRACT - 사용자가 데이터베이스를 .dacpac으로 추출할 수 있습니다. 자세한 내용은 SqlPackage 추출데이터베이스에서 DAC 추출을 참조하세요.

  • DEPLOY/PUBLISH - 사용자가 호스트 서버에 .dacpac을 배포할 수 있습니다. 기존 데이터베이스에 배포가 완료되면 데이터베이스와 DAC 간의 차이가 개체 업데이트 작업으로 데이터베이스에 적용됩니다. "게시"라는 용어는 종종 "배포"와 상호 교환하여 사용됩니다. 자세한 내용은 SqlPackage 게시, 데이터 계층 애플리케이션 배포 및 DAC를 사용하여 데이터베이스 배포를 참조하세요.

이러한 기능은 SqlPackage, SQL Server Management Studio, Azure Data Studio 및 SQL Server Data Tools에서 찾을 수 있습니다.

SQL 데이터베이스 프로젝트

SQL 프로젝트는 다음 작업을 지원합니다.

  • BUILD - 사용자가 SQL 데이터베이스 프로젝트를 .dacpac으로 빌드할 수 있습니다.

  • PUBLISH - 사용자가 SQL 데이터베이스 프로젝트를 호스트 서버에 게시할 수 있습니다.

  • EXTRACT - 사용자가 SQL 데이터베이스 프로젝트에 데이터베이스를 추출할 수 있습니다.

이러한 기능은 Azure Data Studio, Visual Studio Code 및 SQL Server Data Tools에서 찾을 수 있습니다.

BACPAC

반면. .bacpac은 두 가지 기본 작업을 지원하는 스키마 및 데이터 캡처에 중점을 줍니다.

이러한 기능은 SqlPackage, SQL Server Management Studio, Azure Data Studio 및 Azure Portal 도구에서 지원됩니다.

DAC 도구

데이터 계층 애플리케이션 아티팩트 및 SQL 프로젝트는 여러 도구에서 사용할 수 있습니다. 이러한 도구는 다양한 사용자 페르소나의 요구 사항을 해결합니다.

DACPAC 및 BACPAC

다음 도구는 DAC 패키지 및 BAC 패키지 형식을 지원합니다.

이러한 도구에서 데이터베이스를 .dacpac으로 추출하거나 .bacpac으로 내보낼 수 있습니다. 반대로 .bacpac새 데이터베이스로 가져오거나 .dacpac를 새 데이터베이스 또는 기존 데이터베이스에 게시할 수 있습니다.

DACPAC 및 SQL 프로젝트

다음 도구는 SQL 데이터베이스 프로젝트 편집을 제공하는 것 외에도 DAC 패키지 형식을 지원합니다.

이러한 도구에서 개발자는 연결되지 않은 클라이언트 쪽 개발 환경에서 데이터베이스를 디자인할 수 있습니다. 이 도구를 사용하여 DAC 패키지를 만들고, 데이터베이스에 DAC 패키지를 배포하고, 데이터베이스 패키지를 SQL 프로젝트로 가져올 수 있습니다.

DAC 개념

버전 지원

일반적으로 DAC 도구는 이전 SQL Server 버전에서 DAC 도구로 생성된 .dacpac 파일을 읽을 수 있으며 이전 버전의 SQL Server에 DAC 패키지를 배포할 수도 있습니다. 그러나 이전 버전의 DAC 도구는 이후 버전의 DAC 도구에서 생성된 .dacpac 파일을 읽을 수 없습니다. DAC 도구는 최소한 릴리스 시 지원되는 SQL Server 버전을 지원합니다.

파일 형식

.dacpac는 .dacpac 확장이 있는 압축된 폴더이며, 마찬가지로 .bacpac은 .bacpac 확장이 있는 압축 폴더입니다. 고급 사용자는 파일의 압축을 풀면 원본, 데이터베이스의 개체 및 기타 특성을 나타내는 여러 XML 섹션을 볼 수 있습니다. .dacpac 또는 .bacpac의 압축을 풀려면 파일 확장자를 .zip으로 바꾸고 파일 압축 유틸리티를 사용하여 파일 압축을 풉니다.

데이터 계층 애플리케이션 등록

SQL Server Management Studio에서 데이터베이스에서 다른 작업을 수행하여 데이터 계층 애플리케이션으로 등록할 수 있습니다.

  • 등록 - 사용자가 데이터베이스를 데이터 계층 애플리케이션으로 등록할 수 있습니다.

  • UNREGISTER - 이전에 DAC로 등록된 데이터베이스를 등록 취소할 수 있습니다.

  • UPGRADE - .dacpac을 사용하여 데이터베이스를 업그레이드할 수 있습니다.

이러한 작업에 대한 자세한 내용은 아래 작업을 참조하세요.

Task 문서 링크
새 DAC 패키지 파일을 사용하여 인스턴스를 새 버전의 DAC로 업그레이드하는 방법을 설명합니다. 데이터 계층 애플리케이션 업그레이드
DAC 인스턴스를 제거하는 방법에 대해 설명합니다. 연결된 데이터베이스를 선택하여 분리 또는 삭제하거나 데이터베이스를 그대로 둘 수도 있습니다. 데이터 계층 애플리케이션 삭제
기존 데이터베이스를 DAC 인스턴스로 승격하는 방법을 설명합니다. DAC 정의는 빌드되고 시스템 데이터베이스에 저장됩니다. 데이터베이스를 DAC로 등록
프로덕션 시스템에서 DAC 패키지를 사용하기 전에 DAC 패키지의 내용 및 DAC 업그레이드에서 수행할 동작을 검토하는 방법에 대해 설명합니다. DAC 패키지 유효성 검사

다음 단계