Listener, Clientkonnektivität, AnwendungsfailoverListeners, Client Connectivity, Application Failover

Dieses Thema gilt für: JaSQL ServerkeineAzure SQL-DatenbankkeineAzure SQL Data Warehouse keine Parallel DatawarehouseTHIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse Dieses Thema enthält Informationen zu Überlegungen hinsichtlich AlwaysOn-VerfügbarkeitsgruppenAlways On availability groups-Clientkonnektivität und Anwendungsfailoverfunktionalität. This topic contains information about considerations for AlwaysOn-VerfügbarkeitsgruppenAlways On availability groups client connectivity and application-failover functionality.

Hinweis

Für den Großteil der allgemeinen Listenerkonfigurationen können Sie einfach den ersten Verfügbarkeitsgruppenlistener mit Transact-SQLTransact-SQL -Anweisungen oder PowerShell-Cmdlets erstellen.For the majority of the common listener configurations, you can create the first availability group listener simply by using Transact-SQLTransact-SQL statements or PowerShell cmdlets. Weitere Informationen finden Sie weiter unten in diesem Thema unter Verwandte Aufgaben.For more information, see Related Tasks, later in this topic.

In diesem Thema:In This Topic:

VerfügbarkeitsgruppenlistenerAvailability Group Listeners

Sie können Clientkonnektivität für die Datenbank einer angegebenen Verfügbarkeitsgruppe bereitstellen, indem Sie einen Verfügbarkeitsgruppenlistener erstellen.You can provide client connectivity to the database of a given availability group by creating an availability group listener. Ein Verfügbarkeitsgruppenlistener ist der Name eines virtuellen Netzwerks (Virtual Network Name, VNN), mit dem Clients eine Verbindung herstellen können, um auf eine Datenbank in einem primären oder sekundären Replikat einer AlwaysOn-Verfügbarkeitsgruppe zuzugreifen.An availability group listener is a virtual network name (VNN) to which clients can connect in order to access a database in a primary or secondary replica of an Always On availability group. Ein Verfügbarkeitsgruppenlistener ermöglicht es einem Client, eine Verbindung mit einem Verfügbarkeitsreplikat herzustellen, ohne dass der Name der physischen Instanz von SQL Server, mit der der Client eine Verbindung herstellt, bekannt ist.An availability group listener enables a client to connect to an availability replica without knowing the name of the physical instance of SQL Server to which the client is connecting. Die Clientverbindungszeichenfolge muss nicht geändert werden, damit eine Verbindung mit dem aktuellen Ort des aktuellen primären Replikats hergestellt werden kann.The client connection string does not need to be modified to connect to the current location of the current primary replica.

Ein Verfügbarkeitsgruppenlistener besteht aus einem DNS (Domain Name System)-Listenernamen, einer Listenerportbezeichnung und mindestens einer IP-Adresse.An availability group listener consists of a Domain Name System (DNS) listener name, listener port designation, and one or more IP addresses. Nur das TCP-Protokoll wird von Verfügbarkeitsgruppenlistenern unterstützt.Only the TCP protocol is supported by availability group listener. Der DNS-Name des Listeners muss auch in der Domäne und NetBIOS eindeutig sein.The DNS name of the listener must also be unique in the domain and in NetBIOS. Wenn Sie einen neuen Verfügbarkeitsgruppenlistener erstellen, wird er zu einer Ressource in einem Cluster mit einem zugeordneten virtuellen Netzwerknamen (VNN), einer virtuellen IP (VIP) und Verfügbarkeitsgruppenabhängigkeit.When you create a new availability group listener it becomes a resource in a cluster with an associated virtual network name (VNN), virtual IP (VIP), and availability group dependency. Ein Client verwendet DNS, um den VNN in mehrere IP-Adressen aufzulösen, und versucht dann, eine Verbindung mit jeder einzelnen Adresse herzustellen, bis eine Verbindungsanforderung erfolgreich ist oder ein Timeout eintritt.A client uses DNS to resolve the VNN into multiple IP addresses and then tries to connect to each address, until a connection request succeeds or until the connection requests time out.

Wenn für mindestens ein lesbares sekundäres Replikat das schreibgeschützte Routing konfiguriert ist, werden Clientverbindungen für beabsichtigte Lesevorgänge auf dem primären Replikat an ein lesbares sekundäres Replikat umgeleitet.If read-only routing is configured for one or more readable secondary replicas, read-intent client connections to the primary replica are redirected to a readable secondary replica. Auch wenn das primäre Replikat auf einer Instanz von SQL Server offline geschaltet wird und auf einer anderen Instanz von SQL Server ein neues primäres Replikat online geschaltet wird, ermöglicht der Verfügbarkeitsgruppenlistener Clients Verbindungen mit dem neuen primären Replikat.Also, if the primary replica goes offline on one instance of SQL Server, and a new primary replica comes online on another instance of SQL Server, the availability group listener enables clients to connect to the new primary replica.

