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.