Add-SqlAvailabilityDatabase
Fügt primäre Datenbanken einer Verfügbarkeitsgruppe hinzu oder verknüpft sekundäre Datenbanken zu einer Verfügbarkeitsgruppe.
Syntax
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>]
Beschreibung
Das Cmdlet Add-SqlAvailabilityDatabase fügt einer Verfügbarkeitsgruppe primäre Datenbanken hinzu oder verknüpft sekundäre Datenbanken zu einer Verfügbarkeitsgruppe. Der Parameter InputObject oder Path gibt die Verfügbarkeitsgruppe an. Eine Datenbank kann nur zu einer Verfügbarkeitsgruppe gehören.
Um Datenbanken zu einer Verfügbarkeitsgruppe hinzuzufügen, führen Sie dieses Cmdlet auf dem Server instance aus, der das primäre Replikat hostet. Geben Sie mindestens eine lokale Benutzerdatenbank an.
Um eine sekundäre Datenbank mit der Verfügbarkeitsgruppe zu verknüpfen, bereiten Sie die sekundäre Datenbank manuell auf dem Server instance vor, der das sekundäre Replikat hostet. Führen Sie dann dieses Cmdlet auf dem Server instance aus, der das sekundäre Replikat hostet.
Module requirements: version 21+ on PowerShell 5.1; version 22+ on PowerShell 7.x.
Beispiele
Beispiel 1: Hinzufügen einer Datenbank zu einer Verfügbarkeitsgruppe
PS C:\> Add-SqlAvailabilityDatabase -Path "SQLSERVER:\SQL\PrimaryServer\InstanceName\AvailabilityGroups\MainAG" -Database "Database16"
Mit diesem Befehl wird der Verfügbarkeitsgruppe "MainAG" die Datenbank "Database16" hinzugefügt. Führen Sie diesen Befehl auf dem primären Server instance der Verfügbarkeitsgruppe aus. Dieser Befehl bereitet sekundäre Datenbanken nicht für die Datensynchronisierung vor.
Beispiel 2: Verknüpfen einer Datenbank mit einer Verfügbarkeitsgruppe
PS C:\> Add-SqlAvailabilityDatabase -Path "SQLSERVER:\SQL\SecondaryServer\InstanceName\AvailabilityGroups\MainAG" -Database "Database16"
Mit diesem Befehl wird eine sekundäre Datenbank namens "Database16" mit der Verfügbarkeitsgruppe "MainAG" auf einer der Serverinstanzen verknüpft, die ein sekundäres Replikat hostet.
Beispiel 3: Hinzufügen einer Datenbank und Verknüpfen einer sekundären Datenbank zu einer Verfügbarkeitsgruppe
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 diesem Beispiel wird eine sekundäre Datenbank aus einer Datenbank auf dem Server instance vorbereitet, die das primäre Replikat einer Verfügbarkeitsgruppe hostet. Die Datenbank wird einer Verfügbarkeitsgruppe als primäre Datenbank hinzugefügt. Schließlich wird die sekundäre Datenbank mit der Verfügbarkeitsgruppe verknüpft.
Mit dem sechsten Befehl wird die Protokolldatei für "Database16" auf dem primären Server an dem Speicherort in $LogBackupFile gesichert.
Beispiel 4: Erstellen eines Skripts zum Hinzufügen einer Datenbank zu einer Verfügbarkeitsgruppe
PS C:\> Add-SqlAvailabilityDatabase -Path "SQLSERVER:\SQL\PrimaryServer\InstanceName\AvailabilityGroups\MainAG" -Database "Database16" -Script
Mit diesem Befehl wird ein Transact-SQL-Skript erstellt, das der Verfügbarkeitsgruppe "MainAG" die Datenbank "Database16" hinzufügt.
Parameter
-AccessToken
Das Zugriffstoken, das zur Authentifizierung bei SQL Server verwendet wird, als Alternative zur Benutzer-/Kennwort- oder Windows-Authentifizierung.
Dies kann z. B. verwendet werden, um eine Verbindung mit SQL Azure DB
und SQL Azure Managed Instance
mithilfe Service Principal
von herzustellen Managed Identity
.
Der zu verwendende Parameter kann entweder eine Zeichenfolge sein, die das Token darstellt, oder ein PSAccessToken
Objekt, das durch ausführen Get-AzAccessToken -ResourceUrl https://database.windows.net
zurückgegeben wird.
Dieser Parameter ist neu in v22 des Moduls.
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Confirm
Hiermit werden Sie vor der Ausführung des Cmdlets zur Bestätigung aufgefordert.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Database
Gibt ein Array von Benutzerdatenbanken an. Dieses Cmdlet fügt die Datenbanken, die dieser Parameter angibt, der Verfügbarkeitsgruppe hinzu oder verknüpft sie. Die von Ihnen angegebenen Datenbanken müssen sich auf dem lokalen instance von SQL Server befinden.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Encrypt
Der Verschlüsselungstyp, der beim Herstellen einer Verbindung mit SQL Server verwendet werden soll.
Dieser Wert wird der Encrypt
Eigenschaft SqlConnectionEncryptOption
des SqlConnection-Objekts des Microsoft.Data.SqlClient-Treibers zugeordnet.
In v22 des Moduls ist Optional
der Standardwert (aus Kompatibilität mit v21). In v23+ des Moduls lautet der Standardwert "Obligatorisch", wodurch möglicherweise eine Breaking Change für vorhandene Skripts entsteht.
Dieser Parameter ist neu in v22 des Moduls.
Type: | String |
Accepted values: | Mandatory, Optional, Strict |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-HostNameInCertificate
Der Hostname, der beim Überprüfen des TLS/SSL-Zertifikats von SQL Server verwendet werden soll. Sie müssen diesen Parameter übergeben, wenn Ihr SQL Server instance für Verschlüsselung erzwingen aktiviert ist und Sie eine Verbindung mit einer instance mithilfe von hostname/shortname herstellen möchten. Wenn dieser Parameter nicht angegeben wird, ist das Übergeben des vollqualifizierten Domänennamens (Fully Qualified Domain Name, FQDN) an -ServerInstance erforderlich, um eine Verbindung mit einem für Die Verschlüsselung erzwingen aktivierten SQL Server instance herzustellen.
Dieser Parameter ist neu in v22 des Moduls.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Gibt die Verfügbarkeitsgruppe als AvailabilityGroup-Objekt an, dem dieses Cmdlet Datenbanken hinzufügt oder verknüpft.
Type: | AvailabilityGroup[] |
Position: | 1 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Path
Gibt den Pfad einer Verfügbarkeitsgruppe an, der dieses Cmdlet Datenbanken hinzufügt oder verknüpft. Wenn Sie diesen Parameter nicht angeben, verwendet dieses Cmdlet den aktuellen Arbeitsstandort.
Type: | String[] |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Script
Gibt an, dass dieses Cmdlet ein Transact-SQL-Skript zurückgibt, das die Aufgabe ausführt, die dieses Cmdlet ausführt.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-TrustServerCertificate
Gibt an, ob der Kanal verschlüsselt wird, während das Durchlaufen der Zertifikatkette zur Überprüfung der Vertrauensstellung umgangen wird.
In v22 des Moduls ist $true
der Standardwert (aus Kompatibilität mit v21). In v23+ des Moduls lautet der Standardwert "$false", wodurch möglicherweise eine Breaking Change für vorhandene Skripts entsteht.
Dieser Parameter ist neu in v22 des Moduls.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Zeigt, was geschieht, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Eingaben
System.String[], Microsoft.SqlServer.Management.Smo.AvailabilityGroup[]
Ausgaben
System.Object