데이터베이스에서 DAC 추출Extract a DAC From a Database

데이터 계층 응용 프로그램 추출 마법사 나 Windows PowerShell 스크립트를 사용하여 기존 SQL Server 데이터베이스에서 DAC(데이터 계층 응용 프로그램) 패키지를 추출할 수 있습니다.Use either the Extract Data-tier Application Wizard or a Windows PowerShell script to extract a data-tier application (DAC) package from an existing SQL Server database. 추출이 끝나면 데이터베이스 개체의 정의 및 이와 관련된 인스턴스 수준 요소를 포함하는 DAC 패키지 파일이 생성됩니다.The extraction process creates a DAC package file that contains definitions of the database objects and their related instance-level elements. 예를 들어 DAC 패키지 파일에는 데이터베이스 테이블, 저장 프로시저, 뷰, 사용자, 그리고 데이터베이스 사용자에 매핑되는 로그인이 포함됩니다.For example, a DAC package file contains the database tables, stored procedures, views, and users, along with the logins that map to the database users.

시작하기 전 주의 사항Before you begin

SQL 데이터베이스SQL Database또는 SQL Server 2000SQL Server 2000 서비스 팩 4 이상의 인스턴스에 있는 데이터베이스에서 DAC를 추출할 수 있습니다.You can extract a DAC from databases residing on instances of SQL 데이터베이스SQL Database, or SQL Server 2000SQL Server 2000 Service Pack 4 or later. DAC에서 배포된 데이터베이스에 대해 추출 프로세스를 실행하는 경우 데이터베이스에서 개체 정의만 추출됩니다.If the extraction process is run against a database that was deployed from a DAC, only the definitions of the objects in the database are extracted. 프로세스에서는 msdb ( master SQL 데이터베이스SQL Database)에 등록된 DAC를 참조하지 않습니다.The process does not reference the DAC registered in msdb (master in SQL 데이터베이스SQL Database). 추출 프로세스에서는 데이터베이스 엔진의 현재 인스턴스에 DAC 정의를 등록하지 않습니다.The extraction process does not register the DAC definition in the current instance of the Database Engine. DAC를 등록하는 방법은 Register a Database As a DAC을 참조하세요.For more information about registering a DAC, see Register a Database As a DAC.

제한 사항 Limitations and restrictions

SQL 데이터베이스SQL Database또는 SQL Server 2005SQL Server 2005 SP4(서비스 팩 4) 이상에서만 데이터베이스에서 DAC를 추출할 수 있습니다.A DAC can only be extracted from a database in SQL 데이터베이스SQL Database, or SQL Server 2005SQL Server 2005 Service Pack 4 (SP4) or later. DAC 또는 포함된 사용자가 지원하지 않는 개체가 데이터베이스에 있는 경우 DAC를 추출할 수 없습니다.You cannot extract a DAC if the database has objects that are not supported in a DAC, or contained users. DAC에서 지원되는 개체 유형에 대한 자세한 내용은 DAC Support For SQL Server Objects and Versions을 참조하세요.For more information about the types of objects supported in a DAC, see DAC Support For SQL Server Objects and Versions.

사용 권한 Permissions

DAC를 추출하려면 sys.sql_expression_dependencies에 대한 SELECT 권한뿐만 아니라 최소한 ALTER ANY LOGIN 및 데이터베이스 범위 VIEW DEFINITION 권한이 있어야 합니다.Extracting a DAC requires at least ALTER ANY LOGIN and database scope VIEW DEFINITION permissions, as well as SELECT permissions on sys.sql_expression_dependencies. DAC를 추출하려면 securityadmin 고정 서버 역할의 멤버이면서 DAC를 추출하는 데이터베이스의 database_owner 고정 데이터베이스 역할의 멤버여야 합니다.Extracting a DAC can be done by members of the securityadmin fixed server role who are also members of the database_owner fixed database role in the database from which the DAC is extracted. sysadmin 고정 서버 역할의 멤버 또는 기본 제공 SQL Server 시스템 관리자 계정인 sa 도 DAC를 추출할 수 있습니다.Members of the sysadmin fixed server role or the built-in SQL Server system administrator account named sa can also extract a DAC.

데이터 계층 응용 프로그램 추출 마법사 사용 Using the Extract Data-tier Application Wizard

