데이터 계층 애플리케이션 삭제

적용 대상:SQL ServerAzure SQL Database

데이터 계층 애플리케이션 삭제 마법사 또는 Windows PowerShell 스크립트를 사용하여 데이터 계층 애플리케이션을 삭제할 수 있습니다. 연결된 데이터베이스가 보존, 분리 또는 삭제되는지 여부를 지정할 수 있습니다.

시작하기 전에

DAC(데이터 계층 애플리케이션) 인스턴스를 삭제할 때 데이터 계층 애플리케이션과 연결된 데이터베이스로 수행할 작업을 지정하는 세 가지 옵션 중 하나를 선택합니다. 3가지 옵션 모두 DAC 정의 메타데이터를 삭제합니다. 옵션은 데이터 계층 애플리케이션과 연결된 데이터베이스에서 수행하는 작업과 다릅니다. 마법사는 DAC 또는 데이터베이스와 연결된 인스턴스 수준 개체(예: 로그인)를 삭제하지 않습니다.

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

제한 사항

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

옵션 DAC 인스턴스를 다시 빌드하는 방법
등록 삭제 현재 위치에 남아 있는 데이터베이스에서 DAC를 등록합니다.
데이터베이스 분리 sp_attachdb 또는 SQL Server Management Studio를 사용하여 데이터베이스를 다시 연결한 다음 데이터베이스에서 새 DAC 인스턴스를 등록합니다.
데이터베이스 삭제 DAC를 삭제하기 전에 만든 전체 백업에서 데이터베이스를 복원한 다음 데이터베이스에서 새 DAC 인스턴스를 등록합니다.

경고

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

사용 권한

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

데이터 계층 애플리케이션 삭제 마법사 사용

마법사를 사용하여 DAC를 삭제하려면

  1. 개체 탐색기에서 삭제할 DAC가 포함된 인스턴스에 대한 노드를 확장합니다.

  2. 관리 노드를 확장합니다 .

  3. 데이터 계층 애플리케이션 노드를 확장합니다.

  4. 삭제할 DAC를 마우스 오른쪽 단추로 클릭한 다음 데이터 계층 애플리케이션 삭제를 선택합니다 .

  5. 마법사 대화 상자를 완료합니다.

    1. 소개

    2. 메서드 선택

    3. 요약

    4. 데이터 계층 애플리케이션 삭제

소개 페이지

이 페이지에서는 데이터 계층 애플리케이션을 삭제하는 단계를 설명합니다.

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

다음 > - 메서드 선택 페이지로 진행합니다.

취소 - 데이터 계층 애플리케이션 또는 데이터베이스를 삭제하지 않고 마법사를 종료합니다.

데이터 계층 애플리케이션 삭제 마법사 사용

메서드 선택 페이지

삭제할 DAC와 연결된 데이터베이스를 처리하는 옵션을 지정하려면 이 페이지를 사용합니다.

등록 삭제 - 데이터 계층 애플리케이션을 정의하는 메타데이터를 제거하지만 연결된 데이터베이스는 그대로 둡니다.

데이터베이스 분리 - 데이터 계층 애플리케이션을 정의하는 메타데이터를 제거하고 연결된 데이터베이스를 분리합니다.

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

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

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

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

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

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

데이터 계층 애플리케이션 삭제 마법사 사용

요약 페이지

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

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

<이전 - 메서드 선택 페이지로 돌아와서 다른 삭제 방법을 선택합니다.

다음 - > 이전 페이지에서 선택한 메서드를 사용하여 DAC 인스턴스를 삭제하고 데이터 계층 애플리케이션 삭제 페이지로 진행합니다.

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

데이터 계층 애플리케이션 삭제 마법사 사용

데이터 계층 애플리케이션 페이지 삭제

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

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

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

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

데이터 계층 애플리케이션 삭제 마법사 사용

