2011-11-29 103 views
1

我將有幾個非始終連接的客戶端與具有postgres後端的N層應用程序。數據庫記錄的事務日誌(批量更新)

其中一些客戶可能會比其他客戶晚一些。這是爲了銷售點設置。

我的桌子數量很少,只有customers, orders, orders_details, products, inventory和一些配置表。

我想提供一種可靠的方式來更新設備,當他們連接到主服務器時,複製和應用更改。

我懷疑事務日誌是最好的方法,但我不知道它是如何做到的。

我認爲在這兩個客戶端創建一個表&服務器的:

OperationType | UserId | TimeStamp | Source | JsonData 

但我不知道到底如何着手。是否有我可以看到的示例實現?我不想要一個像Sync Framework這樣重的通用解決方案。另外,我需要從obj-c,python客戶端訪問服務器 - 服務器是.net。

客戶需要獨立操作,所以我不能保留記錄。

回答

0

在PostgreSQL上,最好的方法是使用Slony處理實際的更新(允許異步/脫機方法),然後區分數據輸入到主服務器和授權信息以用於應用程序。在這種結構中:

  1. 每個服務器都有自己的飼料表,它寫入,並與普通操作過程中的主要數據表一起查詢這些。

  2. 每個服務器都將其供稿表複製到主服務器供稿表的分區,然後使用觸發器將此數據複製到主表中,並複製到所有客戶端。子數據庫(如果我們可以調用它的話)然後在可以確認複製兩種方式都成功後截斷供稿表。