마법사를 사용하여 DAC를 추출하려면To Extract a DAC Using a Wizard

  1. 개체 탐색기에서 DAC를 추출할 데이터베이스가 포함된 인스턴스에 대한 노드를 확장합니다.In Object Explorer, expand the node for the instance containing the database from which the DAC is to be extracted.

  2. 데이터베이스 노드를 확장합니다.Expand the Databases node.

  3. DAC를 추출할 데이터베이스에 대한 노드를 마우스 오른쪽 단추로 클릭하고 태스크를 가리킨 다음 데이터 계층 응용 프로그램 추출…을 선택합니다.Right-click the node for the database from which the DAC is to be extracted, point to Tasks, and then select Extract Data-tier Application…

  4. 마법사 대화 상자를 완료합니다.Complete the wizard dialogs:

    1. 소개 페이지Introduction Page

    2. 데이터 선택 페이지Select Data Page

    3. 속성 설정 페이지Set Properties Page

    4. 유효성 검사 및 요약 페이지Validation and Summary Page

    5. 패키지 빌드 페이지Build Package Page

마법사 소개 페이지 Wizard introduction page

이 페이지에서는 데이터 계층 응용 프로그램을 추출하는 단계에 대해 설명합니다.This page describes the steps for extracting a data-tier application.

이 페이지를 다시 표시 안 함Do not show this page again. - 앞으로 이 페이지가 표시되지 않도록 하려면 이 확인란을 클릭합니다.- Click the check box to stop the page from being displayed in the future.

다음 > - 방법 선택 페이지로 진행합니다.Next > - Proceeds to the Choose Method page.

취소 - 데이터 계층 응용 프로그램을 데이터베이스에서 추출하지 않고 마법사를 종료합니다.Cancel - Ends the wizard without extracting a data-tier application from the database.

[추출 마법사][Extract Wizard]

Select data page Select data page

DAC(데이터 계층 응용 프로그램) 패키지 파일에 포함할 참조 데이터를 선택합니다.Select the reference data that you want to include in your data-tier application (DAC) package file. DAC 패키지에 데이터를 포함하는 것은 선택 사항입니다.Including data in your DAC package is optional. 지원되는 모든 데이터베이스 개체 및 데이터베이스와 관련된 인스턴스 개체의 스키마는 DAC 패키지에 미리 포함됩니다.The DAC package will already include the schema of all supported database objects and instance objects related to your database.

최대 10MB의 참조 데이터를 DAC 패키지 파일에 포함할 수 있습니다.You can include up to 10 MB of reference data in your DAC package file. 그러나 DAC에 테이블을 포함하려는 경우 테이블에 image 또는 varchar(max)와 같은 BLOB(Binary Large Object) 데이터 형식을 포함할 수 없습니다.However, for tables to be included in the DAC, they may not contain binary large object (BLOB) data types such as image or varchar(max). 다른 데이터베이스로 전송하기 위해 많은 양의 데이터를 추출하려는 경우 SQL Server Integration Services, 대량 복사 유틸리티 또는 다른 여러 데이터 마이그레이션 방법 중 하나를 사용하세요.To extract larger amounts of data for transferring to another database, use SQL Server Integration Services, the bulk copy utility, or one of many other data migration techniques.

데이터베이스 테이블 - DAC 패키지에 포함할 데이터가 포함된 데이터베이스 테이블 옆의 확인란을 선택합니다.Database table - Select the check box next to the database tables which contain the data that you want to include in your DAC package. 10,000개 이하의 행이 포함된 테이블을 10개까지 선택할 수 있습니다.You can select up to ten tables that have 10,000 rows or less.

[추출 마법사][Extract Wizard]

Set properties page Set properties page

이 마법사 페이지를 사용하여 DAC(데이터 계층 응용 프로그램)를 기술할 수 있습니다.Use this page of the wizard to describe the data-tier application (DAC). 이러한 속성은 DAC를 식별하는 데 사용되고 다른 DAC와 구별하는 데 도움이 됩니다.These properties are used to identify the DAC and help distinguish it from others.

이름 - 이 이름은 DAC를 식별합니다.Name - This name identifies the DAC. DAC 이름은 DAC 패키지 파일의 이름과 다를 수 있으며 응용 프로그램 특징을 기술해야 합니다.It can be different than the name of the DAC package file and should describe your application. 예를 들어 데이터베이스가 재무 응용 프로그램에 사용되는 경우 DAC Finance라는 이름을 지정할 수 있습니다.For example, if the database is used for a finance application, you may wish to name the DAC Finance.

