Rimuovere un database primario da un gruppo di disponibilità (SQL Server)Remove a Primary Database from an Availability Group (SQL Server)

Questo argomento illustra come rimuovere il database primario e il database o i database secondari corrispondenti da un gruppo di disponibilità Always On usando SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQLo PowerShell in SQL Server 2017SQL Server 2017.This topic describes how to remove both the primary database and the corresponding secondary database(s) from an Always On availability group by using SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQL, or PowerShell in SQL Server 2017SQL Server 2017.

Prima di iniziare Before You Begin

Prerequisiti e restrizioni Prerequisites and Restrictions

  • Questa attività può essere eseguita solo sulle repliche primarie.This task is supported only on primary replicas. È necessario essere connessi all'istanza del server che ospita la replica primaria.You must be connected to the server instance that hosts the primary replica.

Sicurezza Security

Autorizzazioni Permissions

È necessaria l'autorizzazione ALTER AVAILABILITY GROUP nel gruppo di disponibilità, l'autorizzazione CONTROL AVAILABILITY GROUP, l'autorizzazione ALTER ANY AVAILABILITY GROUP o l'autorizzazione CONTROL SERVER.Requires ALTER AVAILABILITY GROUP permission on the availability group, CONTROL AVAILABILITY GROUP permission, ALTER ANY AVAILABILITY GROUP permission, or CONTROL SERVER permission.

Utilizzo di SQL Server Management Studio Using SQL Server Management Studio

Per rimuovere un database di disponibilitàTo remove an availability database

  1. In Esplora oggetti connettersi all'istanza del server che ospita la replica primaria del database o dei database da rimuovere ed espandere l'albero del server.In Object Explorer, connect to the server instance that hosts the primary replica of the database or databases to be removed, and expand the server tree.

  2. Espandere il nodo Disponibilità elevata Always On e il nodo Gruppi di disponibilità .Expand the Always On High Availability node and the Availability Groups node.

  3. Selezionare il gruppo di disponibilità ed espandere il nodo Database di disponibilità .Select the availability group, and expand the Availability Databases node.

  4. Questo passaggio dipende dalla scelta di rimuovere uno o più database:This step depends on whether you want to remove multiple databases groups or only one database, as follows:

  5. Fare clic con il pulsante destro del mouse sul database o sui database selezionati e scegliere Rimuovere il database dal gruppo di disponibilità nel menu dei comandi.Right-click the selected database or databases, and select Remove Database from Availability Group in the command menu.

  6. Nella finestra di dialogo Rimuovi i database dal gruppo di disponibilità scegliere OKper rimuovere tutti i database elencati.In the Remove Databases from Availability Group dialog box, to remove all the listed databases, click OK. Se non si desidera rimuoverli tutti, scegliere Annulla.If you do not want to remove all them, click Cancel.

Utilizzo di Transact-SQL Using Transact-SQL

Per rimuovere un database di disponibilitàTo remove an availability database

  1. Connettersi all'istanza del server che ospita la replica primaria.Connect to the server instance that hosts the primary replica.

  2. Utilizzare l'istruzione ALTER AVAILABILITY GROUP , come indicato di seguito:Use the ALTER AVAILABILITY GROUP statement, as follows:

    ALTER AVAILABILITY GROUP group_name REMOVE DATABASE availability_database_nameALTER AVAILABILITY GROUP group_name REMOVE DATABASE availability_database_name

    dove group_name è il nome del gruppo di disponibilità e database_name è il nome di un database da aggiungere al gruppo.where group_name is the name of the availability group and database_name is the name of the database to be removed.

    Nell'esempio seguente viene rimosso un database denominato Db6 dal gruppo di disponibilità MyAG .The following example removes a databases named Db6 from the MyAG availability group.

    ALTER AVAILABILITY GROUP MyAG REMOVE DATABASE Db6;  
    

Utilizzo di PowerShell Using PowerShell