Wichtige Informationen zu Verfügbarkeitsgruppenlistenern finden Sie unter Erstellen oder Konfigurieren eines Verfügbarkeitsgruppenlisteners (SQL Server).For essential information about availability group listeners, see Create or Configure an Availability Group Listener (SQL Server).

In diesem Abschnitt:In This Section:

Konfiguration des VerfügbarkeitsgruppenlistenersAvailability Group Listener Configuration

Ein Verfügbarkeitsgruppenlistener wird definiert, indem Folgendes angegeben wird:An availability group listener is defined by the following:

Eindeutiger DNS-NameA unique DNS name
Dieser wird auch als virtueller Netzwerkname (Virtual Network Name, VNN) bezeichnet.This is also known as a Virtual Network Name (VNN). Es gelten die Active Directory-Benennungsregeln für DNS-Hostnamen.Active Directory naming rules for DNS host names apply. Weitere Informationen finden Sie im KB-Artikel Namenskonventionen in Active Directory für Computer, Domänen, Standorte und Organisationseinheiten .For more information, see the Naming conventions in Active Directory for computers, domains, sites, and OUs KB article.

Mindestens eine virtuelle IP-Adresse (Virtual IP address, VIP)One or more Virtual IP addresses (VIPs)
VIPs werden für mindestens ein Subnetz konfiguriert, in dem ein Failover der Verfügbarkeitsgruppe erfolgen kann.VIPs are configured for one or more subnets to which the availability group can failover.

IP-AdresskonfigurationIP address configuration
Für einen gegebenen Listener der Verfügbarkeitsgruppe verwendet die IP-Adresse entweder das Dynamic Host Configuration Protocol (DHCP) oder mindestens eine statische IP-Adresse.For a given availability group listener, the IP address uses either Dynamic Host Configuration Protocol (DHCP) or one or more static IP addresses.

  • Dynamic Host Configuration Protocol (DHCP)Dynamic Host Configuration Protocol (DHCP)

    Wenn sich eine Verfügbarkeitsgruppe in einem einzelnen Subnetz befindet, können Sie alle IP-Adressen der Verfügbarkeitsgruppenlistener konfigurieren, um das DHCP zu verwenden.If an availability group resides on a single subnet, you can configure all the availability group listener IP addresses to use DHCP. Für Vorproduktionsumgebungen bietet DHCP ein einfaches Setup für eine Verfügbarkeitsgruppe, für die keine Notfallwiederherstellung an einem Remotestandort in einem separaten Subnetz erforderlich ist.For pre-production environments, DHCP offers an easy setup for an availability group that does not require disaster recovery to a remote site on a separate subnet. Dennoch sollte DHCP nicht in Verbindung mit einem Verfügbarkeitsgruppenlistener in einer Produktionsumgebung verwendet werden.However, you should not use DHCP in conjunction with an availability group listener in a production environment. Wenn es zu einer Ausfallzeit kommt und das DHCP-IP-Leasing abläuft, ist für die erneute Registrierung der dem DNS-Listenernamen zugeordneten neuen DHCP-IP-Adresse zusätzlich Zeit erforderlich.This is because, in the event of down time, if the DHCP IP lease expires, extra time is required to re-register the new DHCP IP address associated with the listener DNS name. Dies führt zu einem Ausfall der Clientverbindung.The extra time will cause client-connection failure.

  • Statische IP-AdressenStatic IP addresses

    In Produktionsumgebungen wird empfohlen, dass Verfügbarkeitsgruppenlistener statische IP-Adressen verwenden.In production environments, we recommend that availability group listeners use static IP addresses. Wenn sich die Verfügbarkeitsgruppen jedoch in Subnetzen einer Domäne mit mehreren Subnetzen befinden, muss ein Verfügbarkeitsgruppenlistener statische IP-Adressen verwenden.Furthermore, where availability groups extend across subnets in a multi-subnet domain, an availability group listener must use static IP addresses.

    Hybride Netzwerkkonfigurationen und DHCP in mehreren Subnetzen werden nicht für Verfügbarkeitsgruppenlistener unterstützt.Hybrid network configurations and DHCP across subnets are not supported for availability group listeners. Das liegt daran, dass im Fall eines Failovers eine dynamische IP abgelaufen sein könnte oder freigegeben wird, wodurch die hohe Verfügbarkeit insgesamt gefährdet wird.This is because when a failover happens, a dynamic IP might expire or be released, which jeopardizes overall high availability.

Auswählen eines Ports für VerfügbarkeitsgruppenlistenerSelecting an Availability Group Listener Port

