Postgresql
教 Slony 複製選擇從節點
db cluster 中有一個最多有 256 個節點的系統。我們需要將其中一個數據複製到所有其他數據。但是對於要複製的每一行,都有一個必須複製的節點列表,而在其他節點上,同一行在沒有父表鍵的情況下成為孤立行。為了過濾掉它們,或者防止它們進行不必要的複制,我試圖找到一種方法來教 Slony 選擇要複製的節點,但是找不到這樣的功能現成可用。有沒有人嘗試過(自定義其功能的原始碼等)?
_id,_text,_nodes ---------------- 1 'one' {1,101} 2 'two' {2,102} 256 '...' {0,256}
然後將行 id=1 複製到節點 1 和 101 等。
類似的討論僅將重要記錄複製到特定數據庫,但還沒有指向正確的方向。
我看不到直接執行此操作的方法。據我了解,Slony 在表而不是行級別上設置複製目標。
我將如何解決這個特定問題是基於複製目標組具體化視圖,然後使用觸發器來維護這些視圖。然後 Slony 應該能夠將這些表複製到從屬伺服器。我不知道您是否可以在填充主表的從屬伺服器上設置觸發器,但如果沒有,有辦法解決這個問題。這需要將初始表與複製分離,當然會增加一些複雜性。
我能夠通過使用推拉隊列模式的 PGQ 來實現這一點。最大的挑戰是正確地對消費者進行程式,但現在效果很好!也比斯隆快。