데이터 계층 응용 프로그램 배포Deploy a Data-tier Application

마법사 또는 PowerShell 스크립트를 사용하여 DAC 패키지의 DAC(데이터 계층 응용 프로그램)를 데이터베이스 엔진 또는 Azure SQL Database의 기존 인스턴스에 배포합니다.Deploy a data-tier application (DAC) from a DAC package to an existing instance of the database engine or Azure SQL Database using a wizard or a PowerShell script.

배포 프로세스에서는 msdb 시스템 데이터베이스( SQL 데이터베이스SQL Databasemaster)에 DAC 정의를 저장하여 DAC 인스턴스를 등록하고 데이터베이스를 만든 다음 DAC에 정의된 모든 데이터베이스 개체로 해당 데이터베이스를 채웁니다.The deployment process registers a DAC instance by storing the DAC definition in the msdb system database (master in SQL 데이터베이스SQL Database); creates a database, then populates that database with all the database objects defined in the DAC.

동일한 DAC 패키지를 여러 번 배포Deploy the same DAC package multiple times

동일한 DAC 패키지를 데이터베이스 엔진Database Engine의 단일 인스턴스에 여러 번 배포할 수 있지만 한 번에 하나씩 배포를 실행해야 합니다.You can deploy the same DAC package to a single instance of the 데이터베이스 엔진Database Engine multiple times, but you must run the deployments one at a time. 지정된 DAC 인스턴스 이름은 데이터베이스 엔진Database Engine인스턴스 내에서 각 배포마다 고유해야 합니다.The DAC instance name specified for each deployment must be unique within the instance of the 데이터베이스 엔진Database Engine.

관리되는 인스턴스Managed instances

DAC를 데이터베이스 엔진의 관리되는 인스턴스로 배포하는 경우 배포된 DAC는 유틸리티 컬렉션 집합이 인스턴스에서 유틸리티 제어 지점으로 다음에 전송될 때 SQL Server 유틸리티에 통합됩니다.If you deploy a DAC to a managed instance of the Database Engine, the deployed DAC is incorporated into the SQL Server Utility the next time the utility collection set is sent from the instance to the utility control point. 그러면 DAC가 **** 유틸리티 탐색기 Management StudioManagement Studio 배포된 데이터 계층 응용 프로그램 노드에 표시되고 **** 세부 정보 페이지에 보고됩니다.The DAC will then be present in the Deployed Data-tier Applications node of the Management StudioManagement Studio Utility Explorer and reported in the Deployed Data-tier Applications details page.

데이터베이스 옵션 및 설정Database Options and Settings

기본적으로 배포 중에 생성된 데이터베이스에는 다음을 제외한 CREATE DATABASE 문의 모든 기본 설정이 적용됩니다.By default, the database created during the deployment will have all of the default settings from the CREATE DATABASE statement, except:

  • 데이터베이스 데이터 정렬 및 호환성 수준은 DAC 패키지에 정의된 값으로 설정됩니다.The database collation and compatibility level are set to the values defined in the DAC package. SQL Server Developer Tools에서 데이터베이스 프로젝트를 기반으로 작성된 DAC 패키지는 데이터베이스 프로젝트에 설정된 값을 사용합니다.A DAC package built from a database project in the SQL Server Developer Tools uses the values set in the database project. 기존 데이터베이스에서 추출한 패키지는 기존 데이터베이스의 값을 사용합니다.A package extracted from an existing database uses the values from the original database.

  • 데이터베이스 이름과 파일 경로와 같은 일부 데이터베이스 설정을 구성 업데이트 페이지에서 조정할 수 있습니다.You can adjust some of the database settings, such as database name and file paths, in the Update Configuration page. SQL 데이터베이스SQL Database에 배포할 때는 파일 경로를 설정할 수 없습니다.You cannot set the file paths when deploying to SQL 데이터베이스SQL Database.

    TRUSTWORTHY, DB_CHAINING 및 HONOR_BROKER_PRIORITY와 같은 일부 데이터베이스 옵션은 배포 프로세스 도중 조정할 수 없습니다.Some database options, such as TRUSTWORTHY, DB_CHAINING, and HONOR_BROKER_PRIORITY, cannot be adjusted as part of the deployment process. 파일 그룹의 수, 파일의 수 및 크기와 같은 물리적 속성은 배포 프로세스 도중 변경할 수 없습니다.Physical properties, such as the number of filegroups, or the numbers and sizes of files cannot be altered as part of the deployment process. 배포가 완료된 후 ALTER DATABASE 문, SQL Server Management StudioSQL Server Management Studio또는 SQL ServerSQL Server PowerShell을 사용하여 데이터베이스를 맞춤 구성할 수 있습니다.After the deployment completes, you can use the ALTER DATABASE statement, SQL Server Management StudioSQL Server Management Studio, or SQL ServerSQL Server PowerShell to tailor the database.

