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>]
[-ProgressAction <ActionPreference>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Add-SqlAvailabilityDatabase
-Database <String[]>
[-InputObject] <AvailabilityGroup[]>
[-Script]
[-AccessToken <PSObject>]
[-TrustServerCertificate]
[-HostNameInCertificate <String>]
[-Encrypt <String>]
[-ProgressAction <ActionPreference>]
[-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 consente di specificare 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 a SQL Server, come alternativa all'autenticazione utente/password o windows.
Può essere usato, ad esempio, per connettersi a SQL Azure DB
e SQL Azure Managed Instance
usando un Service Principal
o un Managed Identity
.
Il parametro da usare può essere una stringa che rappresenta il token o un oggetto PSAccessToken
restituito eseguendo Get-AzAccessToken -ResourceUrl https://database.windows.net
.
Questo parametro è nuovo nella versione 22 del modulo.
Tipo: | PSObject |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Confirm
Richiede conferma prima di eseguire il cmdlet.
Tipo: | SwitchParameter |
Alias: | cf |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Database
Specifica una matrice di database utente. Questo cmdlet aggiunge o aggiunge i database specificati da questo parametro al gruppo di disponibilità. I database specificati devono trovarsi nell'istanza locale di SQL Server.
Tipo: | String[] |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-Encrypt
Tipo di crittografia da usare per la connessione a SQL Server.
Questo valore esegue il mapping alla proprietà Encrypt
SqlConnectionEncryptOption
sull'oggetto SqlConnection del driver Microsoft.Data.SqlClient.
Nella versione 22 del modulo, il valore predefinito è Optional
(per compatibilità con v21). Nella versione 23+ del modulo, il valore predefinito sarà "Obbligatorio", che potrebbe creare una modifica di rilievo per gli script esistenti.
Questo parametro è nuovo nella versione 22 del modulo.
Tipo: | String |
Valori accettati: | Mandatory, Optional, Strict |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-HostNameInCertificate
Nome host da usare per convalidare il certificato TLS/SSL di SQL Server. È necessario passare questo parametro se l'istanza di SQL Server è abilitata per Forza crittografia 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 Forza crittografia.
Questo parametro è nuovo nella versione 22 del modulo.
Tipo: | String |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-InputObject
Specifica il gruppo di disponibilità, come oggetto AvailabilityGroup, a cui questo cmdlet aggiunge o aggiunge database.
Tipo: | AvailabilityGroup[] |
Posizione: | 1 |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | 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.
Tipo: | String[] |
Posizione: | 1 |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-ProgressAction
Determina in che modo PowerShell risponde agli aggiornamenti dello stato generati da uno script, un cmdlet o un provider, ad esempio le barre di stato generate dal cmdlet Write-Progress. Il cmdlet Write-Progress crea barre di stato che mostrano lo stato di un comando.
Tipo: | ActionPreference |
Alias: | proga |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Script
Indica che questo cmdlet restituisce un Transact-SQL script che esegue l'attività eseguita da questo cmdlet.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | 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 compatibilità con v21). Nella versione 23+ del modulo, il valore predefinito sarà "$false", che potrebbe creare una modifica di rilievo per gli script esistenti.
Questo parametro è nuovo nella versione 22 del modulo.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-WhatIf
Mostra cosa accadrebbe se il cmdlet viene eseguito. Il cmdlet non viene eseguito.
Tipo: | SwitchParameter |
Alias: | wi |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
Input
System.String[], Microsoft.SqlServer.Management.Smo.AvailabilityGroup[]
Output
System.Object