在兩個不同的 PostgreSQL 數據庫服務器中更新數據 (Update data in two differents PostgreSQL database servers)


問題描述

在兩個不同的 PostgreSQL 數據庫服務器中更新數據 (Update data in two differents PostgreSQL database servers)

我有 2 個不同的應用程序(Web 應用程序和桌面應用程序),它們具有不同的數據庫服務器但結構相同。

我希望所有數據庫中的數據都相同,無論用戶在哪裡插入/更新/刪除記錄。這對我來說是最簡單的,但我認為不是最佳的。

因此,例如,如果我在桌面應用程序中插入一條記錄,則該記錄必須插入到 Web 應用程序服務器中("雲”),反之亦然。

我正在為 Web 應用程序使用 Spring+Hibernate+PostgreSQL,為桌面應用程序使用 JavaFX+Hibernate+PostgreSQL。

我正在考慮 2目前的選項:

  • 每次插入/刪除/更新記錄時,使用套接字在服務器之間發送消息。

  • 在 PostgreSQL 中使用觸發器和外部數據包裝器。我對此不太熟悉,所以我不知道我是否可以使用此選項製作我想要的東西。他們可以一起工作嗎?

還有其他選擇嗎?你認為什麼是最好的?


參考解法

方法 1:

The simplest and maybe best solution is to have one central read‑write database and several physical replication standbys.

The standby servers will be physical copies of the main database, and you can read from them (but not modify data).

(by jdbg91Laurenz Albe)

參考文件

  1. Update data in two differents PostgreSQL database servers (CC BY‑SA 2.5/3.0/4.0)

#database-replication #java #postgresql






相關問題

C# 移動設備應用程序中的 SQL 複製 (SQL Replication in C# mobile device application)

在主文件日誌中獲得最後位置(MySQL 複製)? (Getting last position in master-file-log (MySQL replication)?)

複製集同步時發生Mongod慢查詢 (Mongod slow query be happend when replicate set sync)

sql server 2005 複製文章衝突 (sql server 2005 replication article conflict)

SQL 合併複製中“邏輯記錄”的未來 (Future of "Logical Records" in SQL Merge Replication)

GAE:關於高複制數據的使用 (GAE: About the Usage of High Replication Data)

在兩個不同的 PostgreSQL 數據庫服務器中更新數據 (Update data in two differents PostgreSQL database servers)

刪除 Datastax Advanced Replication 生成的重新日誌 (Deleting replogs generated by Datastax Advanced Replication)

我們可以在不同版本的 marklogic 之間進行森林或數據複製嗎? (Can we have forests or data replication between different versions of marklogic?)

MongoDB Atlas 輔助分片保持空閒 (MongoDB Atlas secondary shards remain idle)

升級過程中從 5.6 到 5.7 的 AWS RDS MySQL 複製 (AWS RDS MySQL replication from 5.6 to 5.7 during the upgrade process)

我可以編寫一個 activerecord 範圍,在查詢時將結果包裝在一個塊中嗎? (Can I write an activerecord scope which wraps the result in a block at query time?)







留言討論