제한 사항Limitations and restrictions

SQL 데이터베이스SQL DatabaseSP4(서비스 팩 4) 이상을 실행하는 데이터베이스 엔진Database Engine 또는 SQL Server 2005SQL Server 2005 인스턴스에 DAC를 배포할 수 있습니다.A DAC can be deployed to SQL 데이터베이스SQL Database, or an instance of the 데이터베이스 엔진Database Engine running SQL Server 2005SQL Server 2005 Service Pack 4 (SP4) or later. 이후 버전을 사용하여 DAC를 만드는 경우 DAC에 SQL Server 2005SQL Server 2005에서 지원되지 않는 개체가 포함될 수 있습니다.If you create a DAC using a later version, the DAC may contain objects not supported by SQL Server 2005SQL Server 2005. 이러한 DAC를 SQL Server 2005SQL Server 2005인스턴스에 배포할 수 없습니다.You cannot deploy those DACs to instances of SQL Server 2005SQL Server 2005.

보안 및 사용 권한Security and permissions

인증 로그인은 암호 없이 DAC 패키지에 저장됩니다.Authentication logins are stored in a DAC package without a password. 패키지가 배포 또는 업그레이드되면 생성된 암호와 함께 비활성 로그인이 생성됩니다.When the package is deployed or upgraded, the login is created as a disabled login with a generated password. 로그인을 활성화하려면 ALTER ANY LOGIN 권한이 있는 로그인을 사용하여 로그인하고 ALTER LOGIN을 사용하여 로그인을 활성화하여 사용자에게 알려 줄 수 있는 새 암호를 할당합니다.To enable the logins, log in using a login with the ALTER ANY LOGIN permission and use ALTER LOGIN to enable the login and assign a new password that can be communicated to the user. Windows 인증 로그인의 경우 암호가 SQL Server에서 관리되지 않으므로 이 과정이 필요 없습니다.This is not required for Windows Authentication logins because their passwords are not managed by SQL Server.

sysadmin 또는 serveradmin 고정 서버 역할의 멤버를 통하거나 dbcreator 고정 서버 역할에 포함되고 ALTER ANY LOGIN 권한이 있는 로그인을 통해서만 DAC를 배포할 수 있습니다.A DAC can only be deployed by members of the sysadmin or serveradmin fixed server roles, or by logins in the dbcreator fixed server role with ALTER ANY LOGIN permissions. 기본 제공 SQL ServerSQL Server 시스템 관리자 계정인 sa 도 DAC를 배포할 수 있습니다.The built-in SQL ServerSQL Server system administrator account named sa can also deploy a DAC.

SQL 데이터베이스SQL Database 에 대한 로그인이 있는 DAC를 배포하려면 loginmanager 또는 serveradmin 역할의 멤버 자격이 필요합니다.Deploying a DAC with logins to SQL 데이터베이스SQL Database requires membership in the loginmanager or serveradmin roles. SQL 데이터베이스SQL Database 에 대한 로그인이 없는 DAC를 배포하려면 dbmanager 또는 serveradmin 역할의 멤버 자격이 필요합니다.Deploying a DAC without logins to SQL 데이터베이스SQL Database requires membership in the dbmanager or serveradmin roles.

마법사를 사용하여 DAC 배포Deploy a DAC using the wizard

  1. 개체 탐색기에서 DAC를 배포할 인스턴스에 대한 노드를 확장합니다.In Object Explorer, expand the node for the instance to which you want to deploy the DAC.

  2. 데이터베이스 노드를 마우스 오른쪽 단추로 클릭한 다음 데이터 계층 응용 프로그램 배포…를 선택합니다.Right-click the Databases node, then select Deploy Data-tier Application…

  3. 마법사 대화 상자를 완료하고 마침을 클릭합니다.Complete the wizard dialogs and click finish. 아래 마법사 페이지 중 일부에 대한 자세한 정보:More about some of the wizard pages below:

DAC 패키지 선택 페이지Select DAC Package Page

배포할 데이터 계층 응용 프로그램을 포함하는 DAC 패키지를 지정합니다.Specify the DAC package that contains the data-tier application to be deployed. 이 페이지는 세 가지 상태로 전환됩니다.The page transitions through three states.

DAC 패키지 선택Select the DAC Package

배포할 DAC 패키지를 선택합니다.Choose the DAC package to deploy. DAC 패키지는 유효한 DAC 패키지 파일이어야 하며 확장자가 .dacpac여야 합니다.The DAC package must be a valid DAC package file and must have a .dacpac extension.

DAC 패키지 - 배포할 데이터 계층 응용 프로그램이 포함된 DAC 패키지의 경로와 파일 이름을 지정합니다.DAC Package - Specify the path and file name of the DAC package that contains the data-tier application to be deployed. 입력란 오른쪽의 찾아보기 단추를 선택하여 DAC 패키지의 위치를 찾아볼 수 있습니다.You can select the Browse button at the right of the box to browse to the location of the DAC package.

응용 프로그램 이름 - DAC를 만들거나 데이터베이스에서 추출할 때 할당된 DAC 이름을 표시하는 읽기 전용 입력란입니다.Application Name - A read-only box that displays the DAC name assigned when the DAC was authored or extracted from a database.

버전 - DAC를 만들거나 데이터베이스에서 추출할 때 할당된 버전을 표시하는 읽기 전용 입력란입니다.Version - A read-only box that displays the version assigned when the DAC was authored or extracted from a database.

설명 - DAC를 만들거나 데이터베이스에서 추출할 때 작성된 설명을 표시하는 읽기 전용 입력란입니다.Description - A read-only box that displays the description written when the DAC was authored or extracted from a database.

DAC 패키지 유효성 검사Validating the DAC Package

선택한 파일이 유효한 DAC 패키지인지 마법사에서 확인하는 동안 진행률 표시줄이 표시됩니다.Displays a progress bar as the wizard confirms that the selected file is a valid DAC package. DAC 패키지의 유효성이 확인되면 마법사는 유효성 검사 결과를 검토할 수 있는 패키지 선택 페이지의 최종 버전으로 진행합니다.If the DAC package is validated, the wizard proceeds to the final version of the Select Package page where you can review the results of the validation. 파일이 유효한 DAC 패키지가 아닌 경우 마법사는 DAC 패키지 선택상태로 유지됩니다.If the file is not a valid DAC package, the wizard remains on the Select DAC Package. 이 경우 다른 유효한 DAC 패키지를 선택하거나 마법사를 취소하고 새 DAC 패키지를 생성할 수 있습니다.Either select another valid DAC package or cancel the wizard and generate a new DAC package.

정책 검토 페이지Review Policy Page

DAC 서버 선택 정책을 평가한 결과를 검토합니다(사용하는 경우).Review the results of evaluating the DAC server selection policy (if used). DAC 서버 선택 정책은 선택적이며 Visual Studio에서 DAC를 만들면 여기에 할당됩니다.The DAC server selection policy is optional, and is assigned to the DAC when it is created in Visual Studio. 정책에서는 서버 선택 정책 패싯을 사용하여 데이터베이스 엔진Database Engine 인스턴스가 DAC를 호스팅하기 위해 충족해야 하는 조건을 지정합니다.The policy uses the server selection policy facets to specify conditions an instance of the 데이터베이스 엔진Database Engine should meet to host the DAC.

정책 조건의 평가 결과 - DAC 배포 정책 조건이 성공했는지 여부를 보여 줍니다.Evaluation results of policy conditions - Shows whether the DAC deployment policy conditions succeeded. 각 조건을 평가한 결과가 별도의 행에 보고됩니다.The results of evaluating each condition are reported on a separate line.

DAC를 SQL 데이터베이스SQL Database에 배포하는 경우 운영 체제 버전, 언어, 명명된 파이프 설정, 플랫폼, tcp 설정 등의 서버 선택 정책을 평가한 결과가 항상 false입니다.The following server selection policies always evaluate to false when deploying a DAC to SQL 데이터베이스SQL Database: operating system version, language, named pipes enabled, platform, and tcp enabled.

정책 위반을 무시합니다. - 정책 조건이 한 개 이상 위반되더라도 배포를 진행하려면 이 확인란을 사용합니다.Ignore policy violations - Use this check box to proceed with the deployment if one or more of the policy conditions failed. 실패한 모든 조건이 DAC 작동에 영향을 주지 않는 것이 확실한 경우에만 이 옵션을 선택합니다.Only select this option if you are sure that all of the conditions which failed will not prevent the successful operation of the DAC.

