修改主庫以及從庫的postgresql.conf
wal_level = logical
max_wal_senders = 10
max_replication_slots = 8
引數簡要說明如下
-
wal_level:設定成logical才支持邏輯復制
-
max_wal_senders:由于每個訂閱節點和流復制備庫在主庫上都會占用主庫上一個WAL發送行程,因此此引數設定值需大于max_replication_slots引數值加上物理備庫數量
-
max_replication_slots:設定值需大于訂閱節點的數量
邏輯主庫創建庫和表,邏輯從庫創建庫和表
主庫和從庫庫名可以不一致,但是庫中需要同步的表必須表名和表結構一致
createdb sourcedb
create table logical_tb(id int primary key,name varchar(20));
創建邏輯復制賬號并授權
邏輯復制用戶需要REPLICATION權限即可,可以不需要SUPERUSER權限,之后需要在主庫上將需要同步的表賦權給logical_repl用戶,使logical_repl賬號具有對這些表的讀權限,這樣從庫可以通過這個賬號進行連接訪問
CREATE USER logical_repl REPLICATION LOGIN CONNECTION LIMIT 8 ENCRYPTED PASSWORD 'logical_repl';
GRANT USAGE ON SCHEMA public TO logical_repl;
GRANT SELECT ON logical_tb1 TO logical_repl;
主庫創建發布
注意:進入當前庫下執行陳述句
- 為庫中所有的表創建發布
CREATE PUBLICATION puball FOR ALL TABLES
- 指定庫中某個表創建發布
CREATE PUBLICATION pub FOR TABLE logical_tb;
從庫創建訂閱
CREATE SUBSCRIPTION suballtable
CONNECTION 'host=10.10.64.30 port=5434 user=logical_repl password=logical_repl dbname=testall'
PUBLICATION puball;
ALTER SUBSCRIPTION sub REFRESH PUBLICATION
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/236500.html
標籤:其他
