Udostępnij przez


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:

  1. tabela T1 jest śledzone zmiany i minimalna wersja obowiązująca dla tabela wynosi 50.

  2. A klient aplikacji synchronizuje dane z szybkością 100 wersja i otrzymuje informacje o wszystkich zmian między wersjami 50 do 100.

  3. Dodatkowe zmiany do tabela T1 po wersja 100.

  4. 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.

  5. T1 jest aktualizowana wiele razy.Przesuwa to bieżąca wersja 130.

  6. 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.