데이터베이스에서 DAC 추출

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

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

시작하기 전에

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

제한 사항

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

사용 권한

DAC를 추출하려면 적어도 ALTER ANY LOGIN 및 데이터베이스 범위 VIEW DEFINITION 권한과 sys.sql_expression_dependencies 대한 SELECT 권한이 필요합니다. 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 패키지에는 지원되는 모든 데이터베이스 개체 및 데이터베이스와 관련된 인스턴스 개체의 스키마가 이미 포함되어 있습니다.

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

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

[추출 마법사]

속성 설정 페이지

이 마법사 페이지를 사용하여 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)  

참고 항목