SQL Server-Multisubnetzclustering (SQL Server)SQL Server Multi-Subnet Clustering (SQL Server)

Ein SQL ServerSQL Server-Multisubnetz-Failovercluster ist eine Konfiguration, in der jeder Failoverclusterknoten mit einem anderen Subnetz oder einer anderen Gruppe von Subnetzen verbunden ist.A SQL ServerSQL Server multi-subnet failover cluster is a configuration where each failover cluster node is connected to a different subnet or different set of subnets. Diese Subnetze können am gleichen Standort oder an geografisch verteilten Standorten sein.These subnets can be in the same location or in geographically dispersed sites. Das Clustering von weit verstreuten Standorten wird mitunter auch als Stretchcluster bezeichnet.Clustering across geographically dispersed sites is sometimes referred to as stretch clusters. Da kein freigegebener Speicher vorhanden ist, auf den alle Knoten zugreifen können, sollten die Daten zwischen den Datenspeichern in den verschiedenen Subnetzen repliziert werden.As there is no shared storage that all the nodes can access, data should be replicated between the data storage on the multiple subnets. Infolge der Datenreplikation ist mehr als eine Kopie der Daten verfügbar.With data replication, there is more than one copy of the data available. Multisubnetz-Failovercluster bieten somit neben hoher Verfügbarkeit auch eine Lösung zur Wiederherstellung im Notfall.Therefore, a multi-subnet failover cluster provides a disaster recovery solution in addition to high availability.

SQL Server-Multisubnetz-Failovercluster (zwei Knoten, zwei Subnetze) SQL Server Multi-Subnet Failover Cluster (Two-Nodes, Two-Subnets)

In der folgenden Abbildung wird eine Failoverclusterinstanz (FCI) in SQL Server 2016SQL Server 2016mit zwei Knoten dargestellt.The following illustration represents a two node, two subnet failover cluster instance (FCI) in SQL Server 2016SQL Server 2016.

Multisubnetzarchitektur mit MultiSubnetFailoverMulti-Subnet Architecture with MultiSubnetFailover

Konfigurationen einer Multisubnetz-Failoverclusterinstanz Multi-Subnet Failover Cluster Instance Configurations

Im Folgenden finden Sie einige Beispiele für SQL ServerSQL Server -FCIs mit mehreren Subnetzen:The following are some examples of SQL ServerSQL Server FCIs that use multiple subnets:

  • SQL ServerSQL Server -FCI SQLCLUST1 enthält Node1 und Node2. FCI SQLCLUST1 includes Node1 and Node2. Node1 ist mit Subnet1 verbunden.Node1 is connected to Subnet1. Node2 ist mit Subnet2 verbunden.Node2 is connected to Subnet2. SQL ServerSQL Server -Setup betrachtet diese Konfiguration als Multisubnetzcluster und legt die IP-Adressressourcenabhängigkeit auf ORfest. Setup sees this configuration as a multi-subnet cluster and sets the IP address resource dependency to OR.

  • SQL ServerSQL Server -FCI SQLCLUST1 enthält Node1, Node2 und Node3. FCI SQLCLUST1 includes Node1, Node2, and Node3. Node1 und Node2 sind mit Subnet1 verbunden.Node1 and Node2 are connected to Subnet1. Node3 ist mit Subnet2 verbunden.Node 3 is connected to Subnet2. SQL ServerSQL Server -Setup betrachtet diese Konfiguration als Multisubnetzcluster und legt die IP-Adressressourcenabhängigkeit auf ORfest. Setup sees this configuration as a multi-subnet cluster and sets the IP address resource dependency to OR. Da sich Node1 und Node2 im gleichen Subnetz befinden, bietet diese Konfiguration zusätzlich eine hohe lokale Verfügbarkeit.Because Node1 and Node2 are on the same subnet, this configuration provides additional local high availability.

  • SQL ServerSQL Server -FCI SQLCLUST1 enthält Node1 und Node2. FCI SQLCLUST1 includes Node1 and Node2. Node1 befindet sich in Subnet1.Node1 is on Subnet1. Node2 befindet sich in Subnet1 und Subnet2.Node2 is on Subnet1 and Subnet2. SQL ServerSQL Server -Setup betrachtet diese Konfiguration als Multisubnetzcluster und legt die IP-Adressressourcenabhängigkeit auf ORfest. Setup sees this configuration as a multi-subnet cluster and sets the IP address resource dependency to OR.

  • SQL ServerSQL Server -FCI SQLCLUST1 enthält Node1 und Node2. FCI SQLCLUST1 includes Node1 and Node2. Node1 ist mit Subnet1 und Subnet2 verbunden.Node1 is connected to Subnet1 and Subnet2. Node2 ist auch mit Subnet1 und Subnet2 verbunden.Node2 is also connected to Subnet1 and Subnet2. Die IP-Adressabhängigkeit wird vom Setup von auf AND SQL ServerSQL Server festgelegt.The IP address resource dependency is set to AND by SQL ServerSQL Server Setup.

    HINWEIS: Diese Konfiguration wird nicht als Multisubnetz-Failovercluster-Konfiguration betrachtet, da sich die gruppierten Knoten in der gleichen Subnetzgruppe befinden.NOTE: This configuration is not considered as a multi-subnet failover cluster configuration because the clustered nodes are on the same set of subnets.