버전(xx.xx.xx.xx 사용, x는 숫자) - DAC의 버전을 식별하는 숫자 값입니다.Version (use xx.xx.xx.xx, where x is a number) - A numeric value that identifies the version of the DAC. DAC 버전은 Visual Studio에서 개발자가 작업 중인 DAC의 버전을 식별하는 데 사용됩니다.The DAC version is used in Visual Studio to identify the version of the DAC that developers are working on. DAC를 배포하는 경우 이 버전은 msdb 데이터베이스에 저장되고 나중에 데이터 계층 응용 프로그램 SQL Server Management StudioSQL Server Management Studio노드에서 볼 수 있습니다.When deploying a DAC, the version is stored in the msdb database and can later be viewed under the Data-tier Applications node in SQL Server Management StudioSQL Server Management Studio.

설명: - 선택 사항입니다.Description: - Optional. DAC에 대해 설명합니다.Describes the DAC. DAC를 배포하는 경우 이 설명은 msdb 데이터베이스에 저장되고 나중에 데이터 계층 응용 프로그램 Management StudioManagement Studio노드에서 볼 수 있습니다.When deploying a DAC, the description is stored in the msdb database and can later be viewed under the Data-tier Applications node in Management StudioManagement Studio.

DAC 패키지 파일에 저장(파일 이름에 .dacpac 확장명 포함): - DAC를 확장명이 .dacpac인 DAC 패키지 파일에 저장합니다.Save to DAC package file (include .dacpac extension with file name): - Saves the DAC to a DAC package file, with a .dacpac extension. 파일의 이름과 위치를 지정하려면 찾아보기 단추를 클릭합니다.Click the Browse button to specify a name and location for the file.

기존 파일 덮어쓰기 - 이름이 같은 파일이 이미 있을 경우 DAC 패키지 파일을 바꾸려면 이 확인란을 선택합니다.Overwrite existing file - Select this check box to replace the DAC package file if one already exists with the same name.

Validation and summary page Validation and summary page

이 페이지에서 마법사는 모든 데이터베이스 개체가 DAC(데이터 계층 응용 프로그램)에 의해 지원되는지 확인합니다.On this page, the wizard validates that all database objects are supported by a data-tier application (DAC). 또한 데이터베이스 개체 간의 종속성도 검사하여 DAC에 성공적으로 포함될 수 있는 개체 집합을 확인합니다.It also checks dependencies across database objects to determine the set of objects that can be successfully included in the DAC. 그런 다음 유효성 검사 보고서를 표시하고 이 마법사에서 선택한 옵션을 요약합니다.After that, it displays the validation report and summarizes the options that you have selected in this wizard. 옵션을 변경하려면 이전을 클릭하고,To change an option, click Previous. DAC 추출을 시작하려면 다음을 클릭합니다.To begin extracting a DAC, click Next.

참고!DAC에서 지원하지 않는 개체가 하나 이상 있으면 다음 단추가 비활성화되고 추출 프로세스를 계속할 수 없습니다.NOTE!If one or more objects are not supported by a DAC, then the Next button is disabled and the extraction process may not continue. 이 경우에는 지원되지 않는 개체를 제거하고 이 마법사를 다시 실행하는 것이 좋습니다.In such cases, it is recommended to remove the non-supported objects and then run this wizard again.