Per rimuovere un database di disponibilitàTo remove an availability database

  1. Passare alla directory (cd) dell'istanza del server che ospita la replica primaria.Change directory (cd) to the server instance that hosts the primary replica.

  2. Usare il cmdlet Remove-SqlAvailabilityDatabase specificando il nome del database di disponibilità da rimuovere dal gruppo di disponibilità.Use the Remove-SqlAvailabilityDatabase cmdlet, specifying the name of the availability database to be removed from the availability group. Quando si è connessi all'istanza del server che ospita la replica primaria, il database primario e i database secondari corrispondenti vengono tutti rimossi dal gruppo di disponibilità.When you are connected to the server instance that hosts the primary replica, the primary database and its corresponding secondary databases are all removed from the availability group.

    Ad esempio, il seguente comando rimuove il database di disponibilità MyDb9 dal gruppo di disponibilità denominato MyAg.For example, the following command removes the availability database MyDb9 from the availability group named MyAg. Dal momento che il comando viene eseguito nell'istanza del server che ospita la replica primaria, il database primario e tutti i relativi database secondari corrispondenti vengono rimossi dal gruppo di disponibilità.Because the command is executed on the server instance that hosts the primary replica, the primary database and all its corresponding secondary databases are removed from the availability group. La sincronizzazione dei dati non verrà più eseguita per questo database in nessuna replica secondaria.Data synchronization will no longer occur for this database on any secondary replica.

    Remove-SqlAvailabilityDatabase `   
    -Path SQLSERVER:\Sql\PrimaryComputer\InstanceName\AvailabilityGroups\MyAg\AvailabilityDatabases\MyDb9
    

    Nota

    Per visualizzare la sintassi di un cmdlet, usare il cmdlet Get-Help nell'ambiente SQL Server 2017SQL Server 2017 PowerShell.To view the syntax of a cmdlet, use the Get-Help cmdlet in the SQL Server 2017SQL Server 2017 PowerShell environment. Per altre informazioni, vedere Get Help SQL Server PowerShell.For more information, see Get Help SQL Server PowerShell.

    Per impostare e utilizzare il provider PowerShell per SQL ServerTo set up and use the SQL Server PowerShell provider

Completamento: Dopo la rimozione di un database di disponibilità da un gruppo di disponibilità Follow Up: After Removing an Availability Database from an Availability Group

La rimozione di un database di disponibilità dal relativo gruppo di disponibilità termina la sincronizzazione dati tra il database primario precedente e i database secondari corrispondenti.Removing an availability database from its availability group ends data synchronization between the former primary database and the corresponding secondary databases. Il database primario precedente rimane online.The former primary database remains online. Ogni database secondario corrispondente viene posto nello stato RESTORING.Every corresponding secondary database is placed in the RESTORING state.

A questo punto sono disponibili modi alternativi per gestire un database secondario rimosso:At this point there are alternative ways of dealing with a removed secondary database:

  • Se un determinato database secondario non è più necessario, è possibile eliminarlo.If you no longer need a given secondary database, you can drop it.

    Per altre informazioni, vedere Eliminare un database.For more information, see Delete a Database.

  • Se si desidera accedere a un database secondario dopo che è stato rimosso dal gruppo di disponibilità, è possibile recuperare il database.If you want to access a removed secondary database after it has been removed from the availability group, you can recover the database. Tuttavia, se si recupera un database secondario rimosso, saranno online due database indipendenti e divergenti con lo stesso nome.However, if you recover a removed secondary database, two divergent, independent databases that have the same name are online. È necessario assicurarsi che i client possano accedere a uno solo di essi, di solito al database primario più recente.You must make sure that clients can access only one of them, typically the most recent primary database.

    Per altre informazioni, vedere Recuperare un database senza ripristino dei dati (Transact-SQL).For more information, see Recover a Database Without Restoring Data (Transact-SQL).

Vedere ancheSee Also

Panoramica di Gruppi di disponibilità Always On (SQL Server) Overview of Always On Availability Groups (SQL Server)
Rimuovere un database secondario da un gruppo di disponibilità (SQL Server)Remove a Secondary Database from an Availability Group (SQL Server)