1. 程式人生 > >PostgreSQL邏輯複製槽

PostgreSQL邏輯複製槽

   Schema   |                Name                 | Result data type |                            Argument data types                            |  Type
------------+-------------------------------------+------------------+---------------------------------------------------------------------------+--------
 pg_catalog | pg_create_logical_replication_slot  | record           | slot_name name, plugin name, OUT slot_name text, OUT xlog_position pg_lsn | normal
 pg_catalog | pg_create_physical_replication_slot | record           | slot_name name, OUT slot_name name, OUT xlog_position pg_lsn              | normal

 

1.需求

遇到一種需要將一部分表通過logical_tool用邏輯複製槽的方式同步到kaffka,之前沒有使用過,因此對邏輯複製槽進行了瞭解。

 

2.資料

pg_create_logical_replication_slot方法配置兩個引數:slot_name、plugin_name,例如:

pg_create_logical_replication_slot('test_logical_slot', 'wal2json');

這樣就可以通過wal2json這個工具來解析wal日誌,有時間進行詳細瞭解····

 

3.類似工具


另外關於邏輯槽的工具

,在阿里雲中看到他們用邏輯複製槽的方式進行資料庫遷移:
1.安裝他們的ali_decoding工具;
2.建立邏輯複製槽:SELECT * FROM pg_create_logical_replication_slot('replication_slot_test', 'ali_decoding');
然後配置連線引數,開始遷移。

 

4.應對叢集切換

 

而客戶這邊有一些不一樣的地方,為了適應叢集的切換,他們將邏輯槽所在的目錄,pglogical設定為共享目錄,當主節點被切換走了,在新的主節點重新啟動邏輯複製槽(通過守護程序實現,同時,他們還需要重啟資料庫才能讓共享目錄被識別,不能簡單的promote方式提示從節點為主節點)。