구성 업데이트 페이지Update Configuration Page

배포된 DAC 인스턴스와 배포를 통해 생성된 데이터베이스의 이름을 지정하고 데이터베이스 옵션을 설정합니다.Specify the names of the deployed DAC instance and the database created by the deployment, and to set database options.

데이터베이스 이름: - 배포를 통해 생성된 데이터베이스의 이름을 지정합니다.Database Name: - Specify the name of the database to be created by the deployment. 기본은 DAC가 추출된 원본 데이터베이스 이름입니다.The default is the name of the source database the DAC was extracted from. 이름은 데이터베이스 엔진Database Engine 인스턴스 내에서 고유해야 하며 데이터베이스 엔진Database Engine 식별자 규칙을 준수해야 합니다.The name must be unique within the instance of the 데이터베이스 엔진Database Engine and comply with the rules for 데이터베이스 엔진Database Engine identifiers.

데이터베이스 이름을 변경하면 새 값에 맞게 데이터 파일과 로그 파일의 이름이 변경됩니다.If you change the database name, the names of the data file and log files will change to match the new value.

데이터베이스 이름은 DAC 인스턴스 이름에도 사용됩니다.The database name is also used as the name of the DAC instance. 인스턴스 이름은 개체 탐색기데이터 계층 응용 프로그램노드 아래에 있는 DAC에 대한 노드나 유틸리티 탐색기배포된 데이터 계층 응용 프로그램노드에 표시됩니다.The instance name is displayed on the node for the DAC under the Data-tier Applications node in Object Explorer, or the Deployed Data-tier Applications node in the Utility Explorer.

다음 옵션은 SQL 데이터베이스SQL Database에는 적용되지 않으며 SQL 데이터베이스SQL Database에 배포할 때는 표시되지 않습니다.The following options do not apply to SQL 데이터베이스SQL Database, and are not displayed when deploying to SQL 데이터베이스SQL Database.

기본 데이터베이스 위치 사용 - 데이터베이스 엔진Database Engine인스턴스에 대한 기본 위치에 데이터베이스 파일과 로그 파일을 생성하려면 이 옵션을 선택합니다.Use the default database location - Select this option to create the database data and log files in the default location for the instance of the 데이터베이스 엔진Database Engine. 파일 이름은 데이터베이스 이름을 사용하여 생성됩니다.The file names will be built using the database name.

데이터베이스 파일 지정 - 데이터와 로그 파일의 다른 위치나 이름을 지정하려면 이 옵션을 선택합니다.Specify database files - Select this option to specify a different location or name for the data and log files.

데이터 파일 경로 및 이름: - 데이터 파일의 전체 경로와 파일 이름을 지정합니다.Data file path and name: - Specify the full path and file name for the data file. 입력란은 기본 경로와 파일 이름으로 채워집니다.The box is populated with the default path and file name. 입력란의 문자열을 편집하여 기본값을 변경하거나 찾아보기 단추를 사용하여 데이터 파일이 있는 폴더를 탐색할 수 있습니다.Edit the string in the box to change the default, or use the Browse button to navigate to the folder where the data file is to be placed.

로그 파일 경로 및 이름: - 로그 파일의 전체 경로와 파일 이름을 지정합니다.Log file path and name: - Specify the full path and file name for the log file. 입력란은 기본 경로와 파일 이름으로 채워집니다.The box is populated with the default path and file name. 입력란의 문자열을 편집하여 기본값을 변경하거나 찾아보기 단추를 사용하여 로그 파일이 있는 폴더를 탐색할 수 있습니다.Edit the string in the box to change the default, or use the Browse button to navigate to the folder where the log file is to be placed.

요약 페이지 Summary Page

이 페이지를 사용하여 DAC를 배포할 때 마법사가 수행할 동작을 검토할 수 있습니다.Use this page to review the actions the wizard will take when deploying the DAC.

DAC를 배포하는 데 사용되는 설정은 다음과 같습니다.The following settings will be used to deploy your DAC. - 표시된 정보를 검토하여 수행할 동작이 올바른지 확인합니다.- Review the information displayed to ensure the actions taken will be correct. 창에는 선택한 DAC 패키지와 배포하도록 선택한 DAC 인스턴스 이름이 표시됩니다.The window displays the DAC package you selected, and the name you selected for the deployed DAC instance. 창에는 DAC와 연결된 데이터베이스를 만들 때 사용되는 설정도 표시됩니다.The window also displays the settings that will be used when creating the database associated with the DAC.

