Verbindung AlwaysOn AG Listener Problem

7

Ich bin ein Neuling für Microsoft-Technologien und habe Probleme im Konnektivitätsteil für SQL Server 2014. Dies ist wahrscheinlich ein einfaches Problem, aber ich stecke fest.

Ich habe 4 Server. Einer davon ist der Active Directory-Domänencontroller, einer ist der Anwendungsserver und die anderen werden für SQL Server verwendet. Da es sich um ein Konnektivitätsproblem handelt, sind IPs für Server; -AD DC: 10.6.0.100 (auch der DNS-Server) -APP: 10.6.0.110 -SQL 1: 10.6.0.120 -SQL 2: 10.6.0.121

Ich habe erfolgreich einen Failover-Cluster (DBCLUSTER) erstellt und die IP-Adresse des FC auf 10.6.0.130 festgelegt (dies ist keine tatsächliche Server-IP, ich verstehe diesen Teil wirklich nicht ..).

Später habe ich eine AlwaysOn-Verfügbarkeitsgruppe für SQL Server erstellt. Ich habe die AG erfolgreich ohne Listener erstellt. Ich konnte eine Verbindung zu Servern herstellen, die Datenbank wurde problemlos synchronisiert. Dann habe ich einen Hörer (erstellten AG-LISTENER ) und stellen Sie seine IP als 10.6.0.131 (das ist nicht ein tatsächlicher Server - IP, wieder ?) Und Hafen zu setzen 5525 . Es gab keine Probleme.

Also wollte ich die Konnektivität testen. Wenn ich Verbindungen vom APP- Server zu direkt SQL 1 oder SQL 2 herstellen wollte , kann ich problemlos eine Verbindung herstellen. Aber wenn ich versuche , eine Verbindung herstellen AG-LISTENER , kann es nicht auf Netzwerk. Wenn ich die DNS-Einträge überprüfe. Ich kann es so sehen, wie es am 10.6.0.131 gehostet wird .

Als ich versuchte, von AD-DC-, APP- und SQL 2- Servern einen Ping an AG-LISTENER zu senden, antwortete ich , dass der Zielhost nicht erreichbar ist (Ping 10.6.0.131, aber die Antwort kommt von den IPs von AD-DC, APP und SQL 2 Server). Es kann eine Verbindung vom SQL 1-Server herstellen, der der primäre Server für AG ist.

Ich habe die Firewalls überprüft, es gibt kein Problem. Aber ich denke, dies ist ein Netzwerkproblem, von dem ich keine Ahnung habe.

PS: Server werden unter Windows Server 2012 ausgeführt und nicht unter Azure gehostet.

LÖSUNG

Ursache des Problems war die Netzwerktopologie des Dienstanbieters. Es wurde festgestellt, dass IPs 10.6.0.0/32 von anderen Servern anderer Kunden verwendet werden können. Also haben sie uns einen weiteren IP-Block zugewiesen, auf den nur wir Zugriff haben, und der hat wie ein Zauber funktioniert.

erdimeola
quelle
2
Die IP-Adresse des Clusters ist nicht die physische IP eines bestimmten Servers, da dies der springende Punkt ist. Sie befindet sich vor einer Reihe von Servern und leitet zu dem aktuell aktiven Server weiter. Wenn es auf die physische IP eines tatsächlichen Servers eingestellt wäre, was würde passieren, wenn dieser Server ausfällt? Niemand könnte über diese IP-Adresse mit dem Namen des virtuellen Clusters kommunizieren ...
Aaron Bertrand
Außerdem findet unter diesem Beitrag ein interessantes Gespräch statt (das auch großartige Informationen enthält), und die Kommentare zeigen Links zu anderen Blogs über die Konfiguration, die hilfreich sein können: sqlperformance.com/2012/10/system-configuration/…
Aaron Bertrand
Wenn Sie "Server arbeiten unter Windows 8" sagen, meinen Sie das Windows 8-Desktop-Betriebssystem ( technet.microsoft.com/en-us/windows/hh771457 ) oder Windows Server 2012, früher bekannt als Windows Server 8 ( technet). microsoft.com/en-us/windowsserver/hh534429 )?
Dartonw
Vielen Dank für die Erklärung @AaronBertrand, ich werde den Link überprüfen, den Sie geteilt haben.
erdimeola
@dartonw Windows Server 2012
erdimeola

