sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvordan behandler man distribueret transaktion i postgresql?

Det ser ud til, at du er lidt forvirret. Generelt understøtter databasesystemer to begreber om distribuerede transaktionstyper:

  • Native distribuerede transaktioner og
  • XA-transaktioner.

Native distribuerede transaktioner er generelt mellem forskellige servere af samme RDBMS. Postgres understøtter også dette med kommandoen dblink_exec. Generelt oprettes forbindelsen til den anden server af et såkaldt databaselink. Postgres er lidt mere klodset at bruge end nogle andre kommercielle RDBMS. Du skal først installere en udvidelse for at kunne bruge databaselinks. Men postgres rdbms administrerer transaktionen.

XA-transaktioner på den anden side administreres af den eksterne transaktionsmanager (TM), og hver af de deltagende databaser har rollen som en XA-ressource, som melder sig sammen med transaktionsadministratoren. RDBMS kan ikke længere selv bestemme, hvornår en transaktion skal udføres. Dette er opgaven for XA-transaktionslederen. Han bruger en 2PC-protokol for at sikre, at ændringerne anvendes eller rulles tilbage på en ensartet måde på tværs af databaserne.

På nogle operativsystemer som windows er en transaktionsmanager en del af operativsystemet på andre ikke. Generelt sendes java med en transaktionsadministrator, og den tilsvarende datakilde skal konfigureres til at bruge XA.




  1. vise data fra database til dropdown CodeIgniter

  2. PostgreSQL drop-begrænsning med ukendt navn

  3. Kan du bruge aggregerede værdier inden for ON DUPLICATE KEY

  4. Angivelse af flere en-til-mange-relationer mellem tabeller i Hibernate