| Termin | Definicja |
|---|---|
| Linked Server | Linked Server to zdefiniowane w SQL Server połączenie z innym źródłem danych, umożliwiające zapytania rozproszone. Linked Server w architekturze SQL ServerLinked Server to obiekt konfiguracyjny silnika Microsoft SQL Server, który opisuje połączenie z zewnętrznym źródłem danych. Źródłem może być inna instancja SQL Server albo system dostępny przez zainstalowanego dostawcę OLE DB. Po utworzeniu takiej definicji zapytanie wykonywane w lokalnej instancji może odwoływać się do obiektów znajdujących się poza jej własną bazą danych. Nie jest to kopia tabel ani replikacja danych. Linked Server przechowuje informacje potrzebne do nawiązania połączenia, wyboru dostawcy oraz uwierzytelnienia użytkownika. W SQL Server obiekt Linked Server jest widoczny między innymi w katalogu serwera oraz w SQL Server Management Studio, w gałęzi Server Objects. Nazwa logiczna nadana podczas konfiguracji służy później do adresowania zdalnego źródła. Typowa nazwa czteroczęściowa ma postać Mechanizmy wykonywania zapytań rozproszonychNajbardziej bezpośrednim sposobem użycia Linked Server jest zapytanie rozproszone z nazwą czteroczęściową. Lokalny optymalizator SQL Server może próbować przekazać część operacji do zdalnego źródła, ale zakres takiej delegacji zależy od rodzaju dostawcy, jego możliwości oraz konstrukcji zapytania. Odczyt dużej tabeli z użyciem lokalnych filtrów nie zawsze oznacza, że filtr zostanie wykonany zdalnie. Jeżeli do lokalnej instancji zostanie przesłana znaczna ilość danych, zapytanie może zużyć dużo pamięci, procesora i przepustowości sieci. Drugą metodą jest Linked Server może być używany nie tylko do odczytu. Operacje Dostawca OLE DB, logowanie i uprawnieniaKonfiguracja Linked Server obejmuje między innymi nazwę logiczną, typ dostawcy OLE DB, nazwę produktu, źródło danych oraz opcjonalny katalog domyślny. Współczesne wersje SQL Server korzystają z dostawców OLE DB instalowanych i konfigurowanych niezależnie od samego obiektu Linked Server. Dostawca musi być zgodny z architekturą procesu SQL Server oraz poprawnie zarejestrowany w systemie. Nieprawidłowa instalacja, brak wymaganej biblioteki klienta albo wyłączona opcja dostawcy może powodować błędy już podczas testu połączenia. Ważnym elementem jest mapowanie lokalnych loginów na konta używane w zdalnym źródle. SQL Server pozwala skonfigurować między innymi użycie bieżącego kontekstu bezpieczeństwa, stałych poświadczeń zdalnych albo brak dostępu dla określonych loginów. Uprawnienia lokalnego użytkownika i uprawnienia zdalnego konta nie są tym samym. Użytkownik może mieć prawo do wykonania zapytania w lokalnej bazie, ale nie mieć uprawnień do odczytu tabeli po drugiej stronie połączenia. W przypadku uwierzytelniania Windows znaczenie może mieć także przekazywanie poświadczeń między komputerami, znane jako problem podwójnego przeskoku. Do utworzenia konfiguracji można wykorzystać procedurę systemową Diagnostyka błędów i wpływ na działanie komputeraProblemy z Linked Server mogą powstać na kilku różnych poziomach. Najpierw warto rozdzielić błąd rozwiązywania nazwy od błędu sieciowego, uwierzytelnienia, dostawcy i uprawnień SQL. Jeżeli SQL Server nie potrafi odnaleźć hosta albo portu, zapytanie nie dociera do zdalnego silnika. Jeżeli połączenie sieciowe działa, ale pojawia się komunikat o logowaniu, przyczyną może być nieprawidłowe mapowanie loginu, wygasłe hasło lub niedostępny mechanizm uwierzytelniania. Błąd dotyczący dostawcy OLE DB wskazuje natomiast na warstwę pośredniczącą między SQL Server a zewnętrznym źródłem. Podczas analizy należy sprawdzić nazwę Linked Server, konfigurację dostawcy, rozwiązywanie DNS lub nazwę hosta, dostępność portu, ustawienia zapory oraz możliwość zalogowania się kontem używanym przez mapowanie. Następnie trzeba wykonać możliwie małe zapytanie testowe, na przykład odczyt jednej kolumny i ograniczonej liczby wierszy. Dopiero po potwierdzeniu podstawowego dostępu warto analizować złożone zapytania, złączenia i modyfikacje danych. W przypadku Linked Server może wpływać na czas odpowiedzi lokalnych aplikacji, gdy zapytanie oczekuje na sieć, blokadę lub odpowiedź zdalnej bazy. Szczególne znaczenie mają złączenia tabel lokalnych ze zdalnymi, sortowanie dużych wyników oraz zapytania uruchamiane w transakcjach. SQL Server może próbować koordynować transakcję obejmującą więcej niż jeden zasób, a w określonych sytuacjach wiąże się to z użyciem koordynatora transakcji rozproszonych. Diagnostyka powinna więc obejmować czas oczekiwania, plan wykonania, rozmiar przesyłanych danych i stan obu serwerów, a nie tylko treść pojedynczego komunikatu błędu. |