PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como processar transações distribuídas no postgresql?


Parece que você está um pouco confuso. Geralmente, os sistemas de banco de dados suportam duas noções de tipos de transações distribuídas:
  • Transações distribuídas nativas e
  • Transações XA.

As transações distribuídas nativas são geralmente entre diferentes servidores do mesmo RDBMS. O Postgres também suporta isso com o comando dblink_exec. Geralmente a conexão com o outro servidor é criada por um chamado link de banco de dados. O Postgres é um pouco mais desajeitado de usar do que outros RDBMS de nível comercial. Primeiro você precisa instalar uma extensão para poder usar links de banco de dados. No entanto, o postgres rdbms está gerenciando a transação.

As transações XA, por outro lado, são gerenciadas pelo gerenciador de transações externo (TM) e cada banco de dados participante tem a função de um recurso XA, que se inscreve no gerenciador de transações. O RDBMS não pode mais decidir quando confirmar uma transação. Essa é a tarefa do gerenciador de transações XA. Ele usa um protocolo 2PC para garantir que as alterações sejam aplicadas ou revertidas de maneira consistente nos bancos de dados.

Em alguns sistemas operacionais, como o Windows, um gerenciador de transações faz parte do sistema operacional em outros não. Geralmente, o java é fornecido com um gerenciador de transações e a fonte de dados correspondente precisa ser configurada para usar o XA.