2016-01-23 115 views
0

我們在我們的應用程序中使用了2個Postgres數據庫。一個用於交易,一個用於配置。我必須運行的sql查詢使用來自兩個數據庫的數據,而且是非常複雜的。Postgres數據庫複製

我正在使用dblink將數據從事務db複製到配置db,每小時使用基於事務條目時間戳的cron中運行的shell腳本。所以,我有一個數據庫(配置)的所有數據,並能夠輕鬆查詢。

但現在,如果事務在配置數據庫中複製後更新,我將不會有任何跟蹤。我在腳本中使用的查詢只是基於該小時的時間戳轉儲事務。

如果交易在13:30進來,那麼它將在14:00通過cron作業轉移,該作業將選擇時間戳≥13:00的交易 和< 14:00。但如果交易在14:05更新,我不會有任何跟蹤。

有什麼解決方法嗎?

+0

我無法理解您的問題。你開始談論模式,然後轉而談論單獨的數據庫。那麼你似乎建議你已經停止通過cron-job複製數據,但是不要提及你現在正在做什麼。 –

+0

對不起,誤導性的語言.....我仍然通過cron作業複製數據....但我怎樣才能得到配置數據庫中的事務複製在以前的時間段,但稍後得到更新。這是我最關心的問題。 – davyjones

回答

0

那麼,關鍵問題是,你如何識別事務數據庫中的更改(刪除呢?)行?如果答案是「我不」,那麼你有問題。

這聽起來像你正試圖建立一個自定義觸發器複製系統(檢出slony/londiste/bucardo)。儘管他們的表現比你想要的要高,但只需使用預先構建的工具就可以減少工作量。但是,如果你的數據庫相當接近(相同的機器或網絡),那麼可能需要測試一個Foreign Data Wrapper以提供從你的配置數據庫遠程訪問你的事務數據庫。這完全取決於您運行復雜查詢的頻率以及需要在兩個數據庫之間拖動多少數據才能進行維護。

從這裏開始查看PostgreSQL Replication的詳細資料。