Śledzenie zmian i przywracania danych
Aplikacje, które wymagają synchronizacji należy rozważyć przypadek, w którym baza danych o zmienić włączone jest śledzenie przywraca starszą wersja danych.Taka sytuacja może wystąpić po przywróceniu bazy danych z kopia zapasowa po pracy awaryjnej w celu dublowania asynchronicznego bazy danych lub występuje błąd podczas korzystania z wysyłanie dziennika.Następujący scenariusz ilustruje problem:
Tabela T1 jest śledzone zmiany i minimalna wersja obowiązująca dla tabeli jest 50.
A klient aplikacji synchronizuje dane z szybkością 100 wersja i uzyskuje informacje o wszystkich zmianach między wersjami 50 i 100.
Dodatkowe zmiany do tabela T1 po wersja 100.
W wersja 120 awarii i administrator bazy danych przywraca bazę danych z utratą danych.Po zakończeniu operacji przywracanie w tabela zawierającej dane w górę poprzez wersja 70 i minimalna wersja zsynchronizowanych nadal wynosi 50.
Oznacza to, że magazyn zsynchronizowanych danych ma już nie istnieje w magazynie danych podstawowych danych.
T1 jest aktualizowany wiele razy.Bieżąca wersja spada do 130.
Aplikacja klient ponownie synchronizuje i dostarcza synchronizowane ostatnią wersja 100.Klient pomyślnie sprawdza tego numeru, ponieważ 100 jest większa niż 50.
Klient uzyskuje zmian wersja 100 i 130.W tym momencie klient nie jest świadomy, że zmiany od 70 do 100 nie są takie same jak poprzednio.Dane klient i serwerze nie są zsynchronizowane.
Należy zauważyć, że jeśli baza danych została odzyskana do punktu po 100 wersja, nie będzie żadnych problemów z synchronizacją.Klient i serwer czy synchronizacja danych poprawnie podczas następnego interwału synchronizacji.
Śledzenie zmian nie zapewnia obsługi odzyskiwania przed utratą danych.Istnieją dwie opcje wykrywania tego typu problemów synchronizacji:
Przechowywanie Identyfikatora wersja bazy danych na serwerze i Aktualizuj tę wartość, gdy baza danych jest odzyskiwana lub inaczej utraci dane.Każda aplikacja klient będzie przechowywać identyfikator i musiałaby podczas jej synchronizuje dane poprawności ten identyfikator każdego klient.Jeżeli występuje utrata danych, nie będą zgodne identyfikatory i klientów będzie ponownie zainicjować.Wadą jest utraty danych nie były przekraczane ostatniego granicę zsynchronizowane, klient może wykonać niepotrzebne ponownego zainicjowania.
Klient kwerendę dotyczącą zmian, rekord numer wersja ostatniej synchronizacji dla każdego klienta na serwerze.Jeśli występuje problem z danymi, ostatnie numery wersja zsynchronizowane nie zostałby dopasowany.Wskazuje, że wymagane jest ponownego inicjowania.