Change Tracking and Data Restore
Aplikacje, które wymagają synchronizacji należy wziąć pod uwagę przypadek, w którym bazy danych zawierającej zmienić włączone śledzenie powraca do wcześniejszej wersja danych.Taka sytuacja może wystąpić, gdy baza danych zostanie przywrócony z kopia zapasowa po pracy awaryjnej w celu dublowania asynchronicznego bazy danych lub gdy występuje błąd podczas korzystania z wysyłanie dziennika.W poniższym scenariuszu ilustruje problemu:
tabela T1 jest śledzone zmiany i minimalna wersja obowiązująca dla tabela wynosi 50.
A klient aplikacji synchronizuje dane z szybkością 100 wersja i otrzymuje informacje o wszystkich zmian między wersjami 50 do 100.
Dodatkowe zmiany do tabela T1 po wersja 100.
W wersja 120 awarii i administrator bazy danych przywraca bazę danych o utracie danych.Po zakończeniu operacji przywracanie w tabela zawiera dane się przy użyciu wersji 70 i minimalna wersja zsynchronizowanych nadal wynosi 50.
Oznacza to, że magazyn zsynchronizowanych danych ma dane, które już nie istnieje w magazynie danych podstawowych.
T1 jest aktualizowana wiele razy.Przesuwa to bieżąca wersja 130.
Aplikacja kliencka synchronizuje je ponownie i dostarcza synchronizowane ostatnią wersja 100.Klient pomyślnie sprawdza tego numeru, ponieważ 100 jest większa niż 50.
Klient uzyskuje zmiany między wersja 100 i 130.Klient nie jest w tym momencie pamiętać, ż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 z punktem po jej zastosowaniu 100, będzie żadnych problemów z synchronizacją.Klient i serwer będzie danych poprawnie synchronizowane podczas następnego interwału synchronizacji.
Śledzenie zmian nie przewiduje obsługi odzyskiwania z utratą danych.Istnieją jednak dwie opcje służące do wykrywania tych typów problemów związanych z synchronizacją:
Przechowywanie IDENTYFIKATORA wersja bazy danych na serwerze, a następnie aktualizuj tę wartość za każdym razem, gdy baza danych jest odzyskiwana lub w przeciwnym razie utraty danych.Każda aplikacja klienta będzie przechowywać identyfikator, a każdy klient musi podczas jej synchronizuje dane poprawności o tej NAZWIE.Jeżeli występuje utrata danych, nie będą zgodne identyfikatory i klienci mogą ponownie zainicjować.Jeden wadą jest to utracie danych nie miał przekraczane ostatniego granicę zsynchronizowane, klient może wykonać reinicjowanie niepotrzebne.
Gdy klient żąda od zmian, należy zarejestrować ostatni numer wersja synchronizacji dla każdego klienta na serwerze.Jeśli występuje problem z danymi, ostatnie numery wersja zsynchronizowanych czy nie odpowiadać.Oznacza to, że reinicjowanie jest wymagany.