New-SqlAvailabilityReplica
Erstellt ein Verfügbarkeitsreplikat.
Syntax
New-SqlAvailabilityReplica
-AvailabilityMode <AvailabilityReplicaAvailabilityMode>
-FailoverMode <AvailabilityReplicaFailoverMode>
-EndpointUrl <String>
[-SessionTimeout <Int32>]
[-ConnectionModeInPrimaryRole <AvailabilityReplicaConnectionModeInPrimaryRole>]
[-ConnectionModeInSecondaryRole <AvailabilityReplicaConnectionModeInSecondaryRole>]
[-BackupPriority <Int32>]
[-ReadOnlyRoutingList <String[]>]
[-ReadonlyRoutingConnectionUrl <String>]
[-SeedingMode <AvailabilityReplicaSeedingMode>]
[-LoadBalancedReadOnlyRoutingList <String[][]>]
[-Name] <String>
[[-Path] <String>]
[-Script]
[-AccessToken <PSObject>]
[-TrustServerCertificate]
[-HostNameInCertificate <String>]
[-Encrypt <String>]
[-ProgressAction <ActionPreference>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
New-SqlAvailabilityReplica
-AvailabilityMode <AvailabilityReplicaAvailabilityMode>
-FailoverMode <AvailabilityReplicaFailoverMode>
-EndpointUrl <String>
[-SessionTimeout <Int32>]
[-ConnectionModeInPrimaryRole <AvailabilityReplicaConnectionModeInPrimaryRole>]
[-ConnectionModeInSecondaryRole <AvailabilityReplicaConnectionModeInSecondaryRole>]
[-BackupPriority <Int32>]
[-ReadOnlyRoutingList <String[]>]
[-ReadonlyRoutingConnectionUrl <String>]
[-SeedingMode <AvailabilityReplicaSeedingMode>]
[-LoadBalancedReadOnlyRoutingList <String[][]>]
[-AsTemplate]
[-Version <ServerVersion>]
[-Name] <String>
[-Script]
[-AccessToken <PSObject>]
[-TrustServerCertificate]
[-HostNameInCertificate <String>]
[-Encrypt <String>]
[-ProgressAction <ActionPreference>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
New-SqlAvailabilityReplica
-AvailabilityMode <AvailabilityReplicaAvailabilityMode>
-FailoverMode <AvailabilityReplicaFailoverMode>
-EndpointUrl <String>
[-SessionTimeout <Int32>]
[-ConnectionModeInPrimaryRole <AvailabilityReplicaConnectionModeInPrimaryRole>]
[-ConnectionModeInSecondaryRole <AvailabilityReplicaConnectionModeInSecondaryRole>]
[-BackupPriority <Int32>]
[-ReadOnlyRoutingList <String[]>]
[-ReadonlyRoutingConnectionUrl <String>]
[-SeedingMode <AvailabilityReplicaSeedingMode>]
[-LoadBalancedReadOnlyRoutingList <String[][]>]
[-Name] <String>
[-InputObject] <AvailabilityGroup>
[-Script]
[-AccessToken <PSObject>]
[-TrustServerCertificate]
[-HostNameInCertificate <String>]
[-Encrypt <String>]
[-ProgressAction <ActionPreference>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Beschreibung
Das Cmdlet New-SqlAvailabilityReplica erstellt ein Verfügbarkeitsreplikat. Führen Sie dieses Cmdlet für die Instanz von SQL Server aus, die das primäre Replikat hosten soll.
Um ein Verfügbarkeitsreplikat zu erstellen, bevor Sie eine Verfügbarkeitsgruppe erstellen, geben Sie den AsTemplate Parameter an. Um einer vorhandenen Verfügbarkeitsgruppe ein Replikat hinzuzufügen, gibt der Parameter InputObject oder Path Parameter die Verfügbarkeitsgruppe an.
Beispiele
Beispiel 1: Erstellt eine Darstellung eines Verfügbarkeitsreplikats
PS C:\> $ServerObject = Get-Item "SQLSERVER:\Sql\PrimaryServer\InstanceName"
PS C:\> New-SqlAvailabilityReplica -Name "PrimaryServer\Instance" -EndpointUrl "TCP://PrimaryServerName.domain.com:5022" -FailoverMode Automatic -AvailabilityMode SynchronousCommit -AsTemplate -Version $ServerObject.Version
In diesem Beispiel wird eine Speicherdarstellung eines Verfügbarkeitsreplikats erstellt. Es werden keine Änderungen an dem Server übernommen. Sie können dieses Replikat als Wert für den parameter AvailabilityReplica von New-SqlAvailabilityGroup
Der erste Befehl ruft eine Instanz des primären Servers ab.
Der zweite Befehl erstellt das Verfügbarkeitsreplikat. Dieses Replikat verwendet den Datenbankspiegelungsendpunkt, der sich an der angegebenen URL befindet, um mit anderen Replikaten in der Verfügbarkeitsgruppe zu kommunizieren. Dieses Replikat unterstützt automatisches Failover und den Synchron-Commit-Verfügbarkeitsmodus. Der Parameter Version gibt die Version der Serverinstanz an, die dieses neue Replikat hosten soll.
Beispiel 2: Erstellt ein Verfügbarkeitsreplikat, das manuelles Failover und den asynchronen Vorgang unterstützt
PS C:\> $ServerObject = Get-Item "SQLSERVER:\Sql\PrimaryServer\InstanceName"
PS C:\> New-SqlAvailabilityReplica -Name "SecondaryServer\Instance" -EndpointUrl "TCP://PrimaryServerName.domain.com:5022" -FailoverMode Manual -AvailabilityMode AsynchronousCommit -AsTemplate -Version $ServerObject.Version
In diesem Beispiel wird eine Speicherdarstellung eines Verfügbarkeitsreplikats erstellt. Es werden keine Änderungen an dem Server übernommen.
Der erste Befehl ruft eine Instanz des primären Servers ab.
Der zweite Befehl erstellt das Verfügbarkeitsreplikat. Dieses Replikat verwendet den Datenbankspiegelungsendpunkt, der sich an der angegebenen URL befindet, um mit anderen Replikaten in der Verfügbarkeitsgruppe zu kommunizieren. Dieses Replikat unterstützt manuelles Failover und den Asynchronen Commit-Verfügbarkeitsmodus. Der Parameter Version gibt die Version der Serverinstanz an, die dieses neue Replikat hosten soll.
Beispiel 3: Hinzufügen eines Verfügbarkeitsreplikats zu einer Verfügbarkeitsgruppe
PS C:\> New-SqlAvailabilityReplica -Name "SecondaryServer\Instance" -EndpointUrl "TCP://PrimaryServerName.domain.com:5022" -FailoverMode Manual -AvailabilityMode AsynchronousCommit -ConnectionModeInSecondaryRole AllowAllConnections -Path "SQLSERVER:\Sql\PrimaryServer\InstanceName\AvailabilityGroups\MainAG"
Mit diesem Befehl wird einer vorhandenen Verfügbarkeitsgruppe mit dem Namen "MainAG" ein Verfügbarkeitsreplikat hinzugefügt. Dieses Replikat unterstützt den manuellen Failover- und asynchronen Commit-Verfügbarkeitsmodus. In der sekundären Rolle unterstützt dieses Replikat Lesezugriffsverbindungen. Mit dieser Konfiguration können Sie die schreibgeschützte Verarbeitung in dieses Replikat auslagern.
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 |
-AsTemplate
Gibt an, dass dieses Cmdlet ein temporäres AvailabilityReplica-Objekt im Arbeitsspeicher erstellt. Geben Sie diesen Parameter an, um eine Verfügbarkeitsgruppe zu erstellen, bevor Sie ein Verfügbarkeitsreplikat erstellen. Erstellen Sie eine Verfügbarkeitsgruppe mithilfe des Cmdlets New-SqlAvailabilityGroup. Geben Sie das temporäre Verfügbarkeitsreplikat als Wert des parameters AvailabilityReplica an.
Wenn Sie AsTemplate-angeben, ignoriert dieses Cmdlet Werte für die Parameter InputObject und Path Parameter.
Wenn Sie diesen Parameter angeben, müssen Sie auch eine SQL Server-Version für den Parameter Version angeben, oder Ihre aktuelle Sitzung muss über eine aktive Verbindung mit einer Instanz verfügen.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-AvailabilityMode
Gibt den Replikatverfügbarkeitsmodus an.
Sie können einen Wert von $Null.
angeben.
Typ: | AvailabilityReplicaAvailabilityMode |
Zulässige Werte: | AsynchronousCommit, SynchronousCommit, Unknown, ConfigurationOnly |
Position: | Named |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-BackupPriority
Gibt die gewünschte Priorität der Replikate beim Ausführen von Sicherungen an. Die zulässigen Werte für diesen Parameter sind ganze Zahlen zwischen 0 und 100. Der Satz von Replikaten, die online und verfügbar sind, führt das Replikat mit der höchsten Priorität die Sicherung aus.
Typ: | Int32 |
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 |
-ConnectionModeInPrimaryRole
Gibt an, wie das Verfügbarkeitsreplikat Verbindungen verarbeitet, wenn sie sich in der primären Rolle befindet.
Die zulässigen Werte für diesen Parameter sind:
- AllowReadWriteConnections. Ermöglicht Lese-/Schreibverbindungen
- AllowAllConnections. Lässt alle Verbindungen zu
Typ: | AvailabilityReplicaConnectionModeInPrimaryRole |
Zulässige Werte: | AllowAllConnections, AllowReadWriteConnections, Unknown |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-ConnectionModeInSecondaryRole
Gibt an, wie das Verfügbarkeitsreplikat Verbindungen verarbeitet, wenn sie sich in der sekundären Rolle befindet. Die zulässigen Werte für diesen Parameter sind:
- AllowNoConnections. Verbindungen nicht zulassen
- AllowReadIntentConnectionsOnly. Lässt nur Leseabsichtsverbindungen zu
- AllowAllConnections. Lässt alle Verbindungen zu
Typ: | AvailabilityReplicaConnectionModeInSecondaryRole |
Zulässige Werte: | AllowNoConnections, AllowReadIntentConnectionsOnly, AllowAllConnections, Unknown |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
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 |
-EndpointUrl
Gibt die URL des Datenbankspiegelungsendpunkts an. Diese URL ist eine TCP-Adresse in der folgenden Form:
TCP://system-address:port
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-FailoverMode
Gibt den Failovermodus an.
Sie können einen Wert von $Null
angeben.
Typ: | AvailabilityReplicaFailoverMode |
Zulässige Werte: | Automatic, Manual, External, Unknown |
Position: | Named |
Standardwert: | None |
Erforderlich: | True |
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, zu dem das Replikat gehört.
Typ: | AvailabilityGroup |
Position: | 2 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-LoadBalancedReadOnlyRoutingList
Gibt die schreibgeschützte Routingliste mit Lastenausgleich an.
Die Routingliste ist eine Liste mit Lastenausgleichssätzen, die wiederum Listen von Replikaten sind.
Beispiel: Übergeben eines Werts wie
@('Server1','Server2'),@('Server3'),@('Server4')
bedeutet, dass wir drei Lastenausgleichssätze übergeben: 1 mit 2 Replikaten (Server1 und Server2) und 2 mit nur einem (Server3 bzw. Server4).
Zur Laufzeit sucht SQL Server sequenziell nach allen Lastenausgleichssätzen, bis eine solche gefunden wird, die mindestens für das Replikat verfügbar ist und für den Lastenausgleich verwendet wird.
Wenn also im obigen Beispiel server1 und Server2 nicht verfügbar sind, aber Server3 ist, wählt SQL Server Server3 aus.
Dieses Cmdlet legt nur die schreibgeschützte Routingliste fest und überprüft nicht die Verfügbarkeit der angegebenen Replikate.
Typ: | String[][] |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Name
Gibt einen Namen für das Verfügbarkeitsreplikat im folgenden Format an: Computer\Instance
Typ: | String |
Position: | 1 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Path
Gibt den Pfad der Verfügbarkeitsgruppe an, zu der das Replikat gehört. Wenn Sie diesen Parameter nicht angeben, verwendet dieses Cmdlet den aktuellen Arbeitsort.
Typ: | String |
Position: | 2 |
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 |
-ReadonlyRoutingConnectionUrl
Gibt den vollqualifizierten Domänennamen (Fully Qualified Domain Name, FQDN) und den Port an, der beim Routing an das Replikat für schreibgeschützte Verbindungen verwendet werden soll, wie im folgenden Beispiel gezeigt: TCP://DBSERVER8.manufacturing.Contoso.com:7024
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-ReadOnlyRoutingList
Gibt eine sortierte Liste der Replikatservernamen an, die die Probesequenz für verbindungsdirektor darstellen, die beim Umleiten schreibgeschützter Verbindungen über dieses Verfügbarkeitsreplikat verwendet werden soll. Dieser Parameter gilt, wenn das Verfügbarkeitsreplikat das aktuelle primäre Replikat der Verfügbarkeitsgruppe ist.
Typ: | String[] |
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 |
-SeedingMode
Gibt an, wie das sekundäre Replikat anfangs seeded wird.
Zulässige Werte:
- Automatisch. Ermöglicht das direkte Seeding. Mit dieser Methode wird das sekundäre Replikat über das Netzwerk seedt. Diese Methode erfordert nicht, dass Sie eine Kopie der primären Datenbank im Replikat sichern und wiederherstellen.
- Manuell. Gibt manuelles Seeding an. Diese Methode erfordert, dass Sie eine Sicherung der Datenbank im primären Replikat erstellen und diese Sicherung für das sekundäre Replikat manuell wiederherstellen.
Typ: | AvailabilityReplicaSeedingMode |
Zulässige Werte: | Automatic, Manual |
Position: | Named |
Standardwert: | Manual |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-SessionTimeout
Gibt die Zeitspanne in Sekunden an, um auf eine Antwort zwischen dem primären Replikat und diesem Replikat zu warten, bevor die Verbindung fehlschlägt.
Typ: | Int32 |
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 |
-Version
Gibt eine SQL Server-Version an. Wenn Sie den AsTemplate--Parameter angeben, müssen Sie eine Version angeben. Das Vorlagenobjekt wird im Entwurfsmodus auf einem Server erstellt, der diese Version enthält. Sie können eine ganze Zahl oder eine Zeichenfolge angeben, wie in den folgenden Beispielen (SQL Server 2017):
- 14
- '14.0.0'
Typ: | ServerVersion |
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
Microsoft.SqlServer.Management.Smo.AvailabilityGroup
Sie können eine Verfügbarkeitsgruppe an dieses Cmdlet übergeben.
Ausgaben
Microsoft.SqlServer.Management.Smo.AvailabilityReplica
Dieses Cmdlet gibt ein Verfügbarkeitsreplikat zurück.