Удаление приложения уровня данных

Область применения:SQL ServerAzure SQL Database

Для удаления приложения уровня данных (DAC) используйте мастер удаления приложения уровня данных или скрипт Windows PowerShell. Можно указать, будет ли связанная база данных сохранена, отсоединена или уничтожена.

Перед началом

При удалении экземпляра приложения уровня данных (DAC) можно выбрать один из трех параметров, которые определяют действие над базой данных, связанной с этим приложением уровня данных. При использовании любого из трех параметров удаляются метаданные определения DAC. Различие между ними состоит в действиях, которые они выполняют с базой данных, связанной с приложением уровня данных. Мастер не удаляет ни один из объектов уровня экземпляра, связанных с DAC или базой данных, таких как имена входа.

Вариант Действия с базой данных
Регистрация удаления Связанная база данных остается неизменной.
Отсоединение базы данных Выполняется отсоединение связанной базы данных. Экземпляр компонента Database Engine не может ссылаться на эту базу данных, но данные и файлы журналов сохраняются целыми.
Удаление базы данных Связанная база данных уничтожается. Происходит удаление данных и файлов журналов.

Ограничения

Автоматический механизм восстановления метаданных определения приложения уровня данных или базы данных после удаления приложения уровня данных отсутствует. Способ, как можно будет вручную перестроить экземпляр приложения уровня данных, зависит от параметра удаления.

Вариант Повторное создание экземпляра приложения уровня данных
Регистрация удаления Зарегистрируйте приложение уровня данных из оставшейся базы данных.
Отсоединение базы данных Повторно подключите базу данных с помощью sp_attachdb или SQL Server Management Studio, а затем зарегистрируйте новый экземпляр DAC из базы данных.
Удаление базы данных Восстановите базу данных из полной резервной копии, созданной до удаления приложения уровня данных, а затем зарегистрируйте новый экземпляр приложения уровня данных из базы данных.

Предупреждение

При повторном создании экземпляра приложения уровня данных путем его регистрации из восстановленной или повторно присоединенной базы данных некоторые части исходного приложения уровня данных, например политика выбора сервера, не создаются повторно.

Разрешения

Приложение уровня данных (DAC) может быть удалено только членами предопределенных ролей сервера sysadmin и serveradmin или владельцем базы данных. Встроенная учетная запись системного администратора SQL Server с именем sa также может запустить мастер.

Использование мастера удаления приложения уровня данных

Удаление приложения уровня данных с помощью мастера

  1. В Обозревателе объектовразверните узел экземпляра, содержащего приложение уровня данных, которое требуется удалить.

  2. Разверните узел Управление .

  3. Разверните узел Приложения уровня данных .

  4. Щелкните правой кнопкой мыши приложение уровня данных, которое требуется удалить, и выберите пункт Удалить приложение уровня данных....

  5. Выполните шаги в диалоговых окнах мастера.

    1. Введение

    2. Выбор метода

    3. Сводка

    4. Удалить приложение уровня данных

Вводная страница

На этой странице описаны шаги удаления приложения уровня данных.

Больше не показывать эту страницу. — щелкните этот флажок, чтобы предотвратить отображение этой страницы в будущем.

Далее > — переходит на страницу выбора метода .

Отмена — отмена действий мастера без удаления приложения уровня данных или базы данных.

Использование мастера удаления приложения уровня данных

Страница «Выбор метода»

Используйте данную страницу, чтобы указать параметр для обработки связанной с удаляемым приложением уровня данных базы данных.

Регистрация удаления удаляет метаданные, определяющие приложение уровня данных, но оставляет неизменной связанную базу данных.

Отсоединение базы данных — удаляет метаданные, определяющие приложение уровня данных, и отсоединяет связанную базу данных.

База данных больше не может ссылаться на этот экземпляр ядра СУБД, но файлы данных и журналов остаются неизменными.

Удаление базы данных — производится удаление метаданных, определяющих DAC, и уничтожение связанной базы данных.

Удаление данных и файлов журналов, относящихся к базе данных, осуществляется на постоянной основе.