Antworten:

5

Es kann eine Verbindung vom SQL 1-Server herstellen, der der primäre Server für AG ist.

Mit „connect“, meinst du es kann ping AG-LISTENER aus SQL1?

Es klingt so, als ob Ihr Problem möglicherweise in der Portnummer liegt, die Sie für Ihren Listener ausgewählt haben. Wenn Sie 5525 auswählen, wählen Sie einen nicht standardmäßigen Port aus (1433 wäre der Standardport).

Wie sieht Ihre Verbindungszeichenfolge aus, wenn Sie versuchen, eine Verbindung zum Listener herzustellen? Ich vermute, es sieht ungefähr so ​​aus:

data source = ag-listener; initial catalog = ...

Sie haben hier zwei Möglichkeiten. Sie können entweder die Portnummer Ihres Listeners explizit angeben:

data source = ag-listener,5525; initial catalog = ...

Ebenso, wenn Sie diese aus mit SQL Server Management Studio zu test (SSMS), dann für die Verbindung mit dem Server - Dialogfeld, statt in der Umsetzung ag-listenerfür das Servernamen Textfeld setzte in ag-listener,5525.

Oder Sie können den Port ändern, den Ihr Listener 1433 abhört (lesen Sie die folgende BOL-Referenz, bevor Sie diese Änderung in Betracht ziehen):

alter availability group YourAvailabilityGroupName
modify listener 'AG-LISTENER'
(
    port = 1433
);

Es ist erwähnenswert, wann Sie den Standardport (1433) verwenden können. Schauen Sie sich diese Referenz auf BOL an und erklären Sie, wann Sie 1433 für den Listener verwenden können und wann nicht (Auszugskopie / unten als Referenz eingefügt):

Sie können den Standardport auf 1433 konfigurieren, um die Clientverbindungszeichenfolgen zu vereinfachen. Wenn Sie 1433 verwenden, müssen Sie keine Portnummer in einer Verbindungszeichenfolge angeben. Da jeder Verfügbarkeitsgruppen-Listener einen separaten Namen für das virtuelle Netzwerk hat, kann jeder auf einer einzelnen WSFC konfigurierte Verfügbarkeitsgruppen-Listener so konfiguriert werden, dass er auf denselben Standardport von 1433 verweist.

(Teile der Kürze halber weggelassen)

Wenn Sie den Standardport 1433 für Verfügbarkeitsgruppen-Listener-VNNs verwenden, müssen Sie weiterhin sicherstellen, dass keine anderen Dienste auf dem Clusterknoten diesen Port verwenden . Andernfalls würde dies zu einem Portkonflikt führen.

BEARBEITEN : Wenn das oben Genannte nicht Ihr Problem ist (wie aus Ihrem Kommentar unten hervorgeht), würde ich nach dem Durchsuchen der Protokolle sagen, dass die nächstbeste Vorgehensweise darin besteht, den Netzwerkverkehr zu untersuchen, um zu sehen, was ist ( und passiert nicht. Sie können dazu ein Netzwerküberwachungstool wie netmon verwenden .

Eine andere Sache, die ich tun würde, und mir ist klar, dass Sie gesagt haben, die Firewall sei kein Problem, aber ich würde sehen, ob der Port tatsächlich lauscht (mein Lieblingswerkzeug dafür ist portqry ).

Thomas Stringer
quelle
1
Hallo, danke für die ausführliche Antwort, aber ich habe bereits versucht, den Standardport auf 1433 zu ändern. Dies ist nicht das Problem. Es handelt sich wahrscheinlich um ein Netzwerkproblem, das durch die Topologie des Dienstanbieters verursacht wird.
erdimeola
Dann könnte es an der Zeit sein, Ihr bevorzugtes Netzwerküberwachungstool herauszuholen und zu sehen, was passiert (und was nicht).
Thomas Stringer