sql >> Databáze >  >> RDS >> PostgreSQL

Jak zpracovat distribuovanou transakci v rámci postgresql?

Vypadá to, že jste trochu zmatení. Databázové systémy obecně podporují dva typy distribuovaných transakcí:

  • Nativní distribuované transakce a
  • Transakce XA.

Nativní distribuované transakce jsou obecně mezi různými servery stejného RDBMS. Postgres to také podporuje pomocí příkazu dblink_exec. Obecně se spojení s druhým serverem vytváří tzv. databázovým odkazem. Postgres je trochu nemotornější na použití než některé jiné komerční RDBMS. Abyste mohli používat databázové odkazy, musíte nejprve nainstalovat rozšíření. Transakci však spravuje postgres rdbms.

Na druhé straně transakce XA jsou spravovány externím správcem transakcí (TM) a každá ze zúčastněných databází má roli zdroje XA, který se zapojuje do správce transakcí. RDBMS se již nemůže sám rozhodnout, kdy provést transakci. To je úkolem správce transakcí XA. Používá protokol 2PC, aby zajistil, že změny budou aplikovány nebo vráceny konzistentním způsobem napříč databázemi.

Na některých operačních systémech, jako jsou Windows, je správce transakcí součástí operačního systému na jiných ne. Obecně je java dodávána se správcem transakcí a odpovídající zdroj dat musí být nakonfigurován pro použití XA.




  1. .NET CORE MySql MaxPoolSize není použito

  2. Jak opravit „PHP“ v Mac OS X (10.9.4)?

  3. Aktualizace poskytovatele dat Crystal Reports

  4. Připojení vs. dílčí dotaz