it-swarm.com.de

Spiegeln - Die Netzwerkadresse des Servers kann nicht erreicht werden

Ich habe SQL Server 2008 R2 installiert. Es enthält drei Instanzen.

  1. Standard (MSSQLServer)
  2. Erste Instanz
  3. Zweite Instanz

All dies sind Anmelden als Netzwerkdienst.

Die Standardinstanz ist der Hauptserver. Die erste Instanz ist der Spiegel. Die zweite Instanz ist der Zeugenserver

Ich habe zunächst die vollständige Sicherung und die Transaktionsprotokollsicherung meiner Hauptdatenbank durchgeführt. Es wurde in der ersten Instanz wiederhergestellt, indem derselbe Datenbankname beibehalten wurde und der Wiederherstellungsstatus "Keine Wiederherstellung" lautet

Schließlich habe ich die Spiegelung gestartet und erhalte zwei Fehlermeldungen (siehe unten).

enter image description here

enter image description here

13
testing

Probieren Sie einige grundlegende Konnektivitätstests aus.

  1. Stellen Sie sicher, dass 5022, 5023 und 5024 zuhören.
  2. Stellen Sie sicher, dass der von Ihnen verwendete Servername korrekt ist.

Über die Befehlszeile:

netstat -an

enter image description here

Auf meinem Server können Sie sehen, dass 5022 zuhört.

Stellen Sie als Nächstes sicher, dass Sie über Telnet eine Verbindung zu diesen Ports herstellen können

telnet fully-qualified-server-name 5022

Wie im Abschnitt Hinweis der Benutzeroberfläche für Spiegelungseigenschaften direkt unter dem Zeugenfeld erwähnt, müssen die Servernamen vollständig qualifizierte TCP-Adressen sein.

enter image description here

Sie sollten nur einen schwarzen Bildschirm sehen. In diesem Beispiel habe ich einen Namen gewählt, der einen Verbindungsfehler verursachen würde. Wenn "Verbindung konnte nicht geöffnet werden" angezeigt wird, sind die als Spiegel, Prinzipal und Zeuge definierten Server nicht erreichbar oder Sie verwenden nicht den richtigen Namen.

Der Telnet-Client kann unter Funktionen in Windows 2008 hinzugefügt werden.

Wenn Sie in Windows 2008 mit der rechten Maustaste auf Computer klicken, wird der vollständige Computername angezeigt. Sie sollten es auch über die Befehlszeile anpingen können. Beispiel: ping myservername

Update

Führen Sie die folgenden Abfragen für jede SQL Server-Instanz aus und geben Sie die Ergebnisse in Ihre Frage ein. Viele dieser Tipps zur Fehlerbehebung stammen von: http://msdn.Microsoft.com/en-us/library/ms189127.aspx

TCP-Endpunkte anzeigen

SELECT type_desc, port FROM sys.tcp_endpoints;

Status der Spiegelung von Endpunkten anzeigen

SELECT state_desc FROM sys.database_mirroring_endpoints;

Überprüfen Sie, ob die ROLLE korrekt ist

SELECT role FROM sys.database_mirroring_endpoints;

Anzeigeberechtigungen für Endpunkte

SELECT EP.name, SP.STATE, 
   CONVERT(nvarchar(38), suser_name(SP.grantor_principal_id)) 
      AS GRANTOR, 
   SP.TYPE AS PERMISSION,
   CONVERT(nvarchar(46),suser_name(SP.grantee_principal_id)) 
      AS GRANTEE 
   FROM sys.server_permissions SP , sys.endpoints EP
   WHERE SP.major_id = EP.endpoint_id
   ORDER BY Permission,grantor, grantee; 
GO

Die Anmeldung für das Dienstkonto von der anderen Serverinstanz erfordert die Berechtigung CONNECT. Stellen Sie sicher, dass die Anmeldung vom anderen Server über die Berechtigung CONNECT verfügt. Verwenden Sie die folgende Transact-SQL-Anweisung, um festzustellen, wer über die CONNECT-Berechtigung für einen Endpunkt verfügt.

Beispielausgabe:

name    STATE   GRANTOR PERMISSION  GRANTEE
TSQL Local Machine  G   sqladmin    CO      public
TSQL Named Pipes    G   sqladmin    CO      public
TSQL Default TCP    G   sqladmin    CO      public
TSQL Default VIA    G   sqladmin    CO      public
Mirroring   G   SERVERNAME\Grantor  CO      SERVERNAME\Grantee

Grantor ist das Konto, dem eine Verbindungsberechtigung (CO) zugewiesen wurde. Grantee ist das Konto, das über eine Verbindungsberechtigung verfügt

Führen Sie in der Befehlszeile ipconfig /all und notieren Sie, was der Hostname zurückgibt.

12
Craig Efrein