방법: 데이터 계층 응용 프로그램 삭제

데이터 계층 응용 프로그램 삭제 마법사 또는 Windows PowerShell 스크립트를 사용하여 데이터 계층 응용 프로그램을 삭제할 수 있습니다. 연결된 데이터베이스를 보존, 분리 또는 삭제할지를 지정할 수 있습니다.

시작하기 전에

DAC(데이터 계층 응용 프로그램) 인스턴스를 삭제할 때는 데이터 계층 응용 프로그램과 연결된 데이터베이스에 대해 어떠한 작업을 수행할지 지정하는 3가지 옵션 중 하나를 선택할 수 있습니다. 3가지 옵션 모두 DAC 정의 메타데이터를 삭제합니다. 각 옵션은 데이터 계층 응용 프로그램과 연결된 데이터베이스에 대해 수행되는 작업에 차이가 있습니다. 마법사는 로그인처럼 DAC 또는 데이터베이스와 연결된 인스턴스 수준 개체는 삭제하지 않습니다.

옵션

데이터베이스 동작

등록 삭제

연결된 데이터베이스가 그대로 유지됩니다.

데이터베이스 분리

연결된 데이터베이스가 분리됩니다. 데이터베이스 엔진 인스턴스가 데이터베이스를 참조할 수는 없지만 데이터 및 로그 파일은 그대로 유지됩니다.

데이터베이스 삭제

연결된 데이터베이스가 삭제됩니다. 데이터 및 로그 파일이 삭제됩니다.

DAC를 삭제한 후 DAC 정의 메타데이터나 데이터베이스를 복원하는 자동 메커니즘은 없습니다. DAC 인스턴스를 수동으로 다시 작성하는 방법은 삭제 옵션에 따라 다릅니다.

옵션

DAC 인스턴스를 다시 작성하는 방법

등록 삭제

남아 있는 데이터베이스에서 DAC를 등록합니다.

데이터베이스 분리

sp_attachdb 또는 SQL Server Management Studio를 사용하여 데이터베이스를 다시 연결한 다음, 데이터베이스에서 새 DAC 인스턴스를 등록합니다.

데이터베이스 삭제

DAC가 삭제되기 전에 만든 전체 백업에서 데이터베이스를 복원한 다음, 데이터베이스에서 새 DAC 인스턴스를 등록합니다.

[!참고]

복원하거나 다시 연결한 데이터베이스에서 DAC를 등록하여 DAC 인스턴스를 다시 작성하더라도 원래 DAC의 서버 선택 정책과 같은 일부 부분은 만들어지지 않습니다.

사용 권한

sysadmin 또는 serveradmin 고정 서버 역할의 멤버 또는 데이터베이스 소유자를 통해서만 DAC를 삭제할 수 있습니다. sa라는 기본 제공 SQL Server 시스템 관리자 계정도 마법사를 시작할 수 있습니다.

PowerShell을 사용하여 DAC 삭제