PowerShell 사용

  1. SMO Server 개체를 만들고 삭제할 DAC가 포함된 인스턴스로 설정합니다.

  2. ServerConnection 개체를 열고 동일한 인스턴스에 연결합니다.

  3. add_DacActionFinished DAC 업그레이드 이벤트를 사용하고 add_DacActionStarted 구독합니다.

  4. 삭제할 DAC를 지정합니다.

  5. 적절한 삭제 옵션에 따라 세 가지 예제 중 하나를 사용합니다.

    • DAC 등록을 삭제하고 데이터베이스를 그대로 유지하려면 이 메서드를 Unmanage 사용합니다.
    • DAC 등록을 삭제하고 데이터베이스를 분리하려면 메서드DetachDatabaseUninstall 사용하고 지정합니다.
    • DAC 등록을 삭제하고 데이터베이스를 삭제하려면 Uninstall 메서드를 사용하고 DropDatabase를 지정합니다.

DAC를 삭제하고 데이터베이스를 그대로 둡니다.

다음 예제에서는 Unmanage 메서드를 사용하여 <myApplication>이라는 DAC를 삭제하고 데이터베이스는 그대로 둡니다.

## Set a SMO Server object to the default instance on the local computer.  
CD SQLSERVER:\SQL\localhost\DEFAULT  
$server = Get-Item .  
  
## Open a Common.ServerConnection to the same instance.  
$serverConnection = New-Object Microsoft.SqlServer.Management.Common.ServerConnection($server.ConnectionContext.SqlConnectionObject)  
$serverConnection.Connect()  
$dacStore = New-Object Microsoft.SqlServer.Management.Dac.DacStore($serverConnection)  
  
## 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})  
  
## Specify the DAC to delete.  
$dacName  = "<myApplication>"  
  
## Only delete the DAC definition from msdb, the associated database remains active.  
$dacStore.Unmanage($dacName)  

DAC를 삭제하고 데이터베이스 분리

다음 예제에서는 메서드를 사용하여 명명된 <myApplication> DAC를 Uninstall 삭제하여 DAC를 삭제하고 데이터베이스를 분리합니다.

## Set a SMO Server object to the default instance on the local computer.  
CD SQLSERVER:\SQL\localhost\DEFAULT  
$server = Get-Item .  
  
## Open a Common.ServerConnection to the same instance.  
$serverConnection = New-Object Microsoft.SqlServer.Management.Common.ServerConnection($server.ConnectionContext.SqlConnectionObject)  
$serverConnection.Connect()  
$dacStore = New-Object Microsoft.SqlServer.Management.Dac.DacStore($serverConnection)  
  
## 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})  
  
## Specify the DAC to delete.  
$dacName  = "<myApplication>"  
  
## Delete the DAC definition from msdb and detach the associated database.  
$dacStore.Uninstall($dacName, [Microsoft.SqlServer.Management.Dac.DacUninstallMode]::DetachDatabase)  

DAC 삭제 및 데이터베이스 삭제

다음 예제에서는 Uninstall 메서드를 사용하여 <myApplication>이라는 DAC를 삭제하고 데이터베이스를 삭제합니다.

## Set a SMO Server object to the default instance on the local computer.  
CD SQLSERVER:\SQL\localhost\DEFAULT  
$server = Get-Item .  
  
## Open a Common.ServerConnection to the same instance.  
$serverConnection = New-Object Microsoft.SqlServer.Management.Common.ServerConnection($server.ConnectionContext.SqlConnectionObject)  
$serverConnection.Connect()  
$dacStore = New-Object Microsoft.SqlServer.Management.Dac.DacStore($serverConnection)  
  
## 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})  
  
## Specify the DAC to delete.  
$dacName  = "<myApplication>"  
  
## Delete the DAC definition from msdb and drop the associated database.  
$dacStore.Uninstall($dacName, [Microsoft.SqlServer.Management.Dac.DacUninstallMode]::DropDatabase)  

참고 항목

데이터 계층 애플리케이션
데이터 계층 애플리케이션
데이터 계층 애플리케이션 배포
데이터베이스를 DAC로 등록
SQL Server 데이터베이스 백업 및 복원
데이터베이스 분리 및 연결(SQL Server)