다음을 통해 공유


데이터베이스에서 DAC 추출

데이터 계층 응용 프로그램 추출 마법사나 Windows PowerShell 스크립트를 사용하여 기존 SQL Server 데이터베이스에서 DAC(데이터 계층 응용 프로그램) 패키지를 추출할 수 있습니다. 추출이 끝나면 데이터베이스 개체의 정의 및 이와 관련된 인스턴스 수준 요소를 포함하는 DAC 패키지 파일이 생성됩니다. 예를 들어 DAC 패키지 파일에는 데이터베이스 테이블, 저장 프로시저, 뷰, 사용자, 그리고 데이터베이스 사용자에 매핑되는 로그인이 포함됩니다.

  • 시작하기 전에: 제한 사항, 사용 권한

  • DAC를 추출하려면 다음을 사용합니다. 데이터 계층 응용 프로그램 추출 마법사, PowerShell

시작하기 전에

SQL 데이터베이스 또는 SQL Server 2000 서비스 팩 4 이상의 인스턴스에 있는 데이터베이스에서 DAC를 추출할 수 있습니다. DAC에서 배포된 데이터베이스에 대해 추출 프로세스를 실행하는 경우 데이터베이스에서 개체 정의만 추출됩니다. 프로세스에서는 msdb(SQL 데이터베이스의 master)에 등록된 DAC를 참조하지 않습니다. 추출 프로세스에서는 데이터베이스 엔진의 현재 인스턴스에 DAC 정의를 등록하지 않습니다. DAC를 등록하는 방법은 DAC로 데이터베이스 등록을 참조하십시오.

제한 사항

SQL 데이터베이스 또는 SQL Server 2005 SP4(서비스 팩 4) 이상에서만 데이터베이스에서 DAC를 추출할 수 있습니다. DAC 또는 포함된 사용자가 지원하지 않는 개체가 데이터베이스에 있는 경우 DAC를 추출할 수 없습니다. DAC에서 지원되는 개체 유형에 대한 자세한 내용은 SQL Server 개체 및 버전에 대한 DAC 지원을 참조하십시오.

[맨 위]

사용 권한

DAC를 추출하려면 sys.sql_expression_dependencies에 대한 SELECT 권한뿐만 아니라 최소한 ALTER ANY LOGIN 및 데이터베이스 범위 VIEW DEFINITION 권한이 있어야 합니다. DAC를 추출하려면 securityadmin 고정 서버 역할의 멤버이면서 DAC를 추출하는 데이터베이스의 database_owner 고정 데이터베이스 역할의 멤버여야 합니다. sysadmin 고정 서버 역할의 멤버 또는 기본 제공 SQL Server 시스템 관리자 계정인 sa도 DAC를 추출할 수 있습니다.

[맨 위]

데이터 계층 응용 프로그램 추출 마법사 사용

마법사를 사용하여 DAC를 추출하려면

  1. 개체 탐색기에서 DAC를 추출할 데이터베이스가 포함된 인스턴스에 대한 노드를 확장합니다.

  2. 데이터베이스 노드를 확장합니다.

  3. DAC를 추출할 데이터베이스에 대한 노드를 마우스 오른쪽 단추로 클릭하고 태스크를 가리킨 다음 **데이터 계층 응용 프로그램 추출…**을 선택합니다.

  4. 마법사 대화 상자를 완료합니다.

    1. 소개 페이지

    2. 데이터 선택 페이지

    3. 속성 설정 페이지

    4. 유효성 검사 및 요약 페이지

    5. 패키지 빌드 페이지

[맨 위]

소개 페이지

이 페이지에서는 데이터 계층 응용 프로그램을 추출하는 단계에 대해 설명합니다.

이 페이지를 다시 표시 안 함 - 앞으로 이 페이지가 표시되지 않도록 하려면 이 확인란을 클릭합니다.

다음 > - 방법 선택 페이지로 진행합니다.

취소 - 데이터 계층 응용 프로그램을 데이터베이스에서 추출하지 않고 마법사를 종료합니다.

[추출 마법사]

데이터 선택 페이지

