天天看點

PostgreSQL 10.1 手冊_部分 III. 伺服器管理_第 31 章 邏輯複制_31.5. 架構

31.5. 架構

31.5.1. 初始快照

邏輯複制首先複制釋出者資料庫上的資料快照。一旦完成, 釋出者的變化就會實時發送給訂閱者。訂閱者按照釋出者送出的順序應用資料, 以確定任何單個訂閱中的釋出的事務一緻性。

邏輯複制采用類似于實體流式複制的體系結構(請參見 

第 26.2.5 節

)。它是通過“walsender” 和“apply”程序實作的。walsender程序啟動WAL的邏輯解碼 (在

第 48 章

中描述),并加載标準的邏輯解碼插件 (pgoutput)。該插件将從WAL讀取的更改轉換為邏輯複制協定 (請參閱

第 52.5 節

), 并根據釋出規範過濾資料。然後使用流式複制協定将資料連續傳輸到應用從業人員, 應用從業人員将資料映射到本地表,并按照正确的事務順序應用接收到的各個更改。

訂閱者資料庫上的應用程式始終以

session_replication_role

 設定為

replica

運作,這會對觸發器和限制産生通常的影響。

邏輯複制應用程式目前僅觸發行觸發器,不觸發語句觸發器。不過, 初始表同步像

COPY

指令一樣執行, 是以觸發了

INSERT

的行和語句觸發器。

31.5.1. 初始快照

給現有訂閱表中的初始資料做快照,并複制到特殊類型的應用程式的并行執行個體中。 此過程将建立自己的臨時複制槽并複制現有資料。一旦現有資料複制完成, 從業人員進入同步模式,通過使用标準邏輯複制, 流式傳輸在初始資料複制過程中發生的任何變化, 確定表與主應用程式進入同步狀态。一旦完成同步, 表的複制的控制權傳回到複制繼續正常進行的主應用程序。

本文轉自PostgreSQL中文社群,原文連結: