PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak przetwarzać transakcje rozproszone w ramach postgresql?

Wygląda na to, że jesteś trochę zdezorientowany. Generalnie systemy baz danych obsługują dwa pojęcia rozproszonych typów transakcji:

  • Natywne transakcje rozproszone i
  • Transakcje XA.

Transakcje rozproszone natywne są zazwyczaj dokonywane między różnymi serwerami tego samego RDBMS. Postgres obsługuje to również za pomocą polecenia dblink_exec. Generalnie połączenie z drugim serwerem jest tworzone przez tzw. łącze do bazy danych. Postgres jest nieco bardziej nieporadny w użyciu niż inne komercyjne systemy zarządzania bazami danych. Najpierw musisz zainstalować rozszerzenie, aby móc korzystać z łączy do bazy danych. Jednak postgres rdbms zarządza transakcją.

Z drugiej strony transakcje XA są zarządzane przez zewnętrznego menedżera transakcji (TM), a każda z uczestniczących baz danych pełni rolę zasobu XA, który łączy się z menedżerem transakcji. RDBMS nie może już sam decydować, kiedy zatwierdzić transakcję. To jest zadanie menedżera transakcji XA. Używa protokołu 2PC, aby upewnić się, że zmiany są stosowane lub cofane w spójny sposób w bazach danych.

W niektórych systemach operacyjnych, takich jak Windows, menedżer transakcji jest częścią systemu operacyjnego, w innych nie. Zazwyczaj java jest dostarczana z menedżerem transakcji, a odpowiednie źródło danych musi być skonfigurowane do korzystania z 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. Czy istnieje sposób na zdefiniowanie nazwanej stałej w zapytaniu PostgreSQL?

  2. Wybrane ustawienie LC_CTYPE wymaga kodowania LATIN1

  3. Sqlalchemy:dodatkowa aktualizacja relacji

  4. aktualizowanie istniejących rekordów o unikalną liczbę całkowitą

  5. Używanie LENGTH (kolumna wyliczana) w ORDER BY w Postgres sql