2 - Recuperação em sistemas de múltiplos bancos de dados

Até aqui, assumimos implicitamente que uma transação acessa um único banco de dados. Em alguns casos, uma única transação, chamada transação multibanco de dados, pode exigir acesso a vários bancos de dados.

Esses bancos de dados podem ainda ser armazenados em diferentes tipos de SGBDs; por exemplo, alguns SGBDs podem ser relacionais, enquanto outros são orientados a objeto, hierárquicos ou de rede. Nesse caso, cada SGBD envolvido na transação multibanco de dados pode ter a própria técnica de recuperação e gerenciador de transação separados daqueles dos outros SGBDs. Essa situação é um tanto quanto semelhante ao caso de um sistema de gerenciamento de banco de dados distribuído, em que partes do banco de dados residem em diferentes locais que estão conectados por uma rede de comunicação.

Para manter a atomicidade de uma transação multibanco de dados, é preciso ter um mecanismo de recuperação de dois níveis. Um gerenciamento de recuperação global, ou coordenador, é necessário para manter informações usadas para recuperação, além dos gerenciadores de recuperação local e as informações que eles mantêm (log, tabelas).

O coordenador costuma seguir um protocolo chamado protocolo de confirmação em duas fases, cujas fases podem ser indicadas da seguinte forma:

  1. Fase 1.
  2. Fase 2.
O efeito final do protocolo de confirmação em duas fases é que ou todos os bancos de dados participantes confirmam o efeito da transação ou nenhum deles o faz.

Caso qualquer um dos participantes — ou o coordenador — falhe, sempre é possível recuperar para um estado em que ou a transação é confirmada ou ela é revertida. Uma falha durante ou antes da Fase 1 normalmente requer que a transação seja revertida, enquanto uma falha durante a Fase 2 significa que uma transação bem-sucedida pode se recuperar e ser confirmada.

Copyright © 2016 AIEC.