요약 - 선택한 옵션에 대한 요약 정보가 DAC 속성아래에 나열됩니다.Summary - A summary of the options you have selected are listed under DAC properties. 유효성 검사 결과는 DAC 개체아래에 나열됩니다.The results of the validation are listed under DAC objects. 유효성 검사 결과는 다음과 같은 세 가지 유형으로 나타납니다.There are three types of results from the validation:

  • DAC에서 지원되는 개체: 여기에 나열되는 개체 및 개체 종속성은 지원되며 DAC에 성공적으로 포함될 수 있습니다.Objects included in DAC successfully: these objects and their dependencies are supported, and can be included in the DAC successfully.

  • DAC에서 지원되지만 경고가 있는 개체: 여기에 나열되는 개체는 지원되지만 DAC에서 지원하지 않는 다른 개체에 종속되어 있습니다.Objects included in DAC with warnings: these objects are supported, but depend on other objects that are not supported in a DAC.

  • DAC에서 지원되지 않는 개체: 여기에 나열되는 개체는 지원되지 않으므로 DAC를 추출하기 전에 데이터베이스에서 제거해야 합니다.Objects not included in DAC: these objects are not supported and must be removed from the database before successfully extracting a DAC.

    유효성 프로세스에서는 여러 수준의 종속성을 검사합니다.The validation process checks multiple levels of dependencies. 예를 들어 지원되지 않는 CLR 데이터 형식을 사용하는 테이블에 종속된 저장 프로시저는 DAC에서 지원되지만 경고가 있는 개체아래에 나열됩니다.For example, if a stored procedure depends on a table that uses the unsupported CLR data type, the stored procedure will be listed under Objects included in DAC with warnings.

    DAC에서 지원하지 않는 개체가 하나 이상 있으면 다음 단추가 비활성화되고 추출 프로세스를 계속할 수 없습니다.If one or more objects are not supported by a DAC, then the Next button is disabled and the extraction process will not continue. 이 경우에는 지원되지 않는 개체를 제거하고 이 마법사를 다시 실행하는 것이 좋습니다.In such cases, it is recommended to remove the objects that are not supported and then run this wizard again.

    보고서 저장 - 요약에서 DAC 개체 노드 아래의 모든 개체를 나열하는 HTML 기반 파일을 저장할 수 있습니다.Save Report - Enables you to save an HTML-based file that lists all of the objects under the DAC Objects node in the summary. 이 보고서는 DAC에서 일부 데이터베이스 개체가 지원되지 않는 경우 유용합니다.This report can be useful when some of your database objects are not supported in a DAC. DAC를 다시 추출하기 전에 이 보고서를 사용하여 지원되지 않는 개체를 변경하거나 제거할 수 있습니다.Use the report to change or remove objects that are not supported, before trying to extract the DAC again.

    Build package page Build package page

    이 페이지를 사용하여 마법사에서 DAC(데이터 계층 응용 프로그램)를 추출할 때 진행률을 모니터링할 수 있습니다.Use this page to monitor the progress of the wizard as it extracts the data-tier application (DAC).

    동작 - DAC 패키지 파일 만들기 및 저장 동작을 수행하는 동안 마법사는 SQL Server 데이터베이스에서 DAC를 추출합니다.Action - During the Create and save DAC package file action, the wizard extracts a DAC from your SQL Server database. 그런 다음 메모리에 DAC 패키지가 만들어지고 사용자가 지정한 위치에 저장됩니다.Then, a DAC package is created in memory and saved to the location you specified. 해당 단계의 결과를 확인하려면 결과 열의 링크를 클릭합니다.Click on the links in the Result column to see the outcome of the corresponding step.

    보고서 저장 - 마법사의 진행률 결과를 파일로 저장하려면 클릭합니다.Save Report - Click to save the results of the wizard's progress to a file.

    마침 - 처리가 완료된 후에나 오류가 발생한 경우 마법사를 닫으려면 클릭합니다.Finish - Click to close the wizard after processing has completed, or if an error occurs.

PowerShell을 사용하여 DAC 추출 Extract a DAC using PowerShell

PowerShell 스크립트에서 Extract() 메서드를 사용하여 데이터베이스에서 DAC를 추출하려면To extract a DAC from a database using the Extract() method in a PowerShell script

  1. SMO Server 개체를 만든 후 이 개체를 DAC를 추출할 데이터베이스를 포함하는 인스턴스로 설정합니다.Create a SMO Server object and set it to the instance that contains the database from which the DAC is to be extracted.

  2. 데이터베이스의 이름을 지정하는 변수를 추가합니다.Add a variable that specifies the name of the database.

  3. DAC에 대한 메타데이터(예: DAC 이름, 버전 및 설명)를 지정합니다.Specify the metadata for the DAC, such as the DAC name, version, and description.

  4. 추출한 DAC 패키지 파일의 경로와 파일 이름을 지정합니다.Specify the path and file name for the extracted DAC package file.

  5. 위에서 지정한 정보를 사용하여 Extract 메서드를 실행합니다.Run the Extract method with the information specified above.

예제(PowerShell)Example (PowerShell)

다음 예에서는 MyDB 데이터베이스에서 MyApplication이라는 DAC를 추출합니다.The following example extracts a DAC named MyApplication from a database named MyDB.

## 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)  

참고 항목See also

Data-tier Applications