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>]
[-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>]
[-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>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Beschreibung
Das Cmdlet New-SqlAvailabilityReplica erstellt ein Verfügbarkeitsreplikat. Führen Sie dieses Cmdlet für die instance von SQL Server aus, die das primäre Replikat hostet.
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 entweder der Parameter InputObject oder Path 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 speicherinterne Darstellung eines Verfügbarkeitsreplikats erstellt. Es werden keine Änderungen an den Server übergeben. Sie können dieses Replikat als Wert für den AvailabilityReplica-Parameter von New-SqlAvailabilityGroup verwenden.
Der erste Befehl ruft eine instance des primären Servers ab.
Der zweite Befehl erstellt das Verfügbarkeitsreplikat. Dieses Replikat verwendet den Datenbankspiegelungsendpunkt unter der angegebenen URL, um mit anderen Replikaten in der Verfügbarkeitsgruppe zu kommunizieren. Das Replikat unterstützt ein automatisches Failover und den Verfügbarkeitsmodus für synchrone Commits. Der Parameter Version gibt die Version des Servers instance an, auf dem dieses neue Replikat gehostet wird.
Beispiel 2: Erstellt ein Verfügbarkeitsreplikat, das manuelles Failover und das asynchrone Failover 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 speicherinterne Darstellung eines Verfügbarkeitsreplikats erstellt. Es werden keine Änderungen an den Server übergeben.
Der erste Befehl ruft eine instance des primären Servers ab.
Der zweite Befehl erstellt das Verfügbarkeitsreplikat. Dieses Replikat verwendet den Datenbankspiegelungsendpunkt unter der angegebenen URL, um mit anderen Replikaten in der Verfügbarkeitsgruppe zu kommunizieren. Das Replikat unterstützt ein manuelles Failover und den Verfügbarkeitsmodus für asynchrone Commits. Der Parameter Version gibt die Version des Servers instance an, auf dem dieses neue Replikat gehostet wird.
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"
Dieser Befehl fügt einer vorhandenen Verfügbarkeitsgruppe mit dem Namen "MainAG" ein Verfügbarkeitsreplikat hinzu. Das Replikat unterstützt ein manuelles Failover und den Verfügbarkeitsmodus für asynchrone Commits. In der sekundären Rolle unterstützt dieses Replikat Lesezugriffsverbindungen. Mit dieser Konfiguration können Sie die schreibgeschützte Verarbeitung auf 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. verwendet werden, um eine Verbindung mit SQL Azure DB
und SQL Azure Managed Instance
mithilfe von oder Service Principal
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
von zurückgegeben wird.
Dieser Parameter ist in v22 des Moduls neu.
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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 mit dem Cmdlet 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 .
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 einem instance verfügen.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-AvailabilityMode
Gibt den Replikatverfügbarkeitsmodus an.
Sie können den Wert für $Null.
Type: | AvailabilityReplicaAvailabilityMode |
Accepted values: | AsynchronousCommit, SynchronousCommit, Unknown, ConfigurationOnly |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | 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 von 0 bis 100. Von den Replikaten, die online und verfügbar sind, führt das Replikat mit der höchsten Priorität die Sicherung aus.
Type: | Int32 |
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 |
-ConnectionModeInPrimaryRole
Gibt an, wie das Verfügbarkeitsreplikat Verbindungen verarbeitet, wenn es sich in der primären Rolle befindet.
Zulässige Werte für diesen Parameter:
- AllowReadWriteConnections. Ermöglicht Lese-/Schreibverbindungen
- AllowAllConnections. Lässt alle Verbindungen zu
Type: | AvailabilityReplicaConnectionModeInPrimaryRole |
Accepted values: | AllowAllConnections, AllowReadWriteConnections, Unknown |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ConnectionModeInSecondaryRole
Gibt an, wie das Verfügbarkeitsreplikat Verbindungen in der sekundären Rolle behandelt. Zulässige Werte für diesen Parameter:
- AllowNoConnections. Verbindungen werden nicht zugelassen.
- AllowReadIntentConnectionsOnly. Lässt nur Verbindungen mit Leseabsicht zu
- AllowAllConnections. Lässt alle Verbindungen zu
Type: | AvailabilityReplicaConnectionModeInSecondaryRole |
Accepted values: | AllowNoConnections, AllowReadIntentConnectionsOnly, AllowAllConnections, Unknown |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
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 Version 23 und höher des Moduls lautet der Standardwert "Obligatorisch", was zu einer Breaking Change für vorhandene Skripts führen kann.
Dieser Parameter ist in v22 des Moduls neu.
Type: | String |
Accepted values: | Mandatory, Optional, Strict |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-EndpointUrl
Gibt die URL des Datenbankspiegelungsendpunkts an. Diese URL ist eine TCP-Adresse in der folgenden Form:
TCP://system-address:port
Type: | String |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FailoverMode
Gibt den Failovermodus an.
Sie können den Wert für $Null
Type: | AvailabilityReplicaFailoverMode |
Accepted values: | Automatic, Manual, External, Unknown |
Position: | Named |
Default value: | None |
Required: | True |
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 einem instance mithilfe des Hostnamens/Kurznamens herstellen möchten. Wenn dieser Parameter ausgelassen wird, ist die Übergabe 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 in v22 des Moduls neu.
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, zu der das Replikat gehört.
Type: | AvailabilityGroup |
Position: | 2 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-LoadBalancedReadOnlyRoutingList
Gibt die schreibgeschützte Routingliste mit Lastenausgleich an.
Die Routingliste ist eine Liste von Sätzen mit Lastenausgleich, bei denen es sich wiederum um Listen von Replikaten handelt.
Beispiel: Übergeben eines Werts wie
@('Server1','Server2'),@('Server3'),@('Server4')
bedeutet, dass wir 3 Lastenausgleichsgruppen übergeben: 1 mit 2 Replikaten (Server1 und Server2) und 2 mit nur einem Satz (Server3 bzw. Server4).
Zur Laufzeit sucht SQL Server sequenziell nach allen Sätzen mit Lastenausgleich, bis eine solche gefunden wird, dass mindestens auf einem Replikat darin verfügbar ist, und verwenden sie für den Lastenausgleich.
Wenn also im obigen Beispiel server1 und Server2 nicht verfügbar sind, 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.
Type: | String[][] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Name
Gibt einen Namen für das Verfügbarkeitsreplikat im folgenden Format an: Computer\Instanz
Type: | String |
Position: | 1 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | 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 Arbeitsstandort.
Type: | String |
Position: | 2 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ReadonlyRoutingConnectionUrl
Gibt den vollqualifizierten Domänennamen (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
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ReadOnlyRoutingList
Gibt eine geordnete Liste von Replikatservernamen an, die die Testsequenz darstellen, die verbindungsdirektor beim Umleiten schreibgeschützter Verbindungen über dieses Verfügbarkeitsreplikat verwenden soll. Dieser Parameter gilt, wenn das Verfügbarkeitsreplikat das aktuelle primäre Replikat der Verfügbarkeitsgruppe ist.
Type: | String[] |
Position: | Named |
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 |
-SeedingMode
Gibt an, wie für das sekundäre Replikat zuerst ein Seeding durchgeführt wird.
Zulässige Werte:
- Automatisch. Ermöglicht direktes Seeding. Diese Methode führt für das sekundäre Replikat ein Seeding über das Netzwerk aus. Mit dieser Methode ist es nicht mehr erforderlich, eine Kopie der primären Datenbank zu sichern und auf dem Replikat wiederherzustellen.
- Manuelle Aktion. Gibt das manuelle Seeding an. Bei dieser Methode müssen Sie eine Sicherungskopie der Datenbank auf dem primären Replikat erstellen und diese manuell auf dem sekundären Replikat wiederherstellen.
Type: | AvailabilityReplicaSeedingMode |
Accepted values: | Automatic, Manual |
Position: | Named |
Default value: | Manual |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SessionTimeout
Gibt an, wie lange (in Sekunden) auf eine Antwort zwischen dem primären Replikat und diesem Replikat gewartet werden muss, bevor die Verbindung fehlschlägt.
Type: | Int32 |
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 |
-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'
Type: | ServerVersion |
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
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.