Wenn Sie einen Verfügbarkeitsgruppenlistener konfigurieren, müssen Sie einen Port festlegen.When configuring an availability group listener, you must designate a port. Sie können den Standardport auf 1433 konfigurieren, um Clientverbindungszeichenfolgen einfach zu gestalten.You can configure the default port to 1433 in order to allow for simplicity of the client connection strings. Wenn Sie 1433 verwenden, müssen Sie keine Portnummer in einer Verbindungszeichenfolge festlegen.If using 1433, you do not need to designate a port number in a connection string. Da jeder Verfügbarkeitsgruppenlistener einen separaten virtuellen Netzwerknamen besitzt, kann außerdem jeder für einen WSFC-Cluster konfigurierte Verfügbarkeitsgruppenlistener für den Verweis auf Port 1433 konfiguriert werden.Also, since each availability group listener will have a separate virtual network name, each availability group listener configured on a single WSFC can be configured to reference the same default port of 1433.

Sie können auch einen nicht standardmäßigen Listenerport festlegen. Dies bedeutet jedoch, dass Sie auch in der Verbindungszeichenfolge immer dann explizit einen Zielport angeben müssen, wenn Sie eine Verbindung mit dem Verfügbarkeitsgruppenlistener herstellen.You can also designate a non-standard listener port; however this means that you will also need to explicitly specify a target port in your connection string whenever connecting to the availability group listener. Darüber hinaus müssen Sie die Berechtigung für die Firewall für den nicht standardmäßigen Port öffnen.You will also need to open permission on the firewall for the non-standard port.

Wenn Sie den Standardport 1433 für die virtuellen Netzwerknamen der Verfügbarkeitsgruppenlistener verwenden, müssen Sie dennoch sicherstellen, dass keine anderen Dienste im Clusterknoten diesen Port verwenden. Andernfalls tritt ein Portkonflikt auf.If you use the default port of 1433 for availability group listener VNNs, you will still need to ensure that no other services on the cluster node are using this port; otherwise this would cause a port conflict.

Wenn eine der Instanzen von SQL Server bereits über den Instanzlistener TCP-Port 1433 überwacht und keine anderen Dienste (einschließlich weitere Instanzen von SQL Server) auf dem Computer Port 1433 überwachen, wird kein Portkonflikt mit dem Verfügbarkeitsgruppenlistener verursacht.If one of the instances of SQL Server is already listening on TCP port 1433 via the instance listener and there are no other services (including additional instances of SQL Server) on the computer listening on port 1433, this will not cause a port conflict with the availability group listener. Das liegt daran, dass der Verfügbarkeitsgruppenlistener den selben TCP-Port im gleichen Dienstprozess freigeben kann.This is because the availability group listener can share the same TCP port inside the same service process. Mehrere Instanzen von SQL Server (parallel) sollten jedoch nicht für die Überwachung desselben Ports konfiguriert werden.However multiple instances of SQL Server (side-by-side)should not be configured to listen on the same port.

Verwenden eines Listeners zum Herstellen einer Verbindung mit dem primären ReplikatUsing a Listener to Connect to the Primary Replica

Um mithilfe eines Verfügbarkeitsgruppenlisteners eine Verbindung mit dem primären Replikat für Lese-/Schreibzugriff herzustellen, gibt die Verbindungszeichenfolge den DNS-Namen des Verfügbarkeitsgruppenlisteners an.To use an availability group listener to connect to the primary replica for read-write access, the connection string specifies the availability group listener DNS name. Wenn ein Verfügbarkeitsgruppenreplikat zu einem neuen Replikat wird, werden vorhandene Verbindungen, für die der Netzwerkname eines Verfügbarkeitslisteners verwendet wird, unterbrochen.If an availability group primary replica changes to a new replica, existing connections that use an availability group listener's network name are disconnected. Neue Verbindungen zum Verfügbarkeitsgruppenlistener werden dann an das neue primäre Replikat weitergeleitet.New connections to the availability group listener are then directed to the new primary replica. Beispiel für eine einfache Verbindungszeichenfolge für den ADO.NET-Anbieter (System.Data.SqlClient):An example of a basic connection string for the ADO.NET provider (System.Data.SqlClient) is as follows:

Server=tcp: AGListener,1433;Database=MyDB;IntegratedSecurity=SSPI  

Sie können dennoch direkt auf die Instanz des SQL Server-Namens der primären oder sekundären Replikate verweisen, anstatt den Servernamen des Verfügbarkeitsgruppenlisteners zu verwenden. In diesem Fall werden neue Verbindungen jedoch nicht automatisch zum aktuellen primären Replikat weitergeleitet.You can still choose to directly reference the instance of SQL Server name of the primary or secondary replicas instead of using the availability group listener server name, however if you choose to do so you will lose the benefit of new connections being directed automatically to the current primary replica. Schreibgeschütztes Routing geht ebenfalls verloren.You will also lose the benefit of read-only routing.

Verwenden eines Listeners zum Herstellen einer Verbindung mit einem schreibgeschützten sekundären Replikat (schreibgeschütztes Routing)Using a Listener to Connect to a Read-Only Secondary Replica (Read-Only Routing)

