Wypróbuj podstawowe testy łączności.
- Sprawdź, czy 5022, 5023 i 5024 nasłuchują.
- Sprawdź, czy używana nazwa serwera jest poprawna.
Z wiersza poleceń:
netstat -an
Na moim serwerze widać, że 5022 nasłuchuje.
Następnie upewnij się, że możesz połączyć się z tymi portami przez telnet
telnet fully-qualified-server-name 5022
Jak wspomniano w sekcji Notatka w interfejsie GUI właściwości kopii lustrzanej, tuż poniżej pola obserwatora, nazwy serwerów muszą być w pełni kwalifikowanymi adresami tcp.
Powinieneś po prostu zobaczyć czarny ekran. W tym przykładzie wybrałem nazwę, która spowodowałaby awarię połączenia. Jeśli zobaczysz komunikat „Nie można otworzyć połączenia”, oznacza to, że serwery zdefiniowane jako dublowanie, zleceniodawca i świadek są niedostępne lub nie używasz właściwej nazwy.
Klient Telnet można dodać w sekcji Funkcje w systemie Windows 2008.
W systemie Windows 2008 po kliknięciu prawym przyciskiem myszy Komputer można zobaczyć pełną nazwę komputera. Powinieneś mieć możliwość pingowania go również z wiersza poleceń. np .: ping myservername
Aktualizacja
Uruchom następujące zapytania dla każdej instancji SQL Server i umieść wyniki w swoim pytaniu. Wiele z tych wskazówek dotyczących rozwiązywania problemów pochodzi z: http://msdn.microsoft.com/en-us/library/ms189127.aspx
Pokaż punkty końcowe TCP
SELECT type_desc, port FROM sys.tcp_endpoints;
Wyświetl stan lustrzanych punktów końcowych
SELECT state_desc FROM sys.database_mirroring_endpoints;
Sprawdź, czy ROLA jest poprawna
SELECT role FROM sys.database_mirroring_endpoints;
Wyświetl uprawnienia do punktów końcowych
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
Logowanie do konta usługi z drugiej instancji serwera wymaga pozwolenia CONNECT. Upewnij się, że logowanie z innego serwera ma uprawnienia CONNECT. Aby ustalić, kto ma uprawnienie CONNECT dla punktu końcowego, w każdej instancji serwera użyj następującej instrukcji Transact-SQL.
Przykładowe dane wyjściowe:
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 to konto, które ma przypisane uprawnienie do połączenia (CO), Grantee to konto, które ma uprawnienie do połączenia
W wierszu polecenia uruchom ipconfig /all
i zanotuj, co zwraca nazwa hosta.