本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
處理主動-主動式複寫中的衝突
pgactive
延伸模組是在每個資料庫上運作,而不是每個叢集。使用 pgactive
的每個資料庫執行個體都是獨立的執行個體,可接受任何來源的資料變更。將變更傳送至資料庫執行個體時,PostgreSQL 會在本機上遞交該變更,然後使用 pgactive
以非同步方式將變更複寫到其他資料庫執行個體。當兩個 PostgreSQL 資料庫執行個體幾乎同時更新相同的記錄時,可能會發生衝突。
pgactive
延伸模組提供了衝突偵測和自動解決的機制。它會追蹤交易在兩個資料庫執行個體上得到認可的時間戳記,並自動套用具有最新時間戳記的變更。pgactive
延伸模組也會記錄 pgactive.pgactive_conflict_history
資料表中發生的衝突。
pgactive.pgactive_conflict_history
會持續成長。您可能想要定義清除政策。這可以透過定期刪除一些記錄或定義此關係的分割方案 (以及稍後分離、捨棄、截斷感興趣的分割區) 來完成。若要定期實作清除政策,其中一個選項是使用 pg_cron
延伸。如需使用 PostgreSQL pg_cron 擴充功能排程維護的pg_cron
歷史記錄資料表範例,請參閱下列資訊。