Schreibgeschütztes Routing bezieht sich auf die Möglichkeit von SQL ServerSQL Server , eingehende Verbindungen für einen Verfügbarkeitsgruppenlistener an ein sekundäres Replikat weiterzuleiten, das für schreibgeschützte Arbeitslasten konfiguriert ist.Read-only routing refers to the ability of SQL ServerSQL Server to route incoming connections to an availability group listener to a secondary replica that is configured to allow read-only workloads. Eine eingehende Verbindung, die auf den Namen eines Verfügbarkeitsgruppenlisteners verweist, kann automatisch an ein schreibgeschütztes Replikat weitergeleitet werden, wenn Folgendes zutrifft:An incoming connection referencing an availability group listener name can automatically be routed to a read-only replica if the following are true:

  • Mindestens ein sekundäres Replikat wird auf schreibgeschützten Zugriff festgelegt, und jedes schreibgeschützte sekundäre Replikat sowie das primäre Replikat werden konfiguriert, um schreibgeschütztes Routing zu unterstützen.At least one secondary replica is set to read-only access, and each read-only secondary replica and the primary replica are configured to support read-only routing. Weitere Informationen finden Sie weiter unten in diesem Abschnitt unter So konfigurieren Sie Verfügbarkeitsreplikate für das schreibgeschützte Routing.For more information, see To Configure Availability Replicas for Read-Only Routing, later in this section.

  • Die Verbindungszeichenfolge verweist auf einen Verfügbarkeitsgruppenlistener, und die Anwendungsabsicht der eingehenden Verbindung wird auf schreibgeschützt festgelegt, z. B. mithilfe des Schlüsselworts Application Intent=ReadOnly in den ODBC- oder OLEBD-Verbindungszeichenfolgen, -Verbindungsattributen oder -Eigenschaften.The connection string references an availability group listener, and the application intent of the incoming connection is set to read-only (for example, by using the Application Intent=ReadOnly keyword in the ODBC or OLEDB connection strings or connection attributes or properties). Weitere Informationen finden Sie weiter unten in diesem Abschnitt unter Schreibgeschützte Anwendungsabsicht und schreibgeschütztes Routing.For more information, see Read-Only Application Intent and Read-Only Routing, later in this section.

So konfigurieren Sie Verfügbarkeitsreplikate für das schreibgeschützte RoutingTo Configure Availability Replicas for Read-Only Routing

Ein Datenbankadministrator muss die Verfügbarkeitsreplikate wie folgt konfigurieren:A database administrator must configure the availability replicas as follows:

  1. Für jedes Verfügbarkeitsreplikat, das Sie als lesbares sekundäres Replikat konfigurieren möchten, muss ein Datenbankadministrator die folgenden Einstellungen konfigurieren, die nur unter der sekundären Rolle wirksam werden:For each availability replica that you want to configure as a readable secondary replica, a database administrator must configure the following settings, which take effect only under the secondary role:

    • Der Verbindungszugriff muss auf "alles" oder "schreibgeschützt" festgelegt werden.Connection access must be set to "all" or "read only".

    • Die URL für das schreibgeschützte Routing muss angegeben werden.The read-only routing URL must be specified.

  2. Für jede dieser Replikate muss eine schreibgeschützte Routingliste für die primäre Rolle angegeben werden.For each of these replicas, a read-only routing list must be specified for the primary role. Geben Sie einen oder mehrere Servernamen als Routingziele an.Specify one or more server names as routing targets.

Verwandte AufgabenRelated Tasks

Schreibgeschützte Anwendungsabsicht und schreibgeschütztes RoutingRead-Only Application Intent and Read-Only Routing

Die Eigenschaft der Verbindungszeichenfolge für die Anwendungsabsicht gibt an, dass die Anforderung der Clientanwendung direkt an die Version mit Lese-/Schreibzugriff oder die schreibgeschützte Version einer Verfügbarkeitsgruppendatenbank weitergeleitet wird.The application intent connection string property expresses the client application’s request to be directed either to a read-write or read-only version of an availability group database. Zum Verwenden des schreibgeschützten Routings muss ein Client beim Herstellen einer Verbindung mit dem Verfügbarkeitsgruppenlistener eine schreibgeschützte Anwendungsabsicht in der Verbindungszeichenfolge verwenden.To use read-only routing, a client must use an application intent of read-only in the connection string when connecting to the availability group listener. Ohne die schreibgeschützte Anwendungsabsicht werden Verbindungen zum Verfügbarkeitsgruppenlistener zur Datenbank weitergeleitet, die sich auf dem primären Replikat befindet.Without the read-only application intent, connections to the availability group listener are directed to the database on the primary replica.

Das Attribut der Anwendungsabsicht wird während der Anmeldung in der Clientsitzung gespeichert. Die Instanz von SQL Server verarbeitet dann diese Absicht und ermittelt das weitere Vorgehen entsprechend der Konfiguration der Verfügbarkeitsgruppe und dem aktuellen Lese-/Schreibstatus der Zieldatenbank im sekundären Replikat.The application intent attribute is stored in the client’s session during login and the instance of SQL Server will then process this intent and determine what to do according to the configuration of the availability group and the current read-write state of the target database in the secondary replica.

