방법: 데이터베이스에서 DAC 추출

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

SQL Azure 또는 SQL Server 2005 SP4(서비스 팩 4) 이상의 인스턴스에 있는 데이터베이스에서 DAC를 추출할 수 있습니다.

데이터 계층 응용 프로그램 추출 마법사는 데이터베이스 엔진의 현재 인스턴스에 DAC 정의를 등록하지 않습니다. DAC를 등록하는 방법은 방법: DAC로 데이터베이스 등록을 참조하십시오.

PowerShell을 사용하여 DAC 추출

스크립트 작성 및 실행

  1. ExtractDAC.ps1 파일을 만듭니다.

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

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

    ## Specify the database to extract to a DAC.
    $dbname = "MyDB"
    
  4. DAC에 대한 메타데이터를 지정합니다. 이 예에서는 DAC 이름, 버전 및 설명을 지정합니다.

    ## Specify the DAC metadata.
    $applicationname = "MyApplication"
    $version = "1.0.0.0"
    $description = "This DAC defines the database used by my application."
    
  5. 추출한 DAC 패키지 파일에 대한 경로 및 파일 이름을 지정합니다.

    ## Specify the location and name for the extracted DAC package.
    $dacpacPath = "C:\MyDACs\MyApplication.dacpac"
    
  6. 위에 지정된 정보를 사용하여 Extract 메서드를 실행하는 코드를 추가합니다.

    ## Extract the DAC.
    $extractionunit = New-Object Microsoft.SqlServer.Management.Dac.DacExtractionUnit($srv, $dbname, $applicationname, $version)
    $extractionunit.Description = $description
    $extractionunit.Extract($dacpacPath)
    
  7. SQL Server PowerShell 스냅인을 로드한 PowerShell 세션에서 또는 sqlps 명령 프롬프트 유틸리티를 사용하여 ExtractDAC.ps1을 실행합니다.

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

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

  1. 개체 탐색기에서 데이터베이스를 확장하고 데이터베이스를 마우스 오른쪽 단추로 클릭한 다음 태스크를 가리키고 데이터 계층 응용 프로그램 추출을 클릭합니다.

  2. 마법사의 단계에 따라 선택한 데이터베이스를 기반으로 DAC 패키지를 만듭니다. 자세한 내용은 데이터 계층 응용 프로그램 추출 마법사 F1 도움말을 참조하십시오.

변경 내역

업데이트된 내용

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