Überlegungen zu IP-Adressressourcen IP Address Resource Considerations

Die IP-Adressen in einer Multisubnetz-Failoverclusterkonfiguration sind nicht im Besitz aller Knoten im Failovercluster und beim Start von SQL ServerSQL Server möglicherweise nicht alle online.In a multi-subnet failover cluster configuration, the IP addresses are not owned by all the nodes in the failover cluster, and may not be all online during SQL ServerSQL Server startup. Ab SQL Server 2012SQL Server 2012können Sie die IP-Adressabhängigkeit auf ORfestlegen.Beginning in SQL Server 2012SQL Server 2012, you can set the IP address resource dependency to OR. Dadurch kann SQL ServerSQL Server online sein, wenn mindestens eine gültige IP-Adresse vorhanden ist, mit der eine Bindung hergestellt werden kann.This enables SQL ServerSQL Server to be online when there is at least one valid IP address that it can bind to.

HINWEIS: In den SQL ServerSQL Server -Versionen vor SQL Server 2012SQL Server 2012wurde eine Stretch-V-LAN-Technologie in Clusterkonfigurationen mit mehreren Standorten verwendet, um eine einzelne IP-Adresse für standortübergreifende Failover verfügbar zu machen.NOTE: In the SQL ServerSQL Server versions earlier than SQL Server 2012SQL Server 2012, a stretch V-LAN technology was used in multi-site cluster configurations to expose a single IP address for failover across sites. Durch die neue Möglichkeit zur Gruppierung von Knoten in unterschiedlichen Subnetzen in SQL ServerSQL Server können Sie jetzt SQL ServerSQL Server -Failovercluster an mehreren Standorten ohne Stretch-V-LAN-Technologie konfigurieren.With the new capability of SQL ServerSQL Server to cluster nodes across different subnets, you can now configure SQL ServerSQL Server failover clusters across multiple sites without implementing the stretch V-LAN technology.

Überlegungen zur IP-Adressabhängigkeit ORIP Address Resource OR Dependency Considerations

Wenn Sie die IP-Adressabhängigkeit auf ORfestlegen, können Sie das folgende Failoververhalten in Betracht ziehen:You may want to consider the following failover behavior if you set the IP address resource dependency is set to OR:

  • Bei einem Fehler in einer IP-Adresse im Knoten, in dessen Besitz sich die SQL ServerSQL Server -Clusterressourcengruppe derzeit befindet, wird nicht automatisch ein Failover ausgelöst, solange nicht alle gültigen IP-Adressen in diesem Knoten ausgefallen sind.When there is a failure of one of the IP addresses on the node that currently owns the SQL ServerSQL Server cluster resource group, a failover is not triggered automatically until all the IP addresses valid on that node fail.

  • Wenn ein Failover auftritt, wird SQL ServerSQL Server online geschaltet, wenn eine Bindung zu mindestens einer gültigen IP-Adresse im aktuellen Knoten hergestellt werden kann.When a failover occurs, SQL ServerSQL Server will come online if it can bind to at least one IP address that is valid on the current node. Die IP-Adressen, für die beim Start von SQL ServerSQL Server keine Bindung hergestellt werden konnte, werden im Fehlerprotokoll aufgeführt.The IP addresses that did not bind to SQL ServerSQL Server at startup will be listed in the error log.

Wenn eine SQL ServerSQL Server -FCI und eine eigenständige SQL Server-DatenbankmodulSQL Server Database Engine-Instanz parallel installiert sind, achten Sie darauf, dass Konflikte mit TCP-Portnummern für die IP-Adressen vermieden werden.When a SQL ServerSQL Server FCI is installed side-by-side with a standalone instance of the SQL Server-DatenbankmodulSQL Server Database Engine, take care to avoid TCP port number conflicts on the IP addresses. Konflikte treten in der Regel auf, wenn in zwei DatenbankmodulDatabase Engine -Instanzen die Verwendung des TCP-Standartports (1433) konfiguriert wurde.Conflicts usually occur when two instances of the DatenbankmodulDatabase Engine are both configured to use the default TCP port (1433). Um Konflikte zu vermeiden, konfigurieren Sie in einer Instanz die Verwendung eines nicht standardmäßigen festen Ports.To avoid conflicts, configure one instance to use a non-default fixed port. Die Konfiguration eines festen Ports kann in der Regel in der eigenständigen Instanz am einfachsten vorgenommen werden.Configuring a fixed port is usually easiest on the standalone instance. Wenn DatenbankmodulDatabase Engine für die Verwendung anderer Ports konfiguriert wird, wird verhindert, dass ein unerwarteter IP-Adressen-/TCP-Port-Konflikt auftritt, der den Start einer Instanz blockiert, wenn eine SQL ServerSQL Server -FCI ein Failover zu dem Standbyknoten ausführt.Configuring the DatenbankmodulDatabase Engine to use different ports will prevent an unexpected IP Address/TCP port conflict that blocks an instance startup when a SQL ServerSQL Server FCI fails to the standby node.