Beispiel für eine Verbindungszeichenfolge für den ADO.NET-Anbieter (System.Data.SqlClient) mit Festlegung einer schreibgeschützten Anwendungsabsicht:An example of a connection string for the ADO.NET provider (System.Data.SqlClient) that designates read-only application intent is as follows:

Server=tcp:AGListener,1433;Database=AdventureWorks;IntegratedSecurity=SSPI;ApplicationIntent=ReadOnly  

In diesem Beispiel für eine Verbindungszeichenfolge versucht der Client, eine Verbindung mit dem Verfügbarkeitsgruppenlistener AGListener an Port 1433 herzustellen. Sie können den Port auch weglassen, wenn der Verfügbarkeitsgruppenlistener Port 1433 überwacht.In this connection string example, the client is attempting to connect to an availability group listener named AGListener on port 1433 (you may also omit the port if the availability group listener is listening on 1433). In der Verbindungszeichenfolge wurde die Eigenschaft ApplicationIntent auf ReadOnlyfestgelegt, was diese zu einer Verbindungszeichenfolge für beabsichtige Lesevorgängemacht.The connection string has the ApplicationIntent property set to ReadOnly, making this a read-intent connection string. Ohne diese Einstellung hätte der Server kein schreibgeschütztes Routing der Verbindung versucht.Without this setting, the server would not have attempted a read-only routing of the connection.

Die primäre Datenbank der Verfügbarkeitsgruppe verarbeitet die eingehende Anforderung für schreibgeschütztes Routing und versucht, ein schreibgeschütztes Online-Replikat zu suchen, das mit dem primären Replikat verknüpft und für schreibgeschütztes Routing konfiguriert ist.The primary database of the availability group processes the incoming read-only routing request and attempts to locate an online, read-only replica that is joined to the primary replica and is configured for read-only routing. Der Client empfängt Verbindungsinformationen vom primären Replikatserver und stellt eine Verbindung mit dem ermittelten schreibgeschützten Replikat her.The client receives back connection information from the primary replica server and connects to the identified read-only replica.

Hinweis: Die Anwendungsabsicht kann von einem Clienttreiber an eine Downlevelinstanz von SQL Server gesendet werden.Note that the application intent can be sent from a client driver to a down-level instance of SQL Server. In diesem Fall wird die schreibgeschützte Anwendungsabsicht ignoriert, und die Verbindung bleibt normal bestehen.In this case, application intent of read-only is ignored and the connection proceeds as normal.

Sie können schreibgeschütztes Routing umgehen, indem Sie die Verbindungseigenschaft der Anwendungsabsicht nicht auf ReadOnly festlegen (bei keiner Angabe während der Anmeldung lautet der Standard ReadWrite ), oder indem Sie direkt eine Verbindung mit der primären Replikatinstanz von SQL- Server herstellen, statt den Namen des Verfügbarkeitsgruppenlisteners zu verwenden.You can bypass read-only routing by not setting the application intent connection property to ReadOnly (when not designated, the default is ReadWrite during login) or by connecting directly to the primary replica instance of SQL Server instead of using the availability group listener name. Schreibgeschütztes Routing erfolgt auch dann nicht, wenn Sie eine direkte Verbindung mit einem schreibgeschützten Replikat herstellen.Read-only routing will also not occur if you connect directly to a read-only replica.

Verwandte AufgabenRelated Tasks

Umgehen von VerfügbarkeitsgruppenlistenernBypassing Availability Group Listeners

Während Verfügbarkeitsgruppenlistener Unterstützung für Failoverumleitung und schreibgeschütztes Routing ermöglichen, müssen Clientverbindungen diese nicht verwenden.While availability group listeners enable support for failover redirection and read-only routing, client connections are not required to use them. Eine Clientverbindung kann auch direkt auf die Instanz von SQL Server verweisen, statt eine Verbindung mit dem Verfügbarkeitsgruppenlistener herzustellen.A client connection can also directly reference the instance of SQL Server instead of connecting to the availability group listener.

Es besteht kein Unterschied zur Instanz von SQL Server, unabhängig davon, ob die Verbindung mithilfe des Verfügbarkeitslisteners oder mithilfe eines anderen Instanzendpunkts angemeldet wird.To the instance of SQL Server it is irrelevant whether a connection logs in using the availability group listener or using another instance endpoint. Die Instanz von SQL Server überprüft den Status der Zieldatenbank und ermöglicht oder verweigert die Konnektivität basierend auf der Konfiguration der Verfügbarkeitsgruppe und dem aktuellen Status der Datenbank auf der Instanz.The instance of SQL Server will verify the state of the targeted database and either allow or disallow connectivity based on the configuration of the availability group and the current state of the database on the instance. Wenn z. B. eine Clientanwendung direkt eine Verbindung mit einer Instanz des SQL Server-Ports herstellt und eine Verbindung mit einer in einer Verfügbarkeitsgruppe gehosteten Zieldatenbank herstellt und die Zieldatenbank sich im primären Status befindet und online geschaltet ist, ist die Konnektivität erfolgreich.For example, if a client application connects directly to a instance of SQL Server port and connects to a target database hosted in an availability group, and the target database is in primary state and online, then connectivity will succeed. Ist die Zieldatenbank offline oder in einem Übergangsstatus, schlägt die Konnektivität zur Datenbank fehl.If the target database is offline or in a transitional state, connectivity to the database will fail.

