2020年12月17日星期四

PostgreSQL数据库逻辑复制实践

修改主库以及从库的postgresql.conf

wal_level = logicalmax_wal_senders = 10max_replication_slots = 8

参数简要说明如下

  • wal_level:设置成logical才支持逻辑复制

  • max_wal_senders:由于每个订阅节点和流复制备库在主库上都会占用主库上一个WAL发送进程,因此此参数设置值需大于max_replication_slots参数值加上物理备库数量

  • max_replication_slots:设置值需大于订阅节点的数量

逻辑主库创建库和表,逻辑从库创建库和表

主库和从库库名可以不一致,但是库中需要同步的表必须表名和表结构一致

createdb sourcedbcreate 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 suballtableCONNECTION 'host=10.10.64.30 port=5434 user=logical_repl password=logical_repl dbname=testall'PUBLICATION puball;
ALTER SUBSCRIPTION sub REFRESH PUBLICATION








原文转载:http://www.shaoqun.com/a/501221.html

blackbird:https://www.ikjzd.com/w/950

汇通达:https://www.ikjzd.com/w/1758

易速:https://www.ikjzd.com/w/2389


修改主库以及从库的postgresql.confwal_level=logicalmax_wal_senders=10max_replication_slots=8参数简要说明如下wal_level:设置成logical才支持逻辑复制max_wal_senders:由于每个订阅节点和流复制备库在主库上都会占用主库上一个WAL发送进程,因此此参数设置值需大于max_replication_slots
002315焦点科技:002315焦点科技
haofang:haofang
前期打造爆品的思维导图:前期打造爆品的思维导图
香港哪里的夜景最好看?:香港哪里的夜景最好看?
2020最受中国游客欢迎的泰国酒店是哪家:2020最受中国游客欢迎的泰国酒店是哪家

没有评论:

发表评论