Udostępnij za pośrednictwem


Ś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:

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

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

  3. Dodatkowe zmiany do tabela T1 po wersja 100.

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

  5. T1 jest aktualizowany wiele razy.Bieżąca wersja spada do 130.

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