Alternativ können Anwendungen beim Migrieren von der Datenbankspiegelung zu AlwaysOn-VerfügbarkeitsgruppenAlways On availability groupsdie Verbindungszeichenfolge für die Datenbankspiegelung angeben, sofern nur ein sekundäres Replikat vorhanden ist und Benutzerverbindungen unzulässig sind.Alternatively, while migrating from database mirroring to AlwaysOn-VerfügbarkeitsgruppenAlways On availability groups, applications can specify the database mirroring connection string as long as only one secondary replica exists and it disallows user connections. Weitere Informationen finden Sie weiter unten in diesem Abschnitt unter Verwenden von Verbindungszeichenfolgen für die Datenbankspiegelung mit Verfügbarkeitsgruppen.For more information, see Using Database-Mirroring Connection Strings with Availability Groups, later in this section.

Verwenden von Verbindungszeichenfolgen für die Datenbankspiegelung mit VerfügbarkeitsgruppenUsing Database-Mirroring Connection Strings with Availability Groups

Wenn eine Verfügbarkeitsgruppe nur ein sekundäres Replikat besitzt und mit ALLOW_CONNECTIONS = READ_ONLY oder ALLOW_CONNECTIONS = NONE für das sekundäre Replikat konfiguriert wird, können Clients mithilfe einer Verbindungszeichenfolge für die Datenbankspiegelung eine Verbindung mit dem primären Replikat herstellen.If an availability group possesses only one secondary replica and is configured with either ALLOW_CONNECTIONS = READ_ONLY or ALLOW_CONNECTIONS = NONE for the secondary replica, clients can connect to the primary replica by using a database mirroring connection string. Dieser Ansatz kann beim Migrieren einer vorhandenen Anwendung von der Datenbankspiegelung zu einer Verfügbarkeitsgruppe nützlich sein, sofern Sie die Verfügbarkeitsgruppe auf zwei Verfügbarkeitsreplikate (ein primäres und ein sekundäres Replikat) beschränken.This approach can be useful while migrating an existing application from database mirroring to an availability group, as long as you limit the availability group to two availability replicas (a primary replica and one secondary replica). Wenn Sie zusätzliche sekundäre Replikate hinzufügen, müssen Sie einen Verfügbarkeitsgruppenlistener für die Verfügbarkeitsgruppe erstellen und die Anwendungen aktualisieren, damit der DNS-Name des Verfügbarkeitsgruppenlisteners verwendet wird.If you add additional secondary replicas, you will need to create an availability group listener for the availability group and update your applications to use the availability group listener DNS name.

Wenn Sie die Verbindungszeichenfolgen der Datenbankspiegelung verwenden, kann der Client entweder SQL ServerSQL Server Native Client oder .NET Framework-Datenanbieter für SQL ServerSQL Serververwenden.When using database mirroring connection strings, the client can use either SQL ServerSQL Server Native Client or .NET Framework Data Provider for SQL ServerSQL Server. Die von einem Client bereitgestellte Verbindungszeichenfolge muss mindestens den Namen einer Serverinstanz, den ursprünglichen Partnernamen, angeben, um die Serverinstanz zu identifizieren, auf der das Verfügbarkeitsreplikat, zu dem Sie eine Verbindung herstellen möchten, ursprünglich gehostet wird.The connection string provided by a client must minimally supply the name of one server instance, the initial partner name, to identify the server instance that initially hosts the availability replica to which you intend to connect. Optional kann die Verbindungszeichenfolge auch den Namen einer anderen Serverinstanz, den Failoverpartnernamen, enthalten, um die Serverinstanz zu identifizieren, auf der das sekundäre Replikat ursprünglich gehostet wird.Optionally, the connection string can also supply the name of another server instance, the failover partner name, to identify the server instance that initially hosts the secondary replica as the failover partner name.

Weitere Informationen zu Verbindungszeichenfolgen für die Datenbankspiegelung finden Sie unter Verbinden von Clients mit einer Datenbank-Spiegelungssitzung (SQL Server).For more information about database mirroring connection strings, see Connect Clients to a Database Mirroring Session (SQL Server).

Verhalten von Clientverbindungen beim FailoverBehavior of Client Connections on Failover

