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.netvon 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.