< Назад — возврат на страницу Введение .

Далее > — переходит на страницу сводки .

Отмена — завершение работы мастера без удаления DAC или базы данных.

Использование мастера удаления приложения уровня данных

Страница «Сводка»

На этой странице можно просмотреть действия, которые будут выполнены мастером при удалении экземпляра приложения уровня данных.

Просмотр сводки по своему выбору — предоставляет возможность ознакомиться со сведениями о DAC, базе данных и методе удаления, отображенными в этом окне. Если эти сведения правильны, выберите Далее или Готово , чтобы удалить DAC. Если сведения о DAC и базе данных неверны, выберите Отмена и правильно укажите DAC. Если неверным является метод удаления, нажмите кнопку Назад , чтобы вернуться к странице Выбор метода , и укажите другой метод.

< Назад — возврат на страницу Выбор метода для выбора другого метода удаления.

Далее > — удаляет экземпляр приложения уровня данных с помощью метода, выбранного на предыдущей странице, и переходит на страницу "Удаление приложения уровня данных".

Отмена — завершение работы мастера без удаления экземпляра приложения уровня данных или базы данных.

Использование мастера удаления приложения уровня данных

Страница «Удаление приложения уровня данных»

Эта страница сообщает об успешном или неуспешном завершении операции удаления.

Удаление приложения уровня данных — сообщает об успехе или неуспехе каждого действия, предпринятого для удаления экземпляра приложения уровня данных. Просмотрите эти сведения, чтобы выяснить результаты каждого действия. Для каждого действия, в котором обнаружена ошибка, предусмотрена ссылка в столбце Результат . Выберите эту ссылку, чтобы просмотреть отчет об ошибках, относящихся данному действию.

Сохранить отчет — сохранить отчет об удалении в HTML-файле. В этом файле содержится отчет о состоянии каждого из действий, в том числе все выданные сообщения об ошибках. По умолчанию используется папка «SQL Server Management Studio\DAC Packages», вложенная в папку Documents рабочего каталога учетной записи пользователя Windows.

Готово — завершение работы мастера.

Использование мастера удаления приложения уровня данных

Использование PowerShell

  1. Создайте объект SMO Server и задайте его экземпляру, содержащему приложение уровня данных, которое требуется удалить.

  2. Откройте объект ServerConnection и подключитесь к тому же экземпляру.

  3. Используйте add_DacActionStarted и add_DacActionFinished для подписки на обновление событий приложения уровня данных.

  4. Укажите приложение уровня данных, которое требуется удалить.

  5. Используйте один из трех примеров в зависимости от того, какой из вариантов удаления является подходящим:

    • Для удаления регистрации приложения уровня данных без изменения базы данных используйте метод Unmanage.
    • Для удаления регистрации приложения уровня данных и отсоединения базы данных используйте метод Uninstall и укажите DetachDatabase.
    • Для удаления регистрации приложения уровня данных и сброса базы данных используйте метод Uninstall и укажите DropDatabase.

Удаление приложения уровня данных без изменения базы данных

В приведенном ниже примере рассматривается удаление приложения уровня данных с именем <myApplication> с помощью метода Unmanage, который позволяет удалить приложение уровня данных без изменения базы данных.

## 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)  

Удаление приложения уровня данных с отсоединением базы данных

В приведенном ниже примере рассматривается удаление приложения уровня данных с именем <myApplication> с помощью метода Uninstall, который позволяет удалить приложение уровня данных с отсоединением базы данных.

## 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)  

Удаление приложения уровня данных с удалением базы данных

В приведенном ниже примере рассматривается удаление приложения уровня данных с именем <myApplication> с помощью метода Uninstall, который позволяет удалить приложение уровня данных и базу данных.

## 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)  

См. также

Приложения уровня данных
Приложения уровня данных
Развертывание приложения уровня данных
Регистрация базы данных в качестве приложения уровня данных
Резервное копирование и восстановление баз данных SQL Server
Отсоединение базы данных и подключение (SQL Server)