Wenn ein Verfügbarkeitsgruppenfailover auftritt, werden vorhandene persistente Verbindungen zur Verfügbarkeitsgruppe beendet. Der Client muss eine neue Verbindung herstellen, um weiterhin dieselbe primäre Datenbank oder schreibgeschützte sekundäre Datenbank zu verwenden.When an availability group failover occurs, existing persistent connections to the availability group are terminated and the client must establish a new connection in order to continue working with the same primary database or read-only secondary database. Während eines Failovers auf der Serverseite tritt bei der Verbindung zur Verfügbarkeitsgruppe möglicherweise ein Fehler auf, und die Clientanwendung wird gezwungen, erneut eine Verbindung herzustellen, bis die primäre Datenbank wieder vollständig online geschaltet ist.While a failover is occurring on the server side, connectivity to the availability group may fail, forcing the client application to retry connecting until the primary is brought fully back online.

Wenn die Verfügbarkeitsgruppe während des Verbindungsversuchs einer Clientanwendung, jedoch vor dem Verbindungstimeout online geschaltet wird, stellt der Clienttreiber möglicherweise während einer der internen Wiederholungsversuche erfolgreich eine Verbindung her. In diesem Fall wird kein Fehler an die Anwendung ausgegeben.If the availability group comes back online during a client application’s connection attempt but before the connect timeout period, the client driver may successfully connect during one of its internal retry attempts and no error will be surfaced to the application in this case.

Unterstützen von Multisubnetz-Failovern für VerfügbarkeitsgruppenSupporting Availability Group Multi-Subnet Failovers

Wenn Sie Clientbibliotheken verwenden, die die MultiSubnetFailover-Verbindungsoption in der Verbindungszeichenfolge unterstützen, können Sie das Verfügbarkeitsgruppenfailover auf ein anderes Subnetz optimieren, indem Sie MultiSubnetFailover je nach Syntax des verwendeten Anbieters auf "True" oder "Ja" festlegen.If you are using client libraries that support the MultiSubnetFailover connection option in the connection string, you can optimize availability group failover to a different subnet by setting MultiSubnetFailover to “True” or "Yes", depending on the syntax of the provider you are using.

Hinweis

Diese Einstellung wird für Verbindungen mit einem Subnetz und mehreren Subnetzen mit den Namen von Verfügbarkeitslistenern und SQL Server-Failoverclusterinstanzen empfohlen.We recommend this setting for both single and multi-subnet connections to availability groups listeners and to SQL Server Failover Cluster Instance names. Wenn Sie diese Option aktivieren, stehen auch für Szenarien mit einem Subnetz weitere Optimierungen zur Verfügung.Enabling this option adds additional optimizations, even for single-subnet scenarios.

Die MultiSubnetFailover -Verbindungsoption funktioniert nur mit dem TCP-Netzwerkprotokoll und wird nur beim Herstellen einer Verbindung mit einem Verfügbarkeitsgruppenlistener und für beliebige virtuelle Netzwerknamen unterstützt, die eine Verbindung mit SQL Server 2017SQL Server 2017herstellen.The MultiSubnetFailover connection option only works with the TCP network protocol and is only supported when connecting to an availability group listener and for any virtual network name connecting to SQL Server 2017SQL Server 2017.

Beispiel für eine Verbindungszeichenfolge des ADO.NET-Anbieters (System.Data.SqlClient) mit aktiviertem Multisubnetzfailover:An example of the ADO.NET provider (System.Data.SqlClient) connection string that enables multi-subnet failover is as follows:

Server=tcp:AGListener,1433;Database=AdventureWorks;IntegratedSecurity=SSPI; MultiSubnetFailover=True  

Die MultiSubnetFailover -Verbindungsoption sollte auf True festgelegt werden, auch wenn die Verfügbarkeitsgruppe nur ein einzelnes Subnetz umfasst.The MultiSubnetFailover connection option should be set to True even if the availability group only spans a single subnet. Dies ermöglicht es Ihnen, neue Clients vorzukonfigurieren, um künftig weitere Subnetze zu unterstützen, ohne dass die Clientverbindungszeichenfolgen geändert werden müssen. Darüber hinaus wird die Failoverleistung für Failover in einem Subnetz optimiert.This allows you to preconfigure new clients to support future spanning of subnets without any need for future client connection string changes and also optimizes failover performance for single subnet failovers. Die MultiSubnetFailover -Verbindungsoption ist zwar nicht erforderlich, bietet jedoch den Vorteil eines schnelleren Subnetzfailovers.While the MultiSubnetFailover connection option is not required, it does provide the benefit of a faster subnet failover. Das liegt daran, dass der Clienttreiber versucht, parallel ein TCP-Socket für alle der Verfügbarkeitsgruppe zugeordneten IP-Adressen zu öffnen.This is because the client driver will attempt to open up a TCP socket for each IP address in parallel associated with the availability group. Der Clienttreiber wartet, bis die erste IP erfolgreich antwortet, und verwendet diese dann für die Verbindung.The client driver will wait for the first IP to respond with success and once it does, will then use it for the connection.

Verfügbarkeitsgruppenlistener und SSL-ZertifikateAvailability Group Listeners and SSL Certificates

