PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да обработвам разпределена транзакция в postgresql?

Изглежда, че сте малко объркан. Обикновено системите за бази данни поддържат две понятия за типове разпределени транзакции:

  • Нативни разпределени транзакции и
  • XA транзакции.

Родните разпределени транзакции обикновено са между различни сървъри на една и съща RDBMS. Postgres също поддържа това с командата dblink_exec. Обикновено връзката към другия сървър се създава чрез така наречената връзка към база данни. Postgres е малко по-тромав за използване от някои други търговски клас RDBMS. Първо трябва да инсталирате разширение, за да можете да използвате връзки към бази данни. Postgres rdbms обаче управлява транзакцията.

XA транзакциите от друга страна се управляват от външния мениджър на транзакции (TM) и всяка от участващите бази данни има ролята на XA ресурс, който се включва в мениджъра на транзакции. RDBMS вече не може да реши сама кога да извърши транзакция. Това е задачата на XA транзакционния мениджър. Той използва 2PC протокол, за да се увери, че промените се прилагат или връщат назад по последователен начин в базите данни.

При някои операционни системи, като Windows, мениджърът на транзакции е част от операционната система, при други не. Обикновено java се доставя с мениджър на транзакции и съответният източник на данни трябва да бъде конфигуриран да използва XA.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да напиша функция, която връща текстови или целочислени стойности?

  2. Обхват за незадължителна връзка has_one със себе си

  3. Rails 3 игнорира изключение за уникално ограничение на Postgres

  4. Как да се посочи, че дадена колона не е nullable при създаване на материализиран изглед?

  5. НЕ МОЖЕ ДА СЕ ПРЕДОСТАВЯ СЪЗДАВАНЕ НА ИЗГЛЕД НА СХЕМА