Was ist ein Verfügbarkeitsgruppenlistener?

Gilt für:SQL Server

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 Always On-Verfügbarkeitsgruppe zuzugreifen. Ein Listener ermöglicht es einem Client, eine Verbindung zu einem Replikat herzustellen, ohne dabei den Name der physischen SQL Server-Instanz kennen zu müssen. Da der Listener Datenverkehr weiterleitet, muss die Clientverbindungszeichenfolge nach einem Failover nicht geändert werden.

Ein Verfügbarkeitsgruppenlistener besteht aus einem DNS (Domain Name System)-Listenernamen, einer Listenerportbezeichnung und mindestens einer IP-Adresse. Nur das TCP-Protokoll wird von Verfügbarkeitsgruppenlistenern unterstützt. Der DNS-Name des Listeners muss in der Domäne und NetBIOS eindeutig sein. Wenn Sie einen Listener erstellen, wird er zu einer Ressource in einem Cluster mit einem zugeordneten virtuellen Netzwerknamen (VNN), einer virtuellen IP (VIP) und mit Verfügbarkeitsgruppenabhängigkeit. 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.

Wenn für mindestens ein lesbares sekundäres Replikat schreibgeschütztes Routing konfiguriert ist, werden Clientverbindungen zum Listener für beabsichtigte Lesevorgänge automatisch an ein lesbares sekundäres Replikat umgeleitet.

In diesem Artikel erhalten Sie einen Überblick über ein Verfügbarkeitsgruppenlistener. Sie haben auch die Möglichkeit, den Listener zu konfigurieren. Dann erfahren Sie, wie Sie eine Verbindung zum Listener herstellen.

Listenerparameter

Ein Verfügbarkeitsgruppenlistener verwendet Folgendes:

Eindeutiger DNS-Name
Dieser wird auch als virtueller Netzwerkname (Virtual Network Name, VNN) bezeichnet. Es gelten die Active Directory-Benennungsregeln für DNS-Hostnamen. Weitere Informationen finden Sie im KB-Artikel Namenskonventionen in Active Directory für Computer, Domänen, Standorte und Organisationseinheiten .

Mindestens eine virtuelle IP-Adresse (Virtual IP address, VIP)
VIPs werden für mindestens ein Subnetz konfiguriert, in das ein Failover der Verfügbarkeitsgruppe erfolgen kann.

IP-Adresskonfiguration
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. Die Verwendung von DHCP kann zu Verbindungsverzögerungen während des Failovers führen. Die Verwendung in Produktionsumgebungen empfiehlt sich also nicht. Verfügbarkeitsgruppen, die sich über mehrere Subnetze erstrecken oder hybride Netzwerkkonfigurationen verwenden, müssen eine statische IP-Adresse verwenden.

Listenerport

Wenn Sie einen Verfügbarkeitsgruppenlistener konfigurieren, müssen Sie über SSMS einen Port festlegen. Sie können den Standardport auf 1433 konfigurieren, um Clientverbindungszeichenfolgen einfach zu gestalten. Bei Verwendung von 1433 müssen Sie keine Portnummer in eine Verbindungszeichenfolge Ihrer Anwendung einschließen. 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.

Wenn Sie den Standardport 1433 für die VNet-Namen der Verfügbarkeitsgruppenlistener verwenden, müssen Sie dennoch sicherstellen, dass keine anderen Dienste im Clusterknoten diesen Port verwenden. Andernfalls tritt ein Portkonflikt auf.

Wenn eine der Instanzen von SQL Server bereits über den Instanzlistener an TCP-Port 1433 lauscht und keine anderen Dienste (einschließlich weiterer Instanzen von SQL Server) auf dem Computer an Port 1433 lauschen, entsteht kein Portkonflikt mit dem Verfügbarkeitsgruppenlistener. Das liegt daran, dass der Verfügbarkeitsgruppenlistener denselben TCP-Port innerhalb desselben Prozesses freigeben kann. Mehrere parallele Instanzen von SQL Server dürfen jedoch nicht so konfiguriert werden, dass sie an demselben Port lauschen, da in diesem Fall eine davon nicht auf Verbindungen lauschen kann.

Sie können auch einen nicht dem Standard entsprechenden Port für Verfügbarkeitsgruppenlistener festlegen. Allerdings müssen Sie explizit den Zielport in Ihrer Anwendungsverbindungszeichenfolge verwenden, wenn Sie eine Verbindung mit einem Listener herstellen. Darüber hinaus müssen Sie die Berechtigung für die Firewall für diesen Port öffnen.

Sie können eine Verbindung mit dem Listener über den Namen und den Port herstellen (falls Sie nicht 1433 verwenden). Der Port kann entweder der Listenerport oder der zugrunde liegende SQL Server-Port sein, der für die Überwachung konfiguriert wurde.

In den folgenden Beispielen werden einige Funktionen des Listeners veranschaulicht:

Richten Sie Folgendes ein:

  • IP-Adresse, an der SQL Server lauscht: 192.168.20.2
  • Port, an dem SQL Server lauscht: 50254
  • Konfigurierte Listener-IP-Adresse: 192.168.20.15
  • Konfigurierter Listenername: aglistener19
  • Konfigurierter Listenerport: 50123
  1. Stellen Sie eine Verbindung mit dem Listener über die IP-Adresse und den Port her. Diese Verbindung ist erfolgreich.

    sqlcmd -S 192.168.20.15,50123 
    1> 
    
  2. Stellen Sie eine Verbindung mit dem Listener nur über den Namen her, ohne Portangabe. Diese Verbindung schlägt fehl, weil ein nicht standardmäßiger Port verwendet wurde. Diesen Port müssen Sie angeben.

    sqlcmd -S aglistener19 
    
  3. Stellen Sie eine Verbindung mit dem Listener über den Listenernamen und den konfigurierten Port her. Diese Verbindung ist erfolgreich.

    sqlcmd -S aglistener19,50123 
    1> 
    
  4. Stellen Sie schließlich eine Verbindung mit dem Listener und dem SQL Server-Port her. Beachten Sie, dass Sie in diesem Fall den Port, an dem SQL Server lauscht, und nicht den Listenerport verwenden. Auch diese Verbindung ist erfolgreich.

    sqlcmd -S aglistener19,50254
    1> 
    

Verhalten von Clientverbindungen beim 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. 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.

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.

Nächste Schritte

Da Sie nun damit vertraut sind, wie ein Verfügbarkeitsgruppenlistener funktioniert, erstellen Sie Ihren Listener, und konfigurieren Sie Ihre Anwendung dann so, dass eine Verbindung zum Listener hergestellt wird. Sie können auch verschiedene Überwachungsstrategien für Verfügbarkeitsgruppen überprüfen, mit denen Sie die Integrität Ihrer Verfügbarkeitsgruppe gewährleisten können.

Weitere Informationen zu Verfügbarkeitsgruppen finden Sie unter Übersicht über Always On-Verfügbarkeitsgruppen (SQL Server).