openGauss 訂閱

奔跑的数据库發表於2024-05-07

訂閱

訂閱是邏輯複製的下游端。訂閱被定義在其中的節點被稱為訂閱者。一個訂閱會定義到另一個資料庫的連線以及它想要訂閱的釋出集合(一個或者多個)。

訂閱者資料庫的行為與任何其他openGauss例項相同,並且可以被用作其他資料庫的釋出者,只需要定義它自己的釋出。

如果需要,一個訂閱者節點可以有多個訂閱。可以在一對釋出者-訂閱者之間定義多個訂閱,在這種情況下要確保被訂閱的釋出物件不會重疊。

每一個訂閱都將透過一個複製槽接收更改。預先存在的表的初始資料暫時不支援同步。

如果當前使用者是一個具有SYSADMIN許可權使用者,則訂閱會被gs_dump轉儲。否則訂閱會被跳過並且寫出一個警告,因為不具有SYSADMIN許可權使用者不能從pg_subscription目錄中讀取所有的訂閱資訊。

可以使用CREATE SUBSCRIPTION增加訂閱,並且使用ALTER SUBSCRIPTION在任何時刻修改訂閱,還可以使用DROP SUBSCRIPTION刪除訂閱。

在一個訂閱被刪除並且重建時,同步資訊會丟失。這意味著資料必須被重新同步。

模式定義不會被複制,並且被髮布的表必須在訂閱者上存在。只有常規表可以成為複製的目標。例如,不能複製檢視。

表在釋出者和訂閱者之間使用完全限定的表名進行匹配。不支援複製到訂閱者上命名不同的表。

表的列也透過名稱匹配。訂閱表中的列順序不需要與釋出表中的順序一樣。 列的資料型別也不需要一樣,只要可以將資料的文字表示形式轉換為目標型別即可。 例如,您可以從integer型別的列複製到bigint型別的列。 目標表還可以具有釋出表中不存在的額外列。額外列都將使用目標表的定義中指定的預設值填充。

詳情檢視:https://opengauss.org

詳情檢視:https://docs-opengauss.osinfra.cn

相關文章