IMS DB - Recuperação

O administrador do banco de dados precisa planejar a recuperação do banco de dados em caso de falhas do sistema. As falhas podem ser de vários tipos, como travamentos de aplicativos, erros de hardware, falhas de energia, etc.

Abordagem Simples

Algumas abordagens simples para recuperação de banco de dados são as seguintes -

  • Faça cópias de backup periódicas de conjuntos de dados importantes para que todas as transações postadas nos conjuntos de dados sejam retidas.

  • Se um conjunto de dados for danificado devido a uma falha do sistema, esse problema será corrigido com a restauração da cópia de backup. Em seguida, as transações acumuladas são postadas novamente na cópia de backup para serem atualizadas.

Desvantagens da abordagem simples

As desvantagens da abordagem simples para recuperação de banco de dados são as seguintes -

  • O reenvio das transações acumuladas consome muito tempo.

  • Todos os outros aplicativos precisam aguardar a execução até que a recuperação seja concluída.

  • A recuperação do banco de dados é mais longa do que a recuperação do arquivo, se relacionamentos lógicos e de índice secundário estiverem envolvidos.

Rotinas de rescisão anormais

Um programa DL / I trava de uma maneira diferente da forma como um programa padrão trava porque um programa padrão é executado diretamente pelo sistema operacional, enquanto um programa DL / I não é. Ao empregar uma rotina de encerramento anormal, o sistema interfere para que a recuperação possa ser feita após o FIM ANormal (ABEND). A rotina de encerramento anormal executa as seguintes ações -

  • Fecha todos os conjuntos de dados
  • Cancela todos os trabalhos pendentes na fila
  • Cria um dump de armazenamento para descobrir a causa raiz de ABEND

A limitação dessa rotina é que ela não garante se os dados em uso são precisos ou não.

Log DL / I

Quando um programa aplicativo é ABEND, é necessário reverter as alterações feitas pelo programa aplicativo, corrigir o erro e executar novamente o programa aplicativo. Para fazer isso, é necessário ter o log DL / I. Aqui estão os pontos principais sobre o registro DL / I -

  • Um DL / I registra todas as alterações feitas por um programa aplicativo em um arquivo conhecido como arquivo de log.

  • Quando o programa aplicativo altera um segmento, suas imagens anteriores e posteriores são criadas pelo DL / I.

  • Essas imagens de segmento podem ser usadas para restaurar os segmentos, no caso de o aplicativo travar.

  • DL / I usa uma técnica chamada log write-ahead para registrar as alterações do banco de dados. Com o log de write-ahead, uma alteração do banco de dados é gravada no conjunto de dados do log antes de ser gravada no conjunto de dados real.

  • Como o log está sempre à frente do banco de dados, os utilitários de recuperação podem determinar o status de qualquer alteração no banco de dados.

  • Quando o programa executa uma chamada para alterar um segmento de banco de dados, o DL / I cuida de sua parte de registro.

Recuperação - para frente e para trás

As duas abordagens de recuperação de banco de dados são -

  • Forward Recovery - DL / I usa o arquivo de log para armazenar os dados de alteração. As transações acumuladas são postadas novamente usando este arquivo de log.

  • Backward Recovery- A recuperação reversa também é conhecida como recuperação reversa. Os registros de log do programa são lidos de trás para frente e seus efeitos são revertidos no banco de dados. Quando a restauração for concluída, os bancos de dados estarão no mesmo estado em que estavam antes da falha, presumindo que nenhum outro programa de aplicativo alterou o banco de dados nesse meio tempo.

Checkpoint

Um ponto de verificação é um estágio em que as alterações do banco de dados feitas pelo programa aplicativo são consideradas completas e precisas. Listados abaixo estão os pontos a serem observados sobre um checkpoint -

  • As alterações do banco de dados feitas antes do ponto de verificação mais recente não são revertidas pela recuperação reversa.

  • As alterações do banco de dados registradas após o ponto de verificação mais recente não são aplicadas a uma cópia de imagem do banco de dados durante a recuperação direta.

  • Usando o método de ponto de verificação, o banco de dados é restaurado à sua condição no ponto de verificação mais recente quando o processo de recuperação é concluído.

  • O padrão para programas em lote é que o ponto de verificação é o início do programa.

  • Um ponto de verificação pode ser estabelecido usando uma chamada de ponto de verificação (CHKP).

  • Uma chamada de ponto de verificação faz com que um registro de ponto de verificação seja escrito no log DL / I.

Abaixo é mostrada a sintaxe de uma chamada CHKP -

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

Existem dois métodos de checkpoint -

  • Basic Checkpointing - Permite ao programador emitir chamadas de checkpoint que os utilitários de recuperação DL / I usam durante o processamento de recuperação.

  • Symbolic Checkpointing- É uma forma avançada de ponto de verificação usada em combinação com o recurso de reinicialização estendida. O ponto de verificação simbólico e a reinicialização estendida juntos permitem que o programador do aplicativo codifique os programas para que eles possam retomar o processamento no ponto logo após o ponto de verificação.