| Termin | Definicja |
|---|---|
| SQL Server Replication | SQL Server Replication to mechanizm synchronizujący dane między wydawcą a subskrybentami. SQL Server Replication jako mechanizm przepływu danychSQL Server Replication to zestaw funkcji służących do kontrolowanego kopiowania danych pomiędzy odrębnymi bazami SQL Server. W praktyce pozwala utrzymywać wybrane tabele, rekordy lub całe zestawy obiektów w kilku lokalizacjach, przy czym sposób przekazywania zmian zależy od przyjętego modelu replikacji. Nie jest to zwykłe kopiowanie pliku bazy ani jednorazowy eksport danych. Mechanizm obserwuje zmiany zachodzące w źródle, zapisuje informacje potrzebne do ich przekazania i dostarcza je do określonych odbiorców. W typowej konfiguracji występują trzy role. Wydawca udostępnia dane przeznaczone do replikowania, dystrybutor pośredniczy w przekazywaniu zmian, a subskrybent otrzymuje kopie danych. Role te mogą działać na oddzielnych instalacjach albo zostać umieszczone na tym samym środowisku, zależnie od wymagań dotyczących obciążenia, bezpieczeństwa i administracji. Publikacja określa zakres udostępnianych informacji, natomiast artykuły wskazują konkretne tabele, widoki lub procedury objęte procesem. Istotną cechą replikacji jest możliwość ograniczenia zakresu danych. Można przekazywać tylko wybrane kolumny, filtrować wiersze według warunków logicznych albo tworzyć osobne publikacje dla różnych odbiorców. Dzięki temu subskrybent nie musi otrzymywać pełnej zawartości bazy. Takie podejście zmniejsza ruch, ułatwia kontrolę dostępu i pozwala dopasować strukturę danych do zadań realizowanych w danej lokalizacji. SQL Server Replication a inne sposoby synchronizacjiReplikacja różni się od kopii zapasowej przede wszystkim celem. Kopia zapasowa służy do odtworzenia stanu bazy po awarii, usunięciu danych lub błędzie administratora. Replikacja natomiast ma zapewniać dostęp do wybranych informacji w innym miejscu i w określonym czasie. Kopia zapasowa jest zwykle wykonywana według harmonogramu, podczas gdy replikacja może przekazywać zmiany niemal na bieżąco albo w cyklicznych porcjach. W porównaniu z eksportem do pliku replikacja automatyzuje przepływ zmian i pozwala kontrolować jego stan. Eksport może być przydatny przy migracji, archiwizacji lub wymianie danych między niezależnymi systemami, lecz nie zapewnia sam z siebie ciągłego rozchodzenia się nowych i zmodyfikowanych rekordów. Przy replikacji trzeba natomiast zaplanować role, publikacje, subskrypcje, harmonogramy oraz sposób reagowania na błędy. Wyróżnia się kilka podstawowych odmian. Replikacja migawkowa tworzy obraz publikacji i przekazuje go subskrybentowi w określonym momencie. Jest prosta do zrozumienia, lecz przy dużych zbiorach może powodować znaczny transfer oraz dłuższe przetwarzanie. Replikacja transakcyjna przekazuje zmiany wynikające z transakcji, dlatego dobrze sprawdza się tam, gdzie istotna jest niewielka zwłoka. Replikacja scalająca pozwala na modyfikowanie danych w więcej niż jednej lokalizacji, ale wymaga reguł rozwiązywania konfliktów. W wybranych scenariuszach stosowana jest także replikacja typu peer-to-peer, przeznaczona dla bardziej wymagających układów równorzędnych i wymagająca szczególnej dyscypliny przy zapisie danych. Nie każda potrzeba synchronizacji oznacza konieczność użycia replikacji. Jeżeli wymagane jest wyłącznie zabezpieczenie przed utratą danych, odpowiedniejsza może być strategia kopii zapasowych. Gdy potrzebne jest raportowanie bez obciążania bazy operacyjnej, warto rozważyć osobny model analityczny. Replikacja jest najbardziej użyteczna wtedy, gdy dokładnie wiadomo, które dane mają być dostępne w innym miejscu, jak szybko powinny się pojawić i czy odbiorca ma prawo je zmieniać. SQL Server Replication i typowe problemy konfiguracyjneJednym z częstszych problemów jest narastające opóźnienie pomiędzy wydawcą a subskrybentem. Przyczyną może być duża liczba zmian, niewydolne zapytania, blokady, przeciążenie nośnika danych albo zbyt rzadko uruchamiany harmonogram. Sam fakt, że usługa działa, nie oznacza jeszcze, że dane są aktualne. Należy obserwować czas ostatniego poprawnego przekazania zmian, liczbę oczekujących poleceń oraz ewentualne błędy agentów. Problemy pojawiają się także wtedy, gdy struktura tabeli zostaje zmieniona bez uwzględnienia publikacji. Dodanie kolumny, zmiana typu danych, modyfikacja klucza lub usunięcie obiektu może wymagać odpowiedniej aktualizacji konfiguracji. W przeciwnym razie subskrybent może odrzucać polecenia albo przechowywać dane w układzie, który nie odpowiada źródłu. W replikacji transakcyjnej uwagę zwraca się na log transakcji oraz kolejkę poleceń oczekujących na przekazanie. Jeżeli log jest obcinany w sposób niezgodny z wymaganiami replikacji, część zmian może wymagać ponownego przygotowania. Z kolei w modelach, w których dane są modyfikowane w wielu lokalizacjach, należy rozstrzygać konflikty wynikające z jednoczesnej edycji tego samego rekordu. Bez ustalonej reguły może dojść do utraty jednej z wersji albo do powstania niespójnych informacji. Znaczenie mają również uprawnienia i komunikacja pomiędzy instancjami. Konto używane przez agenta musi mieć dostęp do właściwych baz, katalogów i udziałów, a zapora sieciowa nie może blokować wymaganych połączeń. Błąd uwierzytelniania, wygasłe hasło, niedostępny udział lub niezgodna nazwa instancji mogą zatrzymać przepływ danych mimo poprawnie utworzonej publikacji. SQL Server Replication w codziennej administracjiPrzed wdrożeniem warto opisać przepływ informacji prostym diagramem: skąd dane wychodzą, przez jaki element są przekazywane, dokąd trafiają i w którym miejscu mogą być modyfikowane. Następnie należy określić wymagany poziom aktualności. Inne ustawienia będą odpowiednie dla danych odświeżanych raz dziennie, a inne dla informacji, które powinny pojawić się u odbiorcy po krótkim czasie. Dobrym zwyczajem jest rozpoczęcie od niewielkiej publikacji testowej. Pozwala to sprawdzić obciążenie, zachowanie filtrów, działanie kont usługowych i reakcję na chwilową niedostępność odbiorcy. Po uruchomieniu środowiska produkcyjnego przydatne są regularne przeglądy historii agentów, kontrola miejsca na dysku oraz testy odtwarzania konfiguracji. Warto również dokumentować zmiany schematu, ponieważ późniejsze odtworzenie przyczyn rozbieżności bez takiej dokumentacji bywa czasochłonne. Monitorowanie powinno obejmować nie tylko komunikaty o błędach, ale też wskaźniki opóźnienia i rozmiar zalegających kolejek. Należy rozróżnić chwilową zwłokę od stałego narastania zaległości. Jeżeli odbiorca okresowo traci połączenie, można sprawdzić harmonogram i mechanizmy ponawiania. Jeżeli problem wynika z przeciążenia, potrzebna może być zmiana filtrów, podział publikacji, poprawa indeksów albo przeniesienie wybranych zadań na inną bazę. Bezpieczeństwo wymaga ograniczenia zakresu publikowanych danych, stosowania zasady najmniejszych uprawnień i ochrony kanałów komunikacyjnych. Nie powinno się udostępniać całej bazy tylko dlatego, że konfiguracja jest wtedy prostsza. Każdy artykuł powinien mieć uzasadnienie biznesowe, a dostęp subskrybenta powinien odpowiadać jego rzeczywistej funkcji. Szczególnej uwagi wymagają dane osobowe, informacje finansowe i rekordy, których powielanie podlega ograniczeniom organizacyjnym. SQL Server Replication a moment zgłoszenia problemuDo konsultacji warto zgłosić się wtedy, gdy zmiany przestają docierać do odbiorcy, opóźnienie systematycznie rośnie albo pojawiają się powtarzające komunikaty o błędach agentów. Sygnałem ostrzegawczym jest również różnica pomiędzy liczbą rekordów w źródle i miejscu docelowym, której nie można wyjaśnić filtrowaniem. Nie należy usuwać kolejki ani ponownie inicjalizować subskrypcji bez ustalenia przyczyny, ponieważ taka operacja może utrudnić analizę i wymusić ponowne przesłanie dużego zakresu danych. Przed przekazaniem zgłoszenia pomocne jest przygotowanie informacji o rodzaju replikacji, nazwach ról, czasie wystąpienia problemu, ostatniej poprawnej synchronizacji oraz komunikatach zapisanych w historii agentów. Przydatne bywają także dane o zmianach schematu, aktualizacjach systemu i ostatnich modyfikacjach uprawnień. Taki zestaw informacji ułatwia odróżnienie błędu konfiguracji od problemu z wydajnością, połączeniem lub integralnością danych. W przypadku trudności z działaniem bazy, synchronizacją albo konfiguracją środowiska można skorzystać z pomocy firmy Warszawskie Pogotowie Komputerowe 24/7. Przed rozpoczęciem prac analizuje się objawy, zależności pomiędzy bazami i wpływ ewentualnych zmian na istniejące dane, aby dobrać rozwiązanie do rzeczywistego sposobu użytkowania. |