방법: DAC로 데이터베이스 등록

데이터 계층 응용 프로그램 등록 마법사 또는 Windows PowerShell 스크립트를 사용하여 기존 데이터베이스의 개체를 설명하는 DAC(데이터 계층 응용 프로그램)를 작성하고 이 DAC 정의를 msdb 시스템 데이터베이스(SQL Azure의 master)에 등록할 수 있습니다.

시작하기 전에

SQL Server 2005 SP4(서비스 팩 4) 이상의 데이터베이스 또는 SQL Azure 데이터베이스에서 DAC를 등록할 수 있습니다. 데이터베이스 엔진의 관리되는 인스턴스의 경우 다음에 인스턴스의 유틸리티 컬렉션 집합이 유틸리티 제어 지점으로 전송될 때 등록된 DAC가 SQL Server 유틸리티로 통합됩니다. 그러면 DAC가 Management Studio유틸리티 탐색기배포된 데이터 계층 응용 프로그램 노드에 표시되고 배포된 데이터 계층 응용 프로그램 세부 정보 페이지에 보고됩니다.

참고    데이터베이스 엔진 인스턴스에 DAC를 등록하려면 하나 이상의 ALTER ANY LOGIN과 데이터베이스 범위 VIEW DEFINITION 권한, sys.sql_expression_dependencies에 대한 SELECT 권한 및 dbcreator 고정 서버 역할의 멤버 자격이 필요합니다. sysadmin 고정 서버 역할의 멤버 또는 기본 제공 SQL Server 시스템 관리자 계정인 sa도 DAC를 등록할 수 있습니다. SQL Azure에 로그인이 없는 DAC를 등록하려면 dbmanager 또는 serveradmin 역할의 멤버 자격이 필요합니다. SQL Azure에 로그인이 있는 DAC를 등록하려면 loginmanager 또는 serveradmin 역할의 멤버 자격이 필요합니다.

제한 사항

DAC 등록은 SQL Azure 또는 SQL Server 2005 SP4 이상에서만 수행할 수 있습니다. DAC가 데이터베이스에 이미 등록된 경우에는 DAC 등록을 수행할 수 없습니다. 예를 들어 데이터베이스가 DAC를 배포하는 방식으로 만들어진 경우 데이터 계층 응용 프로그램 등록 마법사를 실행할 수 없습니다.

DAC에서 지원되지 않는 개체가 데이터베이스에 포함된 경우 DAC를 등록할 수 없습니다. DAC에서 지원되는 개체 유형에 대한 자세한 내용은 SQL Server 개체 및 버전에 대한 DAC 지원를 참조하십시오.

PowerShell을 사용하여 DAC 등록

다음 코드가 포함된 RegisterDAC.ps1 파일을 만듭니다.

  1. SMO 서버 개체를 만들고 이를 DAC를 추출하려는 데이터베이스가 포함된 인스턴스로 설정하는 코드를 추가합니다. 이 예에서는 Server 개체를 로컬 컴퓨터의 기본 인스턴스로 설정합니다.

    ## Set a SMO Server object to the default instance on the local computer.
    CD SQLSERVER:\SQL\localhost\DEFAULT
    $srv = get-item .
    
  2. 데이터베이스를 지정하는 코드를 추가합니다. 이 예에서는 MyDB라는 데이터베이스를 지정합니다.

    ## Specify the database to register as a DAC.
    $dbname = "MyDB"
    
  3. DAC에 대한 메타데이터를 지정하는 코드를 추가합니다. 이 예에서는 DAC 이름, 버전 및 설명을 지정합니다.

    ## Specify the DAC metadata.
    $applicationname = "MyApplication"
    $version = "1.0.0.0"
    $description = "This DAC defines the database used by my application."
    
  4. 위에 지정된 정보를 사용하여 Register 메서드를 실행하는 코드를 추가합니다.

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

SQL Server PowerShell 스냅인을 로드한 PowerShell 세션에서 또는 sqlps 명령 프롬프트 유틸리티를 사용하여 RegisterDAC.ps1을 실행합니다.

데이터 계층 응용 프로그램 등록 마법사 사용

Management Studio에서 다음과 같이 데이터 계층 응용 프로그램 등록 마법사를 시작할 수 있습니다.

  • 개체 탐색기에서 데이터베이스 노드를 마우스 오른쪽 단추로 클릭하고 태스크를 가리킨 다음 **데이터 계층 응용 프로그램 등록…**을 선택합니다.

이 마법사는 개체 탐색기 계층에서 선택된 노드가 나타내는 데이터베이스의 개체를 정의하는 DAC 정의를 만듭니다. DAC 정의는 msdb 시스템 데이터베이스(SQL Azure의 master)에 저장됩니다. DAC 설명과 데이터베이스의 결합으로 DAC 인스턴스가 형성됩니다. DAC 인스턴스에 대한 정보는 다음 유틸리티 컬렉션 집합이 유틸리티 제어 지점으로 전송될 때 SQL Server 유틸리티로 업로드됩니다. 이 정보는 유틸리티 탐색기의 배포된 데이터 계층 응용 프로그램 노드에서 볼 수 있습니다.