마법사의 이 페이지를 사용하여 DAC(데이터 계층 응용 프로그램) 패키지 파일에 포함할 참조 데이터를 선택할 수 있습니다. DAC 패키지에 데이터를 포함하는 것은 선택 사항입니다. 지원되는 모든 데이터베이스 개체 및 데이터베이스와 관련된 인스턴스 개체의 스키마는 DAC 패키지에 미리 포함됩니다.

최대 10MB의 참조 데이터를 DAC 패키지 파일에 포함할 수 있습니다. 그러나 DAC에 테이블을 포함하려는 경우 테이블에 image 또는 **varchar(max)**와 같은 BLOB(Binary Large Object) 데이터 형식을 포함할 수 없습니다. 다른 데이터베이스로 전송하기 위해 많은 양의 데이터를 추출하려는 경우 SQL Server Integration Services, 대량 복사 유틸리티 또는 다른 여러 데이터 마이그레이션 방법 중 하나를 사용하십시오.

데이터베이스 테이블 - DAC 패키지에 포함할 데이터가 포함된 데이터베이스 테이블 옆의 확인란을 선택합니다. 10,000개 이하의 행이 포함된 테이블을 10개까지 선택할 수 있습니다.

[추출 마법사]

속성 설정 페이지

이 마법사 페이지를 사용하여 DAC(데이터 계층 응용 프로그램)를 기술할 수 있습니다. 이러한 속성은 DAC를 식별하는 데 사용되고 다른 DAC와 구별하는 데 도움이 됩니다.

이름 - 이 이름은 DAC를 식별합니다. DAC 이름은 DAC 패키지 파일의 이름과 다를 수 있으며 응용 프로그램 특징을 기술해야 합니다. 예를 들어 데이터베이스가 재무 응용 프로그램에 사용되는 경우 DAC Finance라는 이름을 지정할 수 있습니다.

버전(xx.xx.xx.xx 사용, x는 숫자) - DAC의 버전을 식별하는 숫자 값입니다. DAC 버전은 Visual Studio에서 개발자가 작업 중인 DAC의 버전을 식별하는 데 사용됩니다. DAC를 배포하는 경우 이 버전은 msdb 데이터베이스에 저장되고 나중에 SQL Server Management Studio의 데이터 계층 응용 프로그램 노드에서 볼 수 있습니다.

설명: - 선택 사항입니다. DAC에 대해 설명합니다. DAC를 배포하는 경우 이 설명은 msdb 데이터베이스에 저장되고 나중에 Management Studio의 데이터 계층 응용 프로그램 노드에서 볼 수 있습니다.

DAC 패키지 파일에 저장(파일 이름에 .dacpac 확장명 포함): - DAC를 확장명이 .dacpac인 DAC 패키지 파일에 저장합니다. 파일의 이름과 위치를 지정하려면 찾아보기 단추를 클릭합니다.

기존 파일 덮어쓰기 - 이름이 같은 파일이 이미 있을 경우 DAC 패키지를 바꾸려면 이 확인란을 선택합니다.

[추출 마법사]

유효성 검사 및 요약 페이지

이 페이지에서 마법사는 모든 데이터베이스 개체가 DAC(데이터 계층 응용 프로그램)에 의해 지원되는지 확인합니다. 또한 데이터베이스 개체 간의 종속성도 검사하여 DAC에 성공적으로 포함될 수 있는 개체 집합을 확인합니다. 그런 다음 유효성 검사 보고서를 표시하고 이 마법사에서 선택한 옵션을 요약합니다. 옵션을 변경하려면 이전을 클릭하고, DAC 추출을 시작하려면 다음을 클릭합니다.

[!참고]

DAC에서 지원하지 않는 개체가 하나 이상 있으면 다음 단추가 비활성화되고 추출 프로세스를 계속할 수 없습니다. 이 경우에는 지원되지 않는 개체를 제거하고 이 마법사를 다시 실행하는 것이 좋습니다.

