Remove-SqlAvailabilityDatabase

Rimuove un database di disponibilità dal gruppo di disponibilità.

Sintassi

Remove-SqlAvailabilityDatabase
      [-Path] <String[]>
      [-Script]
      [-AccessToken <PSObject>]
      [-TrustServerCertificate]
      [-HostNameInCertificate <String>]
      [-Encrypt <String>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Remove-SqlAvailabilityDatabase
      [-InputObject] <AvailabilityDatabase[]>
      [-Script]
      [-AccessToken <PSObject>]
      [-TrustServerCertificate]
      [-HostNameInCertificate <String>]
      [-Encrypt <String>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

Descrizione

Il cmdlet Remove-SqlAvailabilityDatabase rimuove il database di disponibilità dal gruppo di disponibilità. Il parametro InputObject o Path specifica il database di disponibilità.

Se si esegue questo cmdlet nell'istanza del server che ospita la replica primaria, il cmdlet rimuove il database primario e tutti i database secondari corrispondenti dal gruppo di disponibilità.

Se si esegue questo cmdlet in un'istanza del server che ospita una replica secondaria, il cmdlet rimuove solo il database secondario locale dal gruppo di disponibilità. Il database secondario non è più aggiunto al gruppo di disponibilità, ma altre copie del database continuano a essere aggiunte.

Esempio

Esempio 1: Rimuovere un database da un gruppo di disponibilità

PS C:\> Remove-SqlAvailabilityDatabase -Path "SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MainAG\AvailabilityDatabases\Database16"

Questo comando rimuove il database di disponibilità denominato Database16 dal gruppo di disponibilità denominato MainAG. Questo comando viene eseguito nell'istanza del server che ospita la replica primaria. Pertanto, rimuove il database primario e tutti i relativi database secondari dal gruppo di disponibilità. La sincronizzazione dei dati non si verifica più per questo database in qualsiasi replica secondaria.

Esempio 2: Rimuovere tutti i database da un gruppo di disponibilità

PS C:\> Get-ChildItem "SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MainAG\AvailabilityDatabases" | Remove-SqlAvailabilityDatabase

Questo comando ottiene tutti i database di disponibilità che appartengono a MainAGe quindi li passa al cmdlet corrente usando l'operatore della pipeline. Il cmdlet corrente rimuove ogni database di disponibilità.

Esempio 3: Rimuovere un database secondario da un gruppo di disponibilità

PS C:\> Remove-SqlAvailabilityDatabase -Path "SQLSERVER:\Sql\SecondaryServer\InstanceName\AvailabilityGroups\MainAG\AvailabilityDatabases\Database16"

Questo comando rimuove il database secondario denominato Database16 dalla replica secondaria ospitata dall'istanza del server denominata SecondaryServer\Instance. La sincronizzazione dei dati ai database secondari rimossi si arresta. Questo comando non influisce sul database primario né su nessun altro database secondario.

Esempio 4: Creare uno script per rimuovere un database da un gruppo di disponibilità

PS C:\> Remove-SqlAvailabilityDatabase -Path "SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MainAG\AvailabilityDatabases\Database16" -Script

Questo comando crea uno script Transact-SQL che rimuove il database di disponibilità denominato Database16MainAG. Il comando non esegue questa azione.

Parametri

-AccessToken

Token di accesso usato per eseguire l'autenticazione per SQL Server, come alternativa all'autenticazione utente/password o a Windows.

Questa operazione può essere usata, ad esempio, per connettersi a SQL Azure DB e SQL Azure Managed Instance usando un Service Principal oggetto o .Managed Identity

Il parametro da usare può essere una stringa che rappresenta il token o un PSAccessToken oggetto restituito eseguendo Get-AzAccessToken -ResourceUrl https://database.windows.net.

Questo parametro è nuovo nella versione 22 del modulo.

Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

Richiede la conferma dell'utente prima di eseguire il cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Encrypt

Tipo di crittografia da usare durante la connessione a SQL Server.

Questo valore esegue il Encrypt mapping alla proprietà SqlConnectionEncryptOption nell'oggetto SqlConnection del driver Microsoft.Data.SqlClient.

Nella versione 22 del modulo il valore predefinito è Optional (per la compatibilità con v21). Nella versione 23+ del modulo il valore predefinito sarà "Obbligatorio", che può creare una modifica di rilievo per gli script esistenti.

Questo parametro è nuovo nella versione 22 del modulo.

Type:String
Accepted values:Mandatory, Optional, Strict
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-HostNameInCertificate

Nome host da usare per la convalida del certificato TLS/SSL di SQL Server. È necessario passare questo parametro se l'istanza di SQL Server è abilitata per Force Encryption e si vuole connettersi a un'istanza usando nome host/nome breve. Se questo parametro viene omesso, è necessario passare il nome di dominio completo (FQDN) a -ServerInstance per connettersi a un'istanza di SQL Server abilitata per Force Encryption.

Questo parametro è nuovo nella versione 22 del modulo.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Specifica il database di disponibilità, come oggetto AvailabilityDatabase , che questo cmdlet rimuove.

Type:AvailabilityDatabase[]
Position:1
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Path

Specifica il percorso di un database di disponibilità rimosso dal cmdlet.

Type:String[]
Position:1
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Script

Indica che questo cmdlet restituisce uno script Transact-SQL che esegue l'attività eseguita da questo cmdlet.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TrustServerCertificate

Indica se il canale verrà crittografato durante il bypass della catena di certificati per convalidare l'attendibilità.

Nella versione 22 del modulo il valore predefinito è $true (per la compatibilità con v21). Nella versione 23+ del modulo il valore predefinito sarà "$false", che può creare una modifica di rilievo per gli script esistenti.

Questo parametro è nuovo nella versione 22 del modulo.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Mostra l'esito in caso di esecuzione del cmdlet. Il cmdlet non viene eseguito.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Input

Microsoft.SqlServer.Management.Smo.AvailabilityDatabase

È possibile passare un database di disponibilità a questo cmdlet.