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:
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.
Quando todos os bancos de dados participantes sinalizam ao coordenador que a parte da transação multibanco de dados que envolve cada um tiver sido concluída, o coordenador envia uma mensagem de preparação para confirmação a cada participante, para que se preparem para confirmar a transação. Cada banco de dados participante, ao receber essa mensagem, forçará a gravação de todos os registros do log e as informações necessárias para a recuperação local em disco, e depois enviará um sinal pronto para confirmação ou OK ao coordenador. Se a gravação forçada em disco falhar ou a transação local não puder confirmar por alguma razão, o banco de dados participante enviará um sinal não posso confirmar ou não OK ao coordenador. Se o coordenador não receber uma resposta do banco de dados dentro de certo limite de tempo, ele assume uma resposta não OK.
XSe todos os bancos de dados participantes responderem OK e o voto do coordenador também for OK, a transação terá sido bem-sucedida, e o coordenador envia um sinal de confirmação para a transação aos bancos de dados participantes. Como todos os efeitos locais da transação e as informações necessárias para a recuperação local foram registrados nos logs dos bancos de dados participantes, a recuperação da falha agora é possível. Cada banco de dados participante completa a confirmação da transação ao gravar uma entrada (commit) para a transação no log e ao atualizar permanentemente o banco de dados, se necessário. Contudo, se um ou mais dos bancos de dados participantes ou o coordenador tiverem uma resposta não OK, a transação terá falhado, e o coordenador enviará uma mensagem para reverter ou UNDO (desfazer) o efeito local da transação a cada banco de dados participante. Isso é feito ao desfazer as operações da transação, usando o log.
X