요약 - 선택한 옵션에 대한 요약 정보가 DAC 속성 아래에 나열됩니다. 유효성 검사 결과는 DAC 개체 아래에 나열됩니다. 유효성 검사 결과는 다음과 같은 세 가지 유형으로 나타납니다.

  • DAC에서 지원되는 개체: 여기에 나열되는 개체 및 개체 종속성은 지원되며 DAC에 성공적으로 포함될 수 있습니다.

  • DAC에서 지원되지만 경고가 있는 개체: 여기에 나열되는 개체는 지원되지만 DAC에서 지원하지 않는 다른 개체에 종속되어 있습니다.

  • DAC에서 지원되지 않는 개체: 여기에 나열되는 개체는 지원되지 않으므로 DAC를 추출하기 전에 데이터베이스에서 제거해야 합니다.

유효성 프로세스에서는 여러 수준의 종속성을 검사합니다. 예를 들어 지원되지 않는 CLR 데이터 형식을 사용하는 테이블에 종속된 저장 프로시저는 DAC에서 지원되지만 경고가 있는 개체 아래에 나열됩니다.

DAC에서 지원하지 않는 개체가 하나 이상 있으면 다음 단추가 비활성화되고 추출 프로세스를 계속할 수 없습니다. 이 경우에는 지원되지 않는 개체를 제거하고 이 마법사를 다시 실행하는 것이 좋습니다.

보고서 저장 - 요약에서 DAC 개체 노드 아래의 모든 개체를 나열하는 HTML 기반 파일을 저장할 수 있습니다. 이 보고서는 DAC에서 일부 데이터베이스 개체가 지원되지 않는 경우 유용합니다. DAC를 다시 추출하기 전에 이 보고서를 사용하여 지원되지 않는 개체를 변경하거나 제거할 수 있습니다.

[추출 마법사]

패키지 빌드 페이지

이 페이지를 사용하여 마법사에서 DAC(데이터 계층 응용 프로그램)를 추출할 때 진행률을 모니터링할 수 있습니다.

동작 - DAC 패키지 파일 만들기 및 저장 동작을 수행하는 동안 마법사는 SQL Server 데이터베이스에서 DAC를 추출합니다. 그런 다음 메모리에 DAC 패키지가 만들어지고 사용자가 지정한 위치에 저장됩니다. 해당 단계의 결과를 확인하려면 결과 열의 링크를 클릭합니다.

보고서 저장 - 마법사의 진행률 결과를 파일로 저장하려면 클릭합니다.

마침 - 처리가 완료된 후에나 오류가 발생한 경우 마법사를 닫으려면 클릭합니다.

[추출 마법사]

PowerShell을 사용하여 DAC 추출

PowerShell 스크립트에서 Extract() 메서드를 사용하여 데이터베이스에서 DAC를 추출하려면

  1. SMO Server 개체를 만든 후 이 개체를 DAC를 추출할 데이터베이스를 포함하는 인스턴스로 설정합니다.

  2. 데이터베이스의 이름을 지정하는 변수를 추가합니다.

  3. DAC에 대한 메타데이터(예: DAC 이름, 버전 및 설명)를 지정합니다.

  4. 추출한 DAC 패키지 파일의 경로와 파일 이름을 지정합니다.

  5. 위에서 지정한 정보를 사용하여 Extract 메서드를 실행합니다.

[맨 위]

예제(PowerShell)

다음 예에서는 MyDB 데이터베이스에서 MyApplication이라는 DAC를 추출합니다.

## Set a SMO Server object to the default instance on the local computer.
CD SQLSERVER:\SQL\localhost\DEFAULT
$srv = get-item .

## Specify the database to extract to a DAC.
$dbname = "MyDB"

## Specify the DAC metadata.
$applicationname = "MyApplication"
$version = "1.0.0.0"
$description = "This DAC defines the database used by my application."

## Specify the location and name for the extracted DAC package.
$dacpacPath = "C:\MyDACs\MyApplication.dacpac"

## Extract the DAC.
$extractionunit = New-Object Microsoft.SqlServer.Management.Dac.DacExtractionUnit($srv, $dbname, $applicationname, $version)
$extractionunit.Description = $description
$extractionunit.Extract($dacpacPath)

[맨 위]

참고 항목

개념

데이터 계층 응용 프로그램