배포 페이지Deploy Page

이 페이지에서는 배포 작업의 성공 또는 실패를 보고합니다.This page reports the success or failure of the deploy operation.

DAC를 배포하는 중 - DAC를 배포하기 위해 수행한 각 동작의 성공 또는 실패를 보고합니다.Deploying the DAC - Reports the success or failure of each action taken to deploy the DAC. 정보를 검토하여 각 동작의 성공 또는 실패를 확인합니다.Review the information to determine the success or failure of each action. 오류가 발생한 동작에는 모두 결과 열에 링크가 있습니다.Any action that encountered an error will have a link in the Result column. 링크를 선택하면 해당 동작의 오류에 대한 보고서가 표시됩니다.Select the link to view a report of the error for that action.

보고서 저장 - 배포 보고서를 HTML 파일로 저장하려면 이 단추를 선택합니다.Save Report - Select this button to save the deployment report to an HTML file. 파일은 모든 동작에서 생성된 모든 오류를 비롯하여 각 동작의 상태를 보고합니다.The file reports the status of each action, including all errors generated by any of the actions. 기본 폴더는 Windows 계정의 Documents 폴더에 있는 SQL Server Management Studio\DAC Packages 폴더입니다.The default folder is the SQL Server Management Studio\DAC Packages folder in the Documents folder of your Windows account.

PowerShell을 사용하여 DAC 배포Deploy a DAC using PowerShell

  1. SMO Server 개체를 만든 다음 DAC를 배포할 인스턴스로 설정합니다.Create a SMO Server object and set it to the instance to which you want to deploy the DAC.

  2. ServerConnection 개체를 열고 동일한 인스턴스에 연결합니다.Open a ServerConnection object and connect to the same instance.

  3. System.IO.File 을 사용하여 DAC 패키지 파일을 로드합니다.Use System.IO.File to load the DAC package file.

  4. add_DacActionStartedadd_DacActionFinished 를 사용하여 DAC 배포 이벤트를 구독합니다.Use add_DacActionStarted and add_DacActionFinished to subscribe to the DAC deployment events.

  5. DatabaseDeploymentProperties를 설정합니다.Set the DatabaseDeploymentProperties.

  6. DacStore.Install 메서드를 사용하여 DAC를 배포합니다.Use the DacStore.Install method to deploy the DAC.

  7. DAC 패키지 파일을 읽는 데 사용되는 파일 스트림을 닫습니다.Close the file stream used to read the DAC package file.

PowerShell 예제PowerShell examples

다음 예에서는 MyApplication.dacpac 패키지의 DAC 정의를 사용하여 데이터베이스 엔진Database Engine의 기본 인스턴스에서 MyApplication이라는 DAC를 배포합니다.The following example deploys a DAC named MyApplication on a default instance of the 데이터베이스 엔진Database Engine, using a DAC definition from a MyApplication.dacpac package.

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

## Open a Common.ServerConnection to the same instance.  
$serverconnection = New-Object Microsoft.SqlServer.Management.Common.ServerConnection($srv.ConnectionContext.SqlConnectionObject)  
$serverconnection.Connect()  
$dacstore = New-Object Microsoft.SqlServer.Management.Dac.DacStore($serverconnection)  

## Load the DAC package file.  
$dacpacPath = "C:\MyDACs\MyApplication.dacpac"  
$fileStream = [System.IO.File]::Open($dacpacPath,[System.IO.FileMode]::OpenOrCreate)  
$dacType = [Microsoft.SqlServer.Management.Dac.DacType]::Load($fileStream)  

## Subscribe to the DAC deployment events.  
$dacstore.add_DacActionStarted({Write-Host `n`nStarting at $(get-date) :: $_.Description})  
$dacstore.add_DacActionFinished({Write-Host Completed at $(get-date) :: $_.Description})  

## Deploy the DAC and create the database.  
$dacName  = "MyApplication"  
$evaluateTSPolicy = $true  
$deployProperties = New-Object Microsoft.SqlServer.Management.Dac.DatabaseDeploymentProperties($serverconnection,$dacName)  
$dacstore.Install($dacType, $deployProperties, $evaluateTSPolicy)  
$fileStream.Close()  

자세한 정보More information

데이터 계층 응용 프로그램 Data-tier Applications
데이터베이스에서 DAC 추출 Extract a DAC From a Database
데이터베이스 식별자 Database Identifiers