Clientwiederherstellungs-Latenzzeit während der Failover Client Recovery Latency During Failover

Die RegisterAllProvidersIP-Clusterressource wird von einer Multisubnetz-FCI für den Netzwerknamen standardmäßig aktiviert.A multi-subnet FCI by default enables the RegisterAllProvidersIP cluster resource for its network name. In einer Multisubnetzkonfiguration werden die Online- und Offline-IP-Adressen des Netzwerknamens beim DNS-Server registriert.In a multi-subnet configuration, both the online and offline IP addresses of the network name will be registered at the DNS server. Die Clientanwendung ruft dann alle registrierten IP-Adressen vom DNS-Server ab und versucht, entweder geordnet oder parallel eine Verbindung mit den Adressen herzustellen.The client application then retrieves all registered IP addresses from the DNS server and attempts to connect to the addresses either in order or in parallel. Demnach hängt die Clientwiederherstellungszeit in Multisubnetz-Failovern nicht länger von DNS-Aktualisierungs-Wartezeiten ab.This means that client recovery time in multi-subnet failovers no longer depend on DNS update latencies. Standardmäßig versucht der Client die IP-Adressen geordnet abzurufen.By default, the client tries the IP addresses in order. Wenn der Client den neuen optionalen MultiSubnetFailover=True -Parameter in seiner Verbindungszeichenfolge verwendet, versucht er stattdessen gleichzeitig die IP-Adressen abzurufen und stellt eine Verbindung mit dem ersten antwortenden Server her.When the client uses the new optional MultiSubnetFailover=True parameter in its connection string, it will instead try the IP addresses simultaneously and connects to the first server that responds. Dadurch kann die Clientwiederherstellungs-Latenzzeit minimiert werden, wenn Failover auftreten.This can help minimize the client recovery latency when failovers occur. Weitere Informationen finden Sie unter Always On-Clientkonnektivität (SQL Server) und Erstellen oder Konfigurieren eines Verfügbarkeitsgruppenlisteners (SQL Server).For more information, see Always On Client Connectivity (SQL Server) and Create or Configure an Availability Group Listener (SQL Server).

Bei Legacyclientbibliotheken oder Drittanbieterdatenanbietern können Sie den MultiSubnetFailover -Parameter in der Verbindungszeichenfolge nicht verwenden.With legacy client libraries or third party data providers, you cannot use the MultiSubnetFailover parameter in your connection string. Versuchen Sie, den Verbindungstimeout in der Clientverbindungszeichenfolge um 21 Sekunden für jede zusätzliche IP-Adresse anzupassen, damit sichergestellt wird, dass Ihre Clientanwendung optimal mit dem Multisubnetz-FCI in SQL Server 2016SQL Server 2016interagiert.To help ensure that your client application works optimally with multi-subnet FCI in SQL Server 2016SQL Server 2016, try to adjust the connection timeout in the client connection string by 21 seconds for each additional IP address. Dadurch wird sichergestellt, dass der Wiederverbindungsversuch des Clients nicht zu einem Timeout führt, bevor es in der Lage ist, alle IP-Adressen in der Multisubnetz-FCI durchzugehen.This ensures that the client’s reconnection attempt does not timeout before it is able to cycle through all IP addresses in your multi-subnet FCI.

Der standardmäßige Timeoutzeitraum für Clientverbindungen von SQL ServerSQL Server Management Studio und sqlcmd ist 15 Sekunden.The default client connection time-out period for SQL ServerSQL Server Management Studio and sqlcmd is 15 seconds.

InhaltsbeschreibungContent Description ThemaTopic
Installieren eines SQL Server-FailoverclustersInstalling a SQL Server Failover Cluster Erstellen eines neuen SQL Server-Failoverclusters (Setup)Create a New SQL Server Failover Cluster (Setup)
Direktes Upgrade des vorhandenen SQL Server-FailoverclustersIn-place upgrade of your existing SQL Server Failover Cluster Aktualisieren einer SQL Server-Failoverclusterinstanz (Setup)Upgrade a SQL Server Failover Cluster Instance (Setup)
Beibehalten des vorhandenen SQL Server-FailoverclustersMaintaining your existing SQL Server Failover Cluster Hinzufügen oder Entfernen von Knoten in einem SQL Server-Failovercluster (Setup)Add or Remove Nodes in a SQL Server Failover Cluster (Setup)
Verwenden des Failovercluster-Verwaltungs-Snap-ins zum Anzeigen von WSFC-Ereignissen und -ProtokollenUse the Failover Cluster Management snap-in to view WSFC events and logs Anzeigen von Ereignissen und Protokollen für einen FailoverclusterView Events and Logs for a Failover Cluster
Verwenden von Windows PowerShell zum Erstellen einer Protokolldatei für alle Knoten (oder einen bestimmten Knoten) in einem WSFC-FailoverclusterUse Windows PowerShell to create a log file for all nodes (or a specific a node) in a WSFC failover cluster Get-ClusterLog-Failovercluster-CmdletGet-ClusterLog Failover Cluster Cmdlet