IMS DB - odzyskiwanie
Administrator bazy danych musi zaplanować przywrócenie bazy danych w przypadku awarii systemu. Awarie mogą być różnego rodzaju, takie jak awarie aplikacji, błędy sprzętowe, awarie zasilania itp.
Proste podejście
Oto kilka prostych podejść do odzyskiwania bazy danych:
Wykonuj okresowe kopie zapasowe ważnych zbiorów danych, aby zachować wszystkie transakcje zaksięgowane na tych zbiorach.
Jeśli zbiór danych zostanie uszkodzony w wyniku awarii systemu, problem zostanie rozwiązany poprzez przywrócenie kopii zapasowej. Następnie zgromadzone transakcje są ponownie księgowane w kopii zapasowej w celu ich aktualizacji.
Wady prostego podejścia
Wady prostego podejścia do odzyskiwania bazy danych są następujące:
Ponowne zaksięgowanie skumulowanych transakcji zajmuje dużo czasu.
Wszystkie inne aplikacje muszą czekać na wykonanie do zakończenia odzyskiwania.
Odzyskiwanie bazy danych jest dłuższe niż odzyskiwanie plików, jeśli występują relacje między indeksami logicznymi i pomocniczymi.
Nieprawidłowe procedury zakończenia
Program DL / I ulega awarii w sposób inny niż zwykły program, ponieważ program standardowy jest wykonywany bezpośrednio przez system operacyjny, podczas gdy program DL / I nie. Stosując procedurę nieprawidłowego zakończenia, system zakłóca działanie, tak że przywrócenie może nastąpić po wystąpieniu nieprawidłowego zakończenia (ABEND). Nieprawidłowa procedura zakończenia wykonuje następujące czynności -
- Zamyka wszystkie zbiory danych
- Anuluje wszystkie oczekujące zadania w kolejce
- Tworzy zrzut pamięci, aby znaleźć główną przyczynę ABEND
Ograniczeniem tej procedury jest to, że nie gwarantuje ona, czy używane dane są dokładne, czy nie.
Dziennik DL / I
Kiedy aplikacja działa ABEND, konieczne jest cofnięcie zmian wprowadzonych przez aplikację, poprawienie błędu i ponowne uruchomienie aplikacji. Aby to zrobić, wymagane jest posiadanie dziennika DL / I. Oto kluczowe punkty dotyczące rejestrowania DL / I -
DL / I rejestruje wszystkie zmiany wprowadzone przez aplikację w pliku, który jest nazywany plikiem dziennika.
Kiedy aplikacja zmienia segment, jego obraz przed i po są tworzone przez DL / I.
Te obrazy segmentów mogą służyć do przywracania segmentów w przypadku awarii aplikacji.
DL / I używa techniki zwanej rejestrowaniem z wyprzedzeniem do rejestrowania zmian w bazie danych. W przypadku rejestrowania z wyprzedzeniem zmiana bazy danych jest zapisywana w zestawie danych dziennika, zanim zostanie zapisana w rzeczywistym zestawie danych.
Ponieważ dziennik jest zawsze przed bazą danych, narzędzia do odtwarzania mogą określić stan każdej zmiany w bazie danych.
Gdy program wykonuje wywołanie zmiany segmentu bazy danych, DL / I zajmuje się jego częścią rejestrującą.
Odzyskiwanie - do przodu i do tyłu
Dwa podejścia do odzyskiwania bazy danych to:
Forward Recovery - DL / I używa pliku dziennika do przechowywania danych zmian. Skumulowane transakcje są ponownie księgowane przy użyciu tego pliku dziennika.
Backward Recovery- Odzyskiwanie wstecz jest również znane jako odzyskiwanie po wycofaniu. Rekordy dziennika programu są odczytywane wstecz, a ich skutki są odwracane w bazie danych. Po zakończeniu wycofywania bazy danych są w tym samym stanie, w jakim były przed awarią, przy założeniu, że w międzyczasie żadna inna aplikacja nie zmieniła bazy danych.
Punkt kontrolny
Punkt kontrolny to etap, na którym zmiany w bazie danych wprowadzone przez aplikację są uważane za kompletne i dokładne. Poniżej wymienione są punkty, na które należy zwrócić uwagę na temat punktu kontrolnego -
Zmiany bazy danych wprowadzone przed najnowszym punktem kontrolnym nie są cofane przez odtwarzanie wstecz.
Zmiany bazy danych zarejestrowane po ostatnim punkcie kontrolnym nie są stosowane do kopii obrazu bazy danych podczas odzyskiwania do przodu.
Za pomocą metody punktu kontrolnego baza danych jest przywracana do stanu z ostatniego punktu kontrolnego po zakończeniu procesu odzyskiwania.
Domyślnie dla programów wsadowych punkt kontrolny jest początkiem programu.
Punkt kontrolny można ustanowić za pomocą wywołania punktu kontrolnego (CHKP).
Wywołanie punktu kontrolnego powoduje zapisanie rekordu punktu kontrolnego w dzienniku DL / I.
Poniżej przedstawiono składnię wywołania CHKP -
CALL 'CBLTDLI' USING DLI-CHKP
PCB-NAME
CHECKPOINT-ID
Istnieją dwie metody punktów kontrolnych -
Basic Checkpointing - Pozwala programiście na wysyłanie wywołań punktów kontrolnych, których narzędzia odzyskiwania DL / I używają podczas przetwarzania odzyskiwania.
Symbolic Checkpointing- Jest to zaawansowana forma punktów kontrolnych, która jest używana w połączeniu z rozszerzoną funkcją restartu. Symboliczne punkty kontrolne i rozszerzony restart pozwalają programiście aplikacji zakodować programy tak, aby mogły wznowić przetwarzanie w punkcie tuż po punkcie kontrolnym.