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-IDIstnieją 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.