Add-SqlAvailabilityDatabase

Aggiunge database primari a un gruppo di disponibilità o aggiunge database secondari a un gruppo di disponibilità.

Sintassi

Add-SqlAvailabilityDatabase
   -Database <String[]>
   [[-Path] <String[]>]
   [-Script]
   [-AccessToken <PSObject>]
   [-TrustServerCertificate]
   [-HostNameInCertificate <String>]
   [-Encrypt <String>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Add-SqlAvailabilityDatabase
   -Database <String[]>
   [-InputObject] <AvailabilityGroup[]>
   [-Script]
   [-AccessToken <PSObject>]
   [-TrustServerCertificate]
   [-HostNameInCertificate <String>]
   [-Encrypt <String>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Descrizione

Il cmdlet Add-SqlAvailabilityDatabase aggiunge database primari a un gruppo di disponibilità o aggiunge database secondari a un gruppo di disponibilità. Il parametro InputObject o Path specifica il gruppo di disponibilità. Un database può appartenere a un solo gruppo di disponibilità.

Per aggiungere database a un gruppo di disponibilità, eseguire questo cmdlet nell'istanza del server che ospita la replica primaria. Specificare uno o più database utente locali.

Per aggiungere un database secondario al gruppo di disponibilità, preparare manualmente il database secondario nell'istanza del server che ospita la replica secondaria. Eseguire quindi questo cmdlet nell'istanza del server che ospita la replica secondaria.

Module requirements: version 21+ on PowerShell 5.1; version 22+ on PowerShell 7.x.

Esempio

Esempio 1: Aggiungere un database a un gruppo di disponibilità

PS C:\> Add-SqlAvailabilityDatabase -Path "SQLSERVER:\SQL\PrimaryServer\InstanceName\AvailabilityGroups\MainAG" -Database "Database16"

Questo comando aggiunge il database 'Database16' al gruppo di disponibilità 'MainAG'. Eseguire questo comando nell'istanza del server primario del gruppo di disponibilità. Questo comando non prepara i database secondari per la sincronizzazione dei dati.

Esempio 2: Aggiungere un database a un gruppo di disponibilità

PS C:\> Add-SqlAvailabilityDatabase -Path "SQLSERVER:\SQL\SecondaryServer\InstanceName\AvailabilityGroups\MainAG" -Database "Database16"

Questo comando aggiunge un database secondario denominato 'Database16' al gruppo di disponibilità 'MainAG' in una delle istanze del server che ospita una replica secondaria.

Esempio 3: Aggiungere un database e aggiungere un database secondario a un gruppo di disponibilità

PS C:\> $DatabaseBackupFile = "\\share\backups\Database16.bak"
PS C:\> $LogBackupFile = "\\share\backups\Database16.trn"
PS C:\> $AGPrimaryPath = "SQLSERVER:\SQL\PrimaryServer\InstanceName\AvailabilityGroups\MainAG"
PS C:\> $MyAGSecondaryPath = "SQLSERVER:\SQL\SecondaryServer\InstanceName\AvailabilityGroups\MainAG"
PS C:\> Backup-SqlDatabase -Database "Database16" -BackupFile $DatabaseBackupFile -ServerInstance "PrimaryServer\InstanceName"
PS C:\> Backup-SqlDatabase -Database "Database16" -BackupFile $LogBackupFile -ServerInstance "PrimaryServer\InstanceName" -BackupAction Log
PS C:\> Restore-SqlDatabase -Database "Database16" -BackupFile $DatabaseBackupFile -ServerInstance "SecondaryServer\InstanceName" -NoRecovery
PS C:\> Restore-SqlDatabase -Database "Database16" -BackupFile $LogBackupFile -ServerInstance "SecondaryServer\InstanceName" -RestoreAction Log -NoRecovery
PS C:\> Add-SqlAvailabilityDatabase -Path $AGPrimaryPath -Database 'Database16'
PS C:\> Add-SqlAvailabilityDatabase -Path $AGSecondaryPath -Database "Database16"

In questo esempio viene preparato un database secondario da un database nell'istanza del server che ospita la replica primaria di un gruppo di disponibilità. Aggiunge il database a un gruppo di disponibilità come database primario. Infine, aggiunge il database secondario al gruppo di disponibilità.

Il sesto comando esegue il backup del file di log per 'Database16' nel server primario nel percorso in $LogBackupFile.

Esempio 4: Creare uno script per aggiungere un database a un gruppo di disponibilità

PS C:\> Add-SqlAvailabilityDatabase -Path "SQLSERVER:\SQL\PrimaryServer\InstanceName\AvailabilityGroups\MainAG" -Database "Database16" -Script

Questo comando crea uno script Transact-SQL che aggiunge il database 'Database16' al gruppo di disponibilità 'MainAG'.

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

-Database

Specifica una matrice di database utente. Questo cmdlet aggiunge o aggiunge i database che questo parametro specifica al gruppo di disponibilità. I database specificati devono risiedere nell'istanza locale di SQL Server.

Type:String[]
Position:Named
Default value:None
Required:True
Accept pipeline input:True
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 gruppo di disponibilità, come oggetto AvailabilityGroup, a cui questo cmdlet aggiunge o aggiunge database.

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

-Path

Specifica il percorso di un gruppo di disponibilità a cui questo cmdlet aggiunge o aggiunge database. Se non si specifica questo parametro, questo cmdlet usa la posizione di lavoro corrente.

Type:String[]
Position:1
Default value:None
Required:False
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

System.String[], Microsoft.SqlServer.Management.Smo.AvailabilityGroup[]

Output

System.Object