Wenn beim Herstellen einer Verbindung mit einem Verfügbarkeitsgruppenlistener die beteiligten Instanzen von SQL Server SSL-Zertifikate zusammen mit Sitzungsverschlüsselung verwenden, muss der Clienttreiber den alternativen Antragstellernamen im SSL-Zertifikat unterstützen, um die Verschlüsselung zu erzwingen.When connecting to an availability group listener, if the participating instances of SQL Server use SSL certificates in conjunction with session encryption, the connecting client driver will need to support the Subject Alternate Name in the SSL certificate in order to force encryption. SQL Server-Treiberunterstützung für den alternativen Antragstellernamen des Zertifikats ist für ADO.NET (SqlClient), Microsoft JDBC und SQL Native Client (SNAC) geplant.SQL Server driver support for certificate Subject Alternative Name is planned for ADO.NET (SqlClient), Microsoft JDBC and SQL Native Client (SNAC).

Ein X.509-Zertifikat muss für alle beteiligten Serverknoten im Failovercluster mit einer Liste aller im alternativen Antragstellernamen des Zertifikats festgelegten Verfügbarkeitsgruppenlistenern konfiguriert werden.A X.509 certificate must be configured for each participating server node in the failover cluster with a list of all availability group listeners set in the Subject Alternate Name of the certificate.

Wenn der WSFC z. B. drei Verfügbarkeitsgruppenlistener mit den Namen AG1_listener.Adventure-Works.com, AG2_listener.Adventure-Works.comund AG3_listener.Adventure-Works.combesitzt, sollte der alternative Antragstellername für das Zertifikat folgendermaßen festgelegt werden:For example, if the WSFC has three availability group listeners with the names AG1_listener.Adventure-Works.com, AG2_listener.Adventure-Works.com, and AG3_listener.Adventure-Works.com, the Subject Alternative Name for the certificate should be set as follows:

CN = ServerFQDN  
SAN = ServerFQDN,AG1_listener.Adventure-Works.com, AG2_listener.Adventure-Works.com, AG3_listener.Adventure-Works.com  

Verfügbarkeitsgruppenlistener und Serverprinzipalnamen (SPNs)Availability Group Listeners and Server Principal Names (SPNs)

Ein Serverprinzipalname (SPN) muss in Active Directory von einem Domänenadministrator für alle Verfügbarkeitsgruppenlistener-Namen konfiguriert werden, um Kerberos für die Clientverbindung mit dem Verfügbarkeitsgruppenlistener zu aktivieren.A Server Principal Name (SPN) must be configured in Active Directory by a domain administrator for each availability group listener name in order to enable Kerberos for the client connection to the availability group listener. Bei der Registrierung des Serverprinzipalnamens (SPN) müssen Sie das Dienstkonto derjenigen Serverinstanz verwenden, die das Verfügbarkeitsreplikat hostet.When registering the SPN, you must use the service account of the server instance that hosts the availability replica . Damit der SPN in allen Replikaten funktioniert, muss dasselbe Dienstkonto für alle Instanzen im WSFC-Cluster verwendet werden, der die Verfügbarkeitsgruppe hostet.For the SPN to work across all replicas, the same service account must be used for all instances in the WSFC cluster that hosts the availability group.

Konfigurieren Sie den SPN mithilfe des setspn Windows-Befehlszeilentools.Use the setspn Windows command line tool to configure the SPN. Beispiel für die Konfiguration eines Serverprinzipalnamens für die Verfügbarkeitsgruppe AG1listener.Adventure-Works.com , die auf einer Reihe von SQL Server-Instanzen gehostet wird und zur Ausführung unter dem Domänenkonto corp/svclogin2konfiguriert ist:For example to configure an SPN for an availability group named AG1listener.Adventure-Works.com hosted on a set of instances of SQL Server all configured to run under the domain account corp/svclogin2:

setspn -A MSSQLSvc/AG1listener.Adventure-Works.com:1433 corp/svclogin2  

Weitere Informationen zur manuellen Registrierung eines SPN für SQL Server finden Sie unter Register a Service Principal Name for Kerberos Connections.For more information about manual registration of a SPN for SQL Server, see Register a Service Principal Name for Kerberos Connections.

Verwandte AufgabenRelated Tasks

Verwandte InhalteRelated Content

Siehe auchSee Also

Übersicht über AlwaysOn-Verfügbarkeitsgruppen (SQL Server) Overview of Always On Availability Groups (SQL Server)
Always On-Clientkonnektivität (SQL Server) Always On Client Connectivity (SQL Server)
Informationen zum Clientverbindungszugriff auf Verfügbarkeitsreplikate (SQL Server) About Client Connection Access to Availability Replicas (SQL Server)
Aktive sekundäre Replikate: Lesbare sekundäre Replikate (Always On-Verfügbarkeitsgruppen) Active Secondaries: Readable Secondary Replicas (Always On Availability Groups)
Verbinden von Clients mit einer Datenbank-Spiegelungssitzung (SQL Server)Connect Clients to a Database Mirroring Session (SQL Server)