2012-05-30 39 views
0

這種情況是這樣的: 我有幾個,讓我們稱他們爲POS。 主服務器上有一個主數據庫,用於存放來自每個POS的所有特定數據。最初使所有點直接連接到主數據庫來存儲所有數據,但是現在我們需要允許pos工作,即使不能連接到主數據庫服務器。Postgresql複製 - 從db節點只複製到主分區

現在,我們正試圖實現某種複製,使我們可以讓個人POS將其數據保存到其數據庫,並在一段時間後將數據複製到主數據庫,但僅複製到主數據庫(而不是其他POS dbs)。 我們嘗試使用Bucardo,它可以工作,但是來自一個POS的數據被複制到所有節點(我認爲主 - 主複製)。

 mainDB 
pos1 pos2 ...posn 

每個pos db只關心其數據而不關心其他數據,而主DB關心來自每個節點的所有數據。

我對複製概念並不熟悉,並且無法理解此需求的正確設置。 非常感謝。

+0

每個POS是否有唯一的不同的數據集,或者它們是否都共享相同的數據庫,並且調用副本需要保持同步? –

+0

每個人都有一組不同的數據(例如銷售表中的銷售記錄),這些數據需要複製(異步)到保存來自每個pos的所有記錄的主數據庫。 –

+1

這聽起來似乎比複製軟件更適合備份軟件。您可以定期運行「pg_dump」的每個POS上都有cron作業,並將該文件傳輸到主文件。如果需要在主服務器上的PostgreSQL中訪問數據,則可以將數據作爲同一進程的一部分導入,或者通過主服務器上的單獨cron作業導入。如果你真的需要定期備份所有POS到中央位置,你可以考慮使用Amanda備份軟件 - 我們用它來自己備份PostgreSQL轉儲文件。 –

回答

1

你需要做的就是將表繼承與Slony,Bucardo等結合起來。在這種情況下,每個POS都有一個它擁有的用於數據插入目的的表的分區,並且它通過Slony(主 - 從,POS爲主,並且統一數據庫爲從屬)複製數據。

通過這種方式,您可能有表格發票和invoice_lines。對於每個POS,使用表繼承,每個主表db 中都有一個子表。