Julgue os seguintes itens, no que se refere ao banco de dado...

Próximas questões
Com base no mesmo assunto
Q402754 Banco de Dados
Julgue os seguintes itens, no que se refere ao banco de dados Oracle.

O Oracle utiliza um protocolo de confirmação em duas fases para lidar com transações distribuídas concorrentes.
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa Correta: C - certo

O protocolo de confirmação em duas fases, conhecido em inglês como Two-phase Commit (2PC), é um algoritmo utilizado em sistemas de banco de dados distribuídos, como o Oracle, para garantir a integridade das transações que envolvem múltiplas bases de dados possivelmente armazenadas em diferentes locais (nós). Este protocolo é parte essencial para assegurar o conceito de atomicidade em transações distribuídas.

O 2PC funciona basicamente em duas etapas:

  • Fase 1 - Prepare: O coordenador de transações solicita aos nós participantes que preparem a transação. Cada nó verifica se pode commitar a transação e responde com um acordo (vote commit) ou desacordo (vote abort).
  • Fase 2 - Commit/Rollback: Após receber todos os votos, se todos foram commit, o coordenador envia um comando de commit. Se algum voto foi abort, um comando de rollback é enviado.

A confirmação em duas fases é crucial para manter a consistência dos dados, evitando situações onde parte das bases de dados teria a transação realizada (commit) e outra parte não, o que poderia causar discrepâncias e erros no banco de dados. Portanto, a afirmação de que o Oracle utiliza um protocolo de confirmação em duas fases para lidar com transações distribuídas concorrentes é correta, pois reflete a capacidade do banco de dados de realizar transações atômicas e consistentes em um ambiente distribuído.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Two-phase-commit ?

Sim, trata-se do Commit em duas fases (Two-phase-Commit): Um mecanismo de commit em duas fases garante que todos os servidores de banco de dados que participam de uma transação distribuída tenham o commit ou rollback da transação.

Bons estudos!

Uma transação distribuida envolve atualizacoes a 2 ou mais BDs, eh projetada por programadores e envolve o uso de links entre BDs. Nesse caso, o COMMIT instrui os BD a confirmarem a transacao(q consiste em ambas as instrucoes). O COMMIT em cada BD deve ser coordenado: se um falhar e o outro for bem sucedido, os dados globais estariam em um estado insonsistente. Um COMMIT de duas fases prepara cada BD instruindo seus LGWRs(escritores de logs) para fazer flush do buffer de log para o disco(1 fase), e uma vez q isso eh confirmado, a transacao eh marcada como confirmada em todos os lugares(a 2 fase). Se algo sair errado em algum lugar entre as 2 fases, o RECO assume o controle para cancelar o COMMIT e fazer um ROLLBACK do trabalho em todos os BDs.

De modo grosseiro e pelo que entendi:
É como em um casamento comunitário, o qual o padre (ou pastor) conversa com os noivos presentes perguntando se realmente tem certeza (Fase 1: Preparação) que querem se casar. No cenário feliz, todos confirmam que "sim" e então a cerimônia ocorre com 100% de sucesso (Fase 2: Resolução). Contudo, caso algum dos noivos desista, ocorre a interrupção do processo.

Commit em duas fases refere-se a uma transação que pode utilizar dois ou mais bancos de dados (multi-database), que podem estar localizados em servidores diferentes. 

Durante uma transação em bancos com essa característica garante-se que o Commit seja realizado em todos os bancos participantes ou em nenhum, ou seja, ou grava tudo ou não grava nada.

Por exemplo, se sua aplicação atualiza dados em 2 banco de dados e você faz um commit, o recurso de commit em duas fases previne situações como a de um dos bancos ficar indisponível e suas mudanças serem atualizadas somente em um dos bancos envolvidos.


http://www.planetadelphi.com.br/dica/1222/o-que-e-o-commit-em-duas-fases

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo