Add-SqlAvailabilityDatabase
Fügt einer Verfügbarkeitsgruppe primäre Datenbanken 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>]
[-ProgressAction <ActionPreference>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Add-SqlAvailabilityDatabase
-Database <String[]>
[-InputObject] <AvailabilityGroup[]>
[-Script]
[-AccessToken <PSObject>]
[-TrustServerCertificate]
[-HostNameInCertificate <String>]
[-Encrypt <String>]
[-ProgressAction <ActionPreference>]
[-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 einer Verfügbarkeitsgruppe Datenbanken hinzuzufügen, führen Sie dieses Cmdlet auf der Serverinstanz aus, die das primäre Replikat hosten soll. Geben Sie eine oder mehrere lokale Benutzerdatenbanken an.
Um eine sekundäre Datenbank mit der Verfügbarkeitsgruppe zu verbinden, bereiten Sie die sekundäre Datenbank manuell auf der Serverinstanz vor, die das sekundäre Replikat hosten soll. Führen Sie dann dieses Cmdlet auf der Serverinstanz aus, die das sekundäre Replikat hosten soll.
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 der primären Serverinstanz der Verfügbarkeitsgruppe aus. Mit diesem Befehl werden sekundäre Datenbanken nicht für die Datensynchronisierung vorbereitet.
Beispiel 2: Hinzufügen einer Datenbank zu 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" in einer der Serverinstanzen verknüpft, die ein sekundäres Replikat hostet.
Beispiel 3: Hinzufügen einer Datenbank und Hinzufügen 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 der Serverinstanz vorbereitet, die das primäre Replikat einer Verfügbarkeitsgruppe hostet. Sie fügt die Datenbank einer Verfügbarkeitsgruppe als primäre Datenbank hinzu. Schließlich verknüpft sie die sekundäre Datenbank mit der Verfügbarkeitsgruppe.
Der sechste Befehl sichert die Protokolldatei für "Database16" auf dem primären Server an dem Speicherort in $LogBackupFile.
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 die Datenbank "Database16" zur Verfügbarkeitsgruppe "MainAG" 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. zum Herstellen einer Verbindung mit SQL Azure DB
und SQL Azure Managed Instance
mithilfe eines Service Principal
oder einer Managed Identity
verwendet werden.
Der zu verwendende Parameter kann entweder eine Zeichenfolge sein, die das Token darstellt, oder ein PSAccessToken
-Objekt, wie durch Ausführen von Get-AzAccessToken -ResourceUrl https://database.windows.net
zurückgegeben wird.
Dieser Parameter ist neu in v22 des Moduls.
Typ: | PSObject |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Confirm
Fordert Sie vor dem Ausführen des Cmdlets zur Bestätigung auf.
Typ: | SwitchParameter |
Aliase: | cf |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Database
Gibt ein Array von Benutzerdatenbanken an. Mit diesem Cmdlet werden die Datenbanken hinzugefügt oder verknüpft, die dieser Parameter der Verfügbarkeitsgruppe angibt. Die von Ihnen angegebenen Datenbanken müssen sich in der lokalen Instanz von SQL Server befinden.
Typ: | String[] |
Position: | Named |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-Encrypt
Der Verschlüsselungstyp, der beim Herstellen einer Verbindung mit SQL Server verwendet werden soll.
Dieser Wert ist der Encrypt
Eigenschaft SqlConnectionEncryptOption
für das SqlConnection-Objekt des Microsoft.Data.SqlClient-Treibers zugeordnet.
In v22 des Moduls ist die Standardeinstellung Optional
(aus Kompatibilität mit v21). In v23+ des Moduls lautet der Standardwert "Verpflichtend", wodurch für vorhandene Skripts eine bahnbrechende Änderung erstellt werden kann.
Dieser Parameter ist neu in v22 des Moduls.
Typ: | String |
Zulässige Werte: | Mandatory, Optional, Strict |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-HostNameInCertificate
Der Hostname, der beim Überprüfen des SQL Server TLS/SSL-Zertifikats verwendet werden soll. Sie müssen diesen Parameter übergeben, wenn Ihre SQL Server-Instanz für die Erzwingungsverschlüsselung aktiviert ist und Sie eine Verbindung mit einer Instanz mit 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 einer SQL Server-Instanz herzustellen, die für die Erzwingungsverschlüsselung aktiviert ist.
Dieser Parameter ist neu in v22 des Moduls.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-InputObject
Gibt die Verfügbarkeitsgruppe als AvailabilityGroup-Objekt an, dem dieses Cmdlet Datenbanken hinzufügt oder verknüpft.
Typ: | AvailabilityGroup[] |
Position: | 1 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | 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 Arbeitsort.
Typ: | String[] |
Position: | 1 |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-ProgressAction
Bestimmt, wie PowerShell auf Statusaktualisierungen reagiert, die von einem Skript, Cmdlet oder Anbieter generiert werden, z. B. auf die Statusanzeigen, die vom Cmdlet Write-Progress generiert werden. Das Cmdlet Write-Progress erstellt Statusanzeigen, die den Status eines Befehls anzeigen.
Typ: | ActionPreference |
Aliase: | proga |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Script
Gibt an, dass dieses Cmdlet ein Transact-SQL Skript zurückgibt, das die aufgabe ausführt, die dieses Cmdlet ausführt.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-TrustServerCertificate
Gibt an, ob der Kanal verschlüsselt wird, während die Zertifikatkette umgangen wird, um die Vertrauensstellung zu überprüfen.
In v22 des Moduls ist die Standardeinstellung $true
(aus Kompatibilität mit v21). In v23+ des Moduls lautet der Standardwert "$false", wodurch möglicherweise eine änderung für vorhandene Skripts geändert wird.
Dieser Parameter ist neu in v22 des Moduls.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-WhatIf
Zeigt, was passiert, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.
Typ: | SwitchParameter |
Aliase: | wi |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
Eingaben
System.String[], Microsoft.SqlServer.Management.Smo.AvailabilityGroup[]
Ausgaben
System.Object