PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Đồng bộ hóa 2 cơ sở dữ liệu, một cơ sở dữ liệu không thể cam kết

Vì bạn muốn thực hiện giao dịch phân tán , bạn cần giao thức cam kết hai giai đoạn .

Bạn bắt đầu giao dịch trên cả hai cơ sở dữ liệu như bình thường, nhưng thay vì cam kết chúng, bạn chạy

PREPARE TRANSACTION 'some_name';

Điều này thực hiện mọi thứ có thể thất bại trong quá trình cam kết và tiếp tục các giao dịch. Khi đã thành công, bạn chạy như sau trên cả hai cơ sở dữ liệu:

COMMIT PREPARED 'some_name';

để thực hiện các giao dịch.

Nếu bất cứ điều gì không thành công trong quá trình PREPARE TRANSACTION , bạn chạy như sau để thoát khỏi các giao dịch đã được chuẩn bị sẵn:

ROLLBACK PREPARED 'some_name';

Lưu ý rằng bạn cần phần mềm quản lý transacrion nếu bạn sử dụng các giao dịch đã chuẩn bị để mọi giao dịch đã chuẩn bị bị bỏ lại sau sự cố hoặc sự cố không mong muốn khác đều được dọn dẹp một cách đáng tin cậy. Các giao dịch đã chuẩn bị trước không được cam kết hoặc quay trở lại sẽ tồn tại mãi mãi và chắc chắn tuyệt đối sẽ phá vỡ cơ sở dữ liệu của bạn.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hàm trong PostgreSQL để chèn từ bảng này sang bảng khác?

  2. Làm cách nào để xóa tất cả các khoảng trắng khỏi một trường trong cơ sở dữ liệu Postgres trong một truy vấn cập nhật?

  3. Chuyển đổi tệp kết xuất SQLITE SQL sang POSTGRESQL

  4. Làm thế nào để lấy bản ghi Đầu tiên và Cuối cùng từ một truy vấn sql?

  5. java.io.IOException:Chuỗi UTF-8 bất hợp pháp:byte ban đầu là 11111xxx:252 - Eclipse và PostgreSQL