다음 코드가 포함된 PowerShell 스크립트 파일(예: DeleteDAC.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. ServerConnection 개체를 열고 동일 인스턴스에 연결하는 코드를 추가합니다.

    ## 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)
    
  3. DAC 삭제 이벤트를 구독하는 코드를 추가합니다.

    ## Subscribe to the DAC delete events.
    $dacstore.add_DacActionStarted({Write-Host `n`nStarting at $(get-date) :: $_.Description})
    $dacstore.add_DacActionFinished({Write-Host Completed at $(get-date) :: $_.Description})
    
  4. 삭제할 DAC를 지정하는 코드를 추가합니다. 이 예에서는 DAC 이름을 지정합니다.

    ## Specify the DAC to delete.
    $dacName  = "MyApplication"
    
  5. 위에 지정된 정보를 사용하여 Uninstall 메서드를 실행하는 코드를 추가합니다. 적합한 삭제 옵션에 따라 다음 세 개의 코드 중 하나를 사용합니다.

    • DAC 등록만 삭제하고 데이터베이스를 그대로 두려면

      ## Only delete the DAC definition from msdb, the associated database remains active.
      $dacstore.Unmanage($dacName)
      
    • DAC 등록을 삭제하고 데이터베이스를 분리하려면

      ## Delete the DAC definition from msdb and detach the associated database.
      $dacstore.Uninstall($dacName, [Microsoft.SqlServer.Management.Dac.DacUninstallMode]::DetachDatabase)
      
    • DAC 등록을 삭제하고 데이터베이스도 삭제하려면

      ## Delete the DAC definition from msdb and drop the associated database.
      ## $dacstore.Uninstall($dacName, [Microsoft.SqlServer.Management.Dac.DacUninstallMode]::DropDatabase)
      

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

데이터 계층 응용 프로그램 삭제 마법사 사용

Management Studio에서는 개체 탐색기에서 데이터 계층 응용 프로그램 노드를 마우스 오른쪽 단추로 클릭하고 **데이터 계층 응용 프로그램 삭제…**를 선택하여 마법사를 시작할 수 있습니다.

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

  • 소개

  • 방법 선택

  • 요약

  • 데이터 계층 응용 프로그램 삭제

소개 페이지

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

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

다음 > - 방법 선택 페이지로 진행합니다.

취소 - 데이터 계층 응용 프로그램 또는 데이터베이스를 삭제하지 않고 마법사를 종료합니다.

방법 선택 페이지

이 페이지를 사용하여 데이터 계층 응용 프로그램을 삭제하는 방법을 지정합니다.

등록 삭제 - 데이터 계층 응용 프로그램을 정의하는 메타데이터를 제거하되 연결된 데이터베이스는 그대로 유지합니다.

데이터베이스 분리 - 데이터 계층 응용 프로그램을 정의하는 메타데이터를 제거하고 연결된 데이터베이스를 분리합니다.

데이터베이스 엔진의 해당 인스턴스는 더 이상 데이터베이스를 참조할 수 없지만 데이터 및 로그 파일은 그대로 유지됩니다.

데이터베이스 삭제 - DAC를 정의하는 메타데이터를 제거하고 연결된 데이터베이스를 삭제합니다.

데이터베이스에 대한 데이터 및 로그 파일이 영구적으로 삭제됩니다.

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

다음 > - 요약 페이지로 진행합니다.

취소 - DAC 또는 데이터베이스를 삭제하지 않고 마법사를 종료합니다.

요약 페이지

이 페이지를 사용하여 DAC 인스턴스를 삭제할 때 마법사가 수행할 동작을 검토합니다.

선택 항목 요약 검토 - 상자에 표시된 DAC, 데이터베이스 및 삭제 방법을 검토합니다. 정보가 올바르면 다음 또는 마침을 선택하여 DAC를 삭제합니다. DAC 및 데이터베이스 정보가 올바르지 않으면 취소를 선택하고 올바른 DAC를 선택합니다. 삭제 방법이 올바르지 않으면 이전을 선택하여 방법 선택 페이지로 돌아간 후 다른 방법을 선택합니다.

< 이전 - 다른 삭제 방법을 선택할 수 있도록 방법 선택 페이지로 돌아갑니다.

다음 > - 이전 페이지에서 선택한 방법을 사용하여 DAC 인스턴스를 삭제하고 데이터 계층 응용 프로그램 삭제 페이지로 진행합니다.

취소 - DAC 인스턴스를 삭제하지 않고 마법사를 종료합니다.

데이터 계층 응용 프로그램 삭제 페이지

이 페이지에서는 삭제 작업의 성공 또는 실패를 보고합니다.

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

보고서 저장 - 삭제 보고서를 HTML 파일로 저장하려면 이 단추를 선택합니다. 파일은 모든 동작에서 생성된 모든 오류를 비롯하여 각 동작의 상태를 보고합니다. 기본 폴더는 Windows 계정의 Documents 폴더에 있는 SQL Server Management Studio\DAC Packages 폴더입니다.

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

변경 내역

업데이트된 내용

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