2

Ich habe drei Windows-Server (data1, data2 und datawitness), die nicht Teil einer Domäne sind und AD nicht verwenden. Ich versuche, die Spiegelung basierend auf den Anweisungen unter http://alan328.com/SQL2005_Database_Mirroring_Tutorial.aspx einzurichten. Ich hatte Erfolg bis zum letzten Satz von Anweisungen, wo ich data1 anwies, die Datenwut als Zeugenserver zu verwenden. Dieser Schritt schlägt mit der folgenden Meldung:Problem beim Einrichten des Zeugen im SQL Server-Spiegelungsschema mit Fehler

alter database MyDatabase set witness = 'TCP://datawitness.somedomain.com:7024'

The ALTER DATABASE command could not be sent to the remote server instance 'TCP://datawitness.somedomain.com:7024'. The database mirroring configuration was not changed. Verify that the server is connected, and try again.

ich beide Port 7024 getestet habe, sowie 1433 mit Hilfe von Telnet und beiden Server können in der Tat miteinander verbinden. Ich bin auch in der Lage, eine Verbindung zum Zeugenserver von SQL Server Manager auf dem primären Server hinzuzufügen. Ich habe den Configuration Manager auf beiden Servern verwendet, um Named Pipes zu aktivieren und zu überprüfen, ob der IP-Datenverkehr aktiviert ist und standardmäßig den Port 1433 verwendet.

Was könnte es sonst noch sein? Brauche ich zusätzliche Ports, damit dies funktioniert? (Die Firewall-Regeln sind sehr restriktiv, aber ich weiß, den Verkehr auf den zuvor genannten Ports ist ausdrücklich erlaubt)

Caveats, die hier erwähnenswert ist:

  • Jeder Server ist in einem anderen Netzwerksegment

  • die Server verwenden AD nicht und sind nicht Teil einer Domäne

  • Es gibt keinen DNS-Server für diesen Server konfiguriert, also verwende ich die HOSTS-Datei Domain-Namen IP-Adressen zuzuordnen (verifi ed mit Telnet, Ping, etc).

  • Die Firewall-Regeln sehr restriktiv sind, und ich habe keinen direkten Zugriff, sie zu optimieren, obwohl ich in einer Änderung

    benötigt, wenn anrufen
  • Data1 und Data2 werden mithilfe von SQL Server 2008 ist Datawitness mit SQL Express 2005. Alle von ihnen verwenden, um die Standardinstanz (dh keiner von ihnen Instanzen genannt)

Antwort

8

Nach Kämmen durch Blogs und KB-Artikel und Forenbeiträge und Neuinstallation und Neukonfiguration und Neustarten und Profilierung, etc, etc, etc. , Fand ich endlich den Schlüssel zu dem Puzzle - ein Eintrag im Ereignisprotokoll auf dem Zeugenserver-Bericht ed dieser Fehler:

Database mirroring connection error 2 'DNS lookup failed with error: '11001(No such host is known.)'.' for 'TCP://ABC-WEB01:7024'. 

ich eine Host-Datei benutzt hatte für alle drei Server in Form von datax.mydomain.com Mock Domain-Namen zuordnen. Es ist nun jedoch offensichtlich, dass der Zeuge versuchte, mit dem Namen des primären Servers, für den ich keinen Host-Eintrag hatte, wieder zu kommunizieren. Das Hinzufügen eines anderen Eintrags für ABC-WEB01, der auf den primären Webserver verweist, führte dazu. Keine Fehler und die Spiegelung ist schließlich abgeschlossen.

Hoffen, das spart jemand anderen eine Milliarde Stunden.

+0

Marry me ..... Dies scheint der Trick für uns getan zu haben, obwohl im Moment Datenbankmonitor Mirroring sagt der Spiegel und Zeuge von einander getrennt sind, aber ich werde beginnen, in das jetzt. –

0

Ich möchte eine weitere Unterantwort zu dieser speziellen Frage hinzufügen, da mein Kommentar zu Chris 'Antwort zeigt, dass mein Spiegel als getrennt (zum Zeugen) angezeigt wurde. Sie müssen wahrscheinlich neu starten (oder in meinem Fall) Ich habe gerade den Dienst) den Zeugenserver.

Sobald ich dies tat, zeigte der Spiegel die Zeugenverbindung als Verbunden!

See: http://www.bigresource.com/Tracker/Track-ms_sql-cBsxsUSH/