IMS DB - Récupération

L'administrateur de la base de données doit planifier la récupération de la base de données en cas de défaillance du système. Les pannes peuvent être de plusieurs types, telles que des pannes d'application, des erreurs matérielles, des pannes de courant, etc.

Approche simple

Voici quelques approches simples de la récupération de base de données:

  • Faites des copies de sauvegarde périodiques des ensembles de données importants afin que toutes les transactions publiées par rapport aux ensembles de données soient conservées.

  • Si un ensemble de données est endommagé en raison d'une défaillance du système, ce problème est corrigé en restaurant la copie de sauvegarde. Ensuite, les transactions accumulées sont republiées sur la copie de sauvegarde pour les mettre à jour.

Inconvénients de l'approche simple

Les inconvénients d'une approche simple de la récupération de base de données sont les suivants:

  • Re-comptabiliser les transactions accumulées prend beaucoup de temps.

  • Toutes les autres applications doivent attendre l'exécution jusqu'à ce que la récupération soit terminée.

  • La récupération de base de données est plus longue que la récupération de fichier, si des relations d'index logique et secondaire sont impliquées.

Routines de terminaison anormales

Un programme DL / I se bloque d'une manière différente de celle d'un programme standard car un programme standard est exécuté directement par le système d'exploitation, alors qu'un programme DL / I ne l'est pas. En employant une routine de terminaison anormale, le système interfère de sorte que la récupération peut être effectuée après la FIN ANORALE (ABEND). La routine de terminaison anormale effectue les actions suivantes -

  • Ferme tous les ensembles de données
  • Annule tous les travaux en attente dans la file d'attente
  • Crée un vidage de stockage pour découvrir la cause première de ABEND

La limitation de cette routine est qu'elle ne garantit pas si les données utilisées sont exactes ou non.

Journal DL / I

Lorsqu'un programme d'application ABEND, il est nécessaire d'annuler les modifications effectuées par le programme d'application, de corriger l'erreur et de réexécuter le programme d'application. Pour ce faire, il est nécessaire d'avoir le journal DL / I. Voici les points clés sur la journalisation DL / I -

  • Un DL / I enregistre toutes les modifications apportées par un programme d'application dans un fichier appelé fichier journal.

  • Lorsque le programme d'application change un segment, ses images avant et après sont créées par le DL / I.

  • Ces images de segment peuvent être utilisées pour restaurer les segments, en cas de panne du programme d'application.

  • DL / I utilise une technique appelée journalisation à écriture anticipée pour enregistrer les modifications de la base de données. Avec la journalisation à écriture anticipée, une modification de la base de données est écrite dans l'ensemble de données du journal avant d'être écrite dans l'ensemble de données réel.

  • Comme le journal est toujours en avance sur la base de données, les utilitaires de récupération peuvent déterminer l'état de toute modification de la base de données.

  • Lorsque le programme exécute un appel pour modifier un segment de base de données, le DL / I s'occupe de sa partie journalisation.

Récupération - avant et arrière

Les deux approches de récupération de base de données sont:

  • Forward Recovery - DL / I utilise le fichier journal pour stocker les données de modification. Les transactions accumulées sont republiées à l'aide de ce fichier journal.

  • Backward Recovery- La récupération en amont est également appelée récupération en arrière. Les enregistrements du journal du programme sont lus à l'envers et leurs effets sont inversés dans la base de données. Lorsque la sauvegarde est terminée, les bases de données sont dans le même état qu'avant l'échec, en supposant qu'aucun autre programme d'application n'a modifié la base de données entre-temps.

Point de contrôle

Un point de contrôle est une étape où les modifications de la base de données effectuées par le programme d'application sont considérées comme complètes et précises. Voici les points à noter sur un point de contrôle -

  • Les modifications apportées à la base de données avant le point de contrôle le plus récent ne sont pas annulées par la récupération arrière.

  • Les modifications de la base de données consignées après le point de contrôle le plus récent ne sont pas appliquées à une copie d'image de la base de données pendant la récupération aval.

  • À l'aide de la méthode du point de contrôle, la base de données est restaurée à son état au point de contrôle le plus récent lorsque le processus de récupération est terminé.

  • La valeur par défaut pour les programmes batch est que le point de contrôle est le début du programme.

  • Un point de contrôle peut être établi à l'aide d'un appel de point de contrôle (CHKP).

  • Un appel de point de contrôle entraîne l'écriture d'un enregistrement de point de contrôle dans le journal DL / I.

Ci-dessous, la syntaxe d'un appel CHKP -

CALL 'CBLTDLI' USING DLI-CHKP
                     PCB-NAME
                     CHECKPOINT-ID

Il existe deux méthodes de point de contrôle -

  • Basic Checkpointing - Il permet au programmeur d'émettre des appels de point de contrôle que les utilitaires de récupération DL / I utilisent pendant le traitement de récupération.

  • Symbolic Checkpointing- Il s'agit d'une forme avancée de point de contrôle qui est utilisée en combinaison avec la fonction de redémarrage étendu. Le point de contrôle symbolique et le redémarrage étendu permettent au programmeur d'application de coder les programmes afin qu'ils puissent reprendre le traitement au point juste après le point de contrôle.