DB IMS - Ripristino

L'amministratore del database deve pianificare il ripristino del database in caso di errori di sistema. I guasti possono essere di molti tipi come arresti anomali dell'applicazione, errori hardware, interruzioni di corrente, ecc.

Approccio semplice

Alcuni semplici approcci al ripristino del database sono i seguenti:

  • Crea copie di backup periodiche di set di dati importanti in modo che tutte le transazioni registrate nei set di dati vengano conservate.

  • Se un set di dati è danneggiato a causa di un errore di sistema, il problema viene corretto ripristinando la copia di backup. Quindi le transazioni accumulate vengono nuovamente postate sulla copia di backup per aggiornarle.

Svantaggi dell'approccio semplice

Gli svantaggi dell'approccio semplice al ripristino del database sono i seguenti:

  • Ripubblicare le transazioni accumulate richiede molto tempo.

  • Tutte le altre applicazioni devono attendere l'esecuzione fino al termine del ripristino.

  • Il ripristino del database è più lungo del ripristino dei file, se sono coinvolte relazioni di indice logico e secondario.

Routine di terminazione anomale

Un programma DL / I si blocca in un modo diverso dal modo in cui un programma standard si blocca perché un programma standard viene eseguito direttamente dal sistema operativo, mentre un programma DL / I non lo è. Impiegando una routine di terminazione anomala, il sistema interferisce in modo che il ripristino possa essere eseguito dopo la fine anomala (ABEND). La routine di terminazione anomala esegue le seguenti azioni:

  • Chiude tutti i set di dati
  • Annulla tutti i lavori in sospeso nella coda
  • Crea un dump di archiviazione per scoprire la causa principale di ABEND

La limitazione di questa routine è che non garantisce se i dati in uso sono accurati o meno.

Registro DL / I

Quando un programma applicativo si interrompe, è necessario annullare le modifiche apportate dal programma applicativo, correggere l'errore e rieseguire il programma applicativo. Per fare ciò, è necessario disporre del registro DL / I. Ecco i punti chiave sulla registrazione DL / I:

  • Un DL / I registra tutte le modifiche apportate da un programma applicativo in un file noto come file di registro.

  • Quando il programma applicativo cambia un segmento, la sua immagine prima e dopo vengono create dal DL / I.

  • Queste immagini dei segmenti possono essere utilizzate per ripristinare i segmenti, nel caso in cui il programma applicativo si arresti in modo anomalo.

  • DL / I utilizza una tecnica chiamata registrazione write-ahead per registrare le modifiche al database. Con la registrazione write-ahead, una modifica del database viene scritta nel set di dati di log prima di essere scritta nel set di dati effettivo.

  • Poiché il registro è sempre in anticipo rispetto al database, le utilità di ripristino possono determinare lo stato di qualsiasi modifica al database.

  • Quando il programma esegue una chiamata per modificare un segmento di database, il DL / I si occupa della sua parte di registrazione.

Recupero: avanti e indietro

I due approcci al ripristino del database sono:

  • Forward Recovery - DL / I utilizza il file di registro per memorizzare i dati di modifica. Le transazioni accumulate vengono registrate nuovamente utilizzando questo file di registro.

  • Backward Recovery- Il ripristino all'indietro è noto anche come ripristino all'indietro. I record di log per il programma vengono letti all'indietro ei loro effetti vengono invertiti nel database. Quando il backout è completo, i database si trovano nello stesso stato in cui si trovavano prima dell'errore, supponendo che nessun altro programma applicativo abbia alterato il database nel frattempo.

Checkpoint

Un checkpoint è una fase in cui le modifiche al database eseguite dal programma applicativo sono considerate complete e accurate. Di seguito sono elencati i punti da notare su un checkpoint:

  • Le modifiche al database apportate prima del checkpoint più recente non vengono annullate dal ripristino a ritroso.

  • Le modifiche al database registrate dopo il checkpoint più recente non vengono applicate a una copia immagine del database durante il ripristino in avanti.

  • Utilizzando il metodo del punto di controllo, il database viene ripristinato alla sua condizione al punto di controllo più recente al termine del processo di ripristino.

  • L'impostazione predefinita per i programmi batch è che il checkpoint è l'inizio del programma.

  • Un checkpoint può essere stabilito utilizzando una chiamata checkpoint (CHKP).

  • Una chiamata di checkpoint causa la scrittura di un record di checkpoint nel registro DL / I.

Di seguito è mostrata la sintassi di una chiamata CHKP:

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

Esistono due metodi per il checkpoint:

  • Basic Checkpointing - Consente al programmatore di emettere chiamate di checkpoint che le utilità di ripristino DL / I utilizzano durante l'elaborazione del ripristino.

  • Symbolic Checkpointing- È una forma avanzata di checkpoint che viene utilizzata in combinazione con la funzionalità di riavvio estesa. Il checkpoint simbolico e il riavvio esteso insieme consentono al programmatore dell'applicazione di codificare i programmi in modo che possano riprendere l'elaborazione nel punto immediatamente successivo al checkpoint.