아래 목록의 링크를 클릭하여 마법사 페이지에 대한 세부 정보를 탐색할 수 있습니다.

  • 소개 페이지

  • 속성 설정 페이지

  • 유효성 검사 및 요약 페이지

  • DAC 등록 페이지

소개 페이지

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

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

다음 > - 속성 설정 페이지로 이동합니다.

취소 - DAC를 등록하지 않고 마법사를 종료합니다.

속성 설정 페이지

이 페이지를 사용하여 응용 프로그램 이름 및 버전과 같은 DAC 수준 속성을 지정할 수 있습니다.

응용 프로그램 이름. - DAC 정의를 식별하는 데 사용되는 이름을 지정하는 문자열입니다. 이 필드는 데이터베이스 이름으로 채워집니다.

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

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

< 이전 - 소개 페이지로 돌아갑니다.

다음 > - 데이터베이스의 개체로 DAC를 작성할 수 있는지 확인하고 유효성 검사 및 요약 페이지에 결과를 표시합니다.

취소 - DAC를 등록하지 않고 마법사를 종료합니다.

유효성 검사 및 요약 페이지

이 페이지를 사용하여 DAC를 등록할 때 마법사가 수행할 동작을 검토할 수 있습니다. 이 페이지는 데이터베이스의 개체로 DAC를 작성할 수 있는지 확인할 때 세 가지 상태로 전환됩니다.

개체 검색

데이터베이스 및 서버 개체 검색. - 마법사가 데이터베이스의 모든 필요한 개체 및 데이터베이스 엔진의 인스턴스를 검색할 때 진행률 표시줄을 표시합니다.

< 이전 - 입력한 값을 변경하기 위해 속성 설정 페이지로 돌아갑니다.

다음 > - DAC를 등록하고 DAC 등록 페이지에 결과를 표시합니다.

취소 - DAC를 등록하지 않고 마법사를 종료합니다.

개체 유효성 확인

SchemaName**.ObjectName 을(를) 검사하는 중 - 마법사가 검색된 개체의 종속성을 확인하고 모두 DAC에 유효한 개체인지 확인할 때 진행률 표시줄을 표시합니다. SchemaName.**ObjectName은 현재 확인 중인 개체가 무엇인지 식별합니다.

< 이전 - 입력한 값을 변경하기 위해 속성 설정 페이지로 돌아갑니다.

다음 > - DAC를 등록하고 DAC 등록 페이지에 결과를 표시합니다.

취소 - DAC를 등록하지 않고 마법사를 종료합니다.

요약

다음 설정이 DAC를 등록하는 데 사용됩니다. - DAC에 포함될 속성 및 개체에 대한 보고서를 표시합니다.

보고서 저장 - 유효성 검사 보고서의 복사본을 HTML 파일로 저장하려면 이 단추를 선택합니다. 기본 폴더는 Windows 계정의 Documents 폴더에 있는 SQL Server Management Studio\DAC Packages 폴더입니다.

< 이전 - 입력한 값을 변경하기 위해 속성 설정 페이지로 돌아갑니다.

다음 > - DAC를 등록하고 DAC 등록 페이지에 결과를 표시합니다.

취소 - DAC를 등록하지 않고 마법사를 종료합니다.

DAC 등록 페이지

이 페이지에서는 등록의 성공 또는 실패를 보고합니다.

DAC 등록 - DAC를 등록하기 위해 수행한 각 동작의 성공 또는 실패를 보고합니다. 정보를 검토하여 각 동작의 성공 또는 실패를 확인합니다. 오류가 발생한 동작에는 모두 결과 열에 링크가 있습니다. 링크를 선택하면 해당 동작의 오류에 대한 보고서가 표시됩니다.

보고서 저장 - 등록 보고서를 HTML 파일로 저장하려면 이 단추를 선택합니다. 파일은 모든 동작에서 생성된 모든 오류를 비롯하여 각 동작의 상태를 보고합니다. 기본 폴더는 Windows 계정의 Documents 폴더에 있는 SQL Server Management Studio\DAC Packages 폴더입니다. 파일 이름의 형식은 <DACPackageName>_RegisterDACReport_yyyymmdd.html이며, 여기서 <DACPackageName>은 배포할 패키지의 이름이고 yyyy는 현재 연도, mm은 현재 월, dd는 현재 날짜입니다.

마침 - 마법사를 종료합니다.

변경 내역

업데이트된 내용

PowerShell 사용에 대한 섹션이 추가되었습니다.