PostgreSQL 沖突

2021-09-01 17:48 更新

邏輯復(fù)制的行為類似于正常的DML操作,即便數(shù)據(jù)在訂閱者節(jié)點本地被修改,邏輯復(fù)制也會根據(jù)收到的更改來更新數(shù)據(jù)。如果流入的數(shù)據(jù)違背了任何約束,復(fù)制將停止。這種情況被稱為一個沖突。在復(fù)制UPDATEDELETE操作時,缺失的數(shù)據(jù)將不會產(chǎn)生沖突并且這類操作將被簡單地跳過。

沖突將會產(chǎn)生錯誤并且停止復(fù)制,它必須由用戶手工解決。在訂閱者的服務(wù)器日志中可以找到有關(guān)沖突的詳細(xì)情況。

通過更改訂閱者上的數(shù)據(jù)(這樣它就不會與到來的數(shù)據(jù)發(fā)生沖突)或者跳過與已有數(shù)據(jù)沖突的事務(wù)可以解決這種沖突。通過調(diào)用pg_replication_origin_advance()函數(shù)可以跳過該事務(wù),函數(shù)的參數(shù)是對應(yīng)于該訂閱名稱的node_name以及一個位置。復(fù)制源頭的當(dāng)前位置可以在 pg_replication_origin_status 系統(tǒng)視圖中看到。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號