Как удалить экземпляр SQL Server с помощью служебной программы SQL Server
Чтобы удалить управляемый экземпляр SQL Server из программы SQL Server, выполните следующие действия. Эта процедура используется для удаления экземпляра SQL Server из списка пункта управления программой и остановки сбора данных программой SQL Server. Экземпляр SQL Server не удален.
Важно! |
---|
Перед тем как использовать эту процедуру для удаления экземпляра SQL Server из программы SQL Server, убедитесь, что на удаляемом экземпляре работают службы SQL Server и агента SQL Server. |
В обозревателе программы в среде Среда SQL Server Management Studio щелкните узел Управляемые экземпляры. На панели содержимого обозревателя программы просмотрите список управляемых экземпляров SQL Server.
В столбце Имя экземпляра SQL Server списка выберите экземпляр SQL Server, который требуется удалить из программы SQL Server. Щелкните правой кнопкой мыши удаляемый экземпляр и выберите команду Удалить управляемый экземпляр….
Укажите учетные данные с правами администратора для экземпляра SQL Server. Нажмите кнопку Подключить…, проверьте данные в диалоговом окне Подключение к серверу, а затем нажмите кнопку Подключить. В диалоговом окне Удаление управляемого экземпляра появятся данные входа.
Чтобы подтвердить операцию, нажмите кнопку ОК. Чтобы прервать операцию, нажмите кнопку Отмена.
Удаление управляемого экземпляра SQL Server из программы SQL Server Utility вручную
Эта процедура используется для удаления экземпляра SQL Server из списка пункта управления программой и остановки сбора данных программой SQL Server. Экземпляр SQL Server не удален.
Удаление управляемого экземпляра SQL Server из программы SQL Server с помощью PowerShell. Скрипт выполняет следующие операции.
Возвращает пункт управления программой по имени экземпляра сервера.
Удаляет управляемый экземпляр SQL Server из программы SQL Server.
# Get Ucp connection
$UcpServerInstanceName = "ComputerName\InstanceName";
$UtilityInstance = new-object –Type Microsoft.SqlServer.Management.Smo.Server $UcpServerInstanceName;
$UcpConnection = new-object -Type Microsoft.SqlServer.Management.Sdk.Sfc.SqlStoreConnection $UtilityInstance.ConnectionContext.SqlConnectionObject;
$Utility = [Microsoft.SqlServer.Management.Utility.Utility]::Connect($UcpConnection);
# Now remove the ManagedInstance from the SQL Server Utility
$ServerInstanceName = "ComputerName\InstanceName";
$Instance = new-object -Type Microsoft.SqlServer.Management.Smo.Server $ServerInstanceName;
$InstanceConnection = new-object -Type Microsoft.SqlServer.Management.Sdk.Sfc.SqlStoreConnection $Instance.ConnectionContext.SqlConnectionObject;
$ManagedInstance = $Utility.ManagedInstances[$ServerInstanceName];
$ManagedInstance.Remove($InstanceConnection);
Если все другие способы удаления управляемого экземпляра SQL Server из программы SQL Server не дали результата, используйте следующие команды Transact-SQL в среде Среда SQL Server Management Studio. Для обоих сценариев необходима работа пользователя от лица sysadmin.
Подключитесь к управляемому экземпляру SQL Server и выполните эту хранимую процедуру:
EXEC msdb.dbo.sp_sysutility_mi_remove;
В это время управляемый экземпляр SQL Server все еще будет отображаться в обозревателе программы, но уже перестанет передавать новые данные в пункт управления программой. Его состояние в представлении списка будет серым. Технически этот экземпляр не зарегистрирован в программе SQL Server, поэтому его можно регистрировать в другом пункте управления программой.
Подключитесь к пункту управления программой и выполните этот сценарий:
DECLARE @instance_id int; SELECT @instance_id = mi.instance_id FROM msdb.dbo.sysutility_ucp_managed_instances AS mi WHERE mi.instance_name = 'ComputerName\InstanceName'; EXEC msdb.dbo.sp_sysutility_ucp_remove_mi @instance_id;
Следует отметить, что важно указать точно такое же имя экземпляра SQL Server, какое хранится в SQL Server. Для экземпляра SQL Server, учитывающем регистр, необходимо указать имя экземпляра в точном соответствии с возвращенным командой @@SERVERNAME. Чтобы получить имя управляемого экземпляра SQL Server, выполните этот запрос на управляемом экземпляре:
select @@SERVERNAME AS instance_name
В этот момент управляемый экземпляр SQL Server будет полностью удален из пункта управления программой. При следующем обновлении данных для программы SQL Server Utility он исчезнет из списка. Это состояние похоже на то, когда пользователь успешно выполнил операцию удаления управляемого экземпляра в пользовательском интерфейсе среды SSMS.