Condividi tramite


Procedura: Rimozione di un'istanza di SQL Server dall'utilità di SQL Server

Utilizzare la procedura seguente per rimuovere un'istanza gestita di SQL Server dall'utilità di SQL Server. Questa procedura consente di rimuovere l'istanza di SQL Server dalla visualizzazione elenco del punto di controllo dell'utilità e di arrestare la raccolta dei dati nell'utilità di SQL Server. L'istanza di SQL Server non viene disinstallata.

Nota importanteImportante

Prima di utilizzare questa procedura per rimuovere un'istanza di SQL Server dall'utilità di SQL Server, verificare che i servizi di SQL Server e SQL Server Agent siano in esecuzione nell'istanza da rimuovere.

  1. Da Esplora utilità in SQL Server Management Studio, fare clic su Istanze gestite. Osservare la visualizzazione elenco delle istanze gestite di SQL Server nel riquadro del contenuto di Esplora utilità.

  2. Nella colonna Nome istanza di SQL Server della visualizzazione elenco, selezionare l'istanza di SQL Server da rimuovere dall'utilità di SQL Server. Fare clic con il pulsante destro del mouse sull'istanza da rimuovere e scegliere Rimuovi istanza gestita.

  3. Specificare le credenziali con i privilegi di amministratore per l'istanza di SQL Server. Fare clic su Connetti., verificare le informazioni nella finestra di dialogo Connetti al server, quindi fare clic su Connetti. Le informazioni di accesso verranno visualizzate nella finestra di dialogo Rimuovi istanza gestita.

  4. Fare clic su OK per confermare l'operazione. Per uscire dall'operazione, scegliere Annulla.

Rimozione manuale di un'istanza gestita di SQL Server da un'utilità di SQL Server

Questa procedura consente di rimuovere l'istanza di SQL Server dalla visualizzazione elenco del punto di controllo dell'utilità e di arrestare la raccolta dei dati nell'utilità di SQL Server. L'istanza di SQL Server non viene disinstallata.

Per utilizzare PowerShell per rimuovere un'istanza gestita di SQL Server dall'utilità di SQL Server, lo script esegue le operazioni seguenti:

  • Ottiene il punto di controllo dell'utilità tramite il nome dell'istanza del server.

  • Rimuove l'istanza gestita di SQL Server dall'utilità di 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);

Utilizzare i comandi Transact-SQL seguenti in SQL Server Management Studio se tutti gli altri metodi non consentono di rimuovere un'istanza gestita di SQL Server dall'utilità di SQL Server. Entrambi gli script presuppongono che l'utente abbia eseguito l'accesso come sysadmin.

  1. Connettersi all'istanza gestita di SQL Server ed eseguire la seguente stored procedure:

    EXEC msdb.dbo.sp_sysutility_mi_remove;
    

    A questo punto, l'istanza gestita di SQL Server è ancora visualizzata in Esplora utilità, ma non carica più dati nel punto di controllo dell'utilità. Lo stato nella visualizzazione elenco deve essere grigio. Tecnicamente, l'istanza non è registrata in un'utilità di SQL Server, pertanto potrebbe essere registrata in un punto di controllo dell'utilità diverso.

  1. Connettersi al punto di controllo dell'utilità ed eseguire il seguente script:

    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;
    

Si tenga presente che è importante fare riferimento esattamente al nome dell'istanza di SQL Server come viene archiviato in SQL Server. Su un'istanza con distinzione tra maiuscole e minuscole di SQL Server, è necessario specificare il nome dell'istanza utilizzando la combinazione di maiuscole e minuscole esatta restituita da @@SERVERNAME. Per ottenere il nome dell'istanza per l'istanza gestita di SQL Server, eseguire la seguente query sull'istanza gestita:

select @@SERVERNAME AS instance_name

A questo punto, l'istanza gestita di SQL Server viene rimossa completamente dal punto di controllo dell'utilità. Al successivo aggiornamento dei dati per l'utilità di SQL Server non risulterà più presente nella visualizzazione elenco. Il risultato è identico al caso in cui un utente esegue la rimozione dell'istanza gestita nell'interfaccia utente di SSMS.