14.高可用:逻辑复制

  • 逻辑主备角色分为Publication和Subscription
  • 逻辑主库和逻辑备库为不同的PostgreSQL实例可以在同一主机上也可以在不同主机上。

Publication节点

  • 可在任何可读写的PostgreSQL实例上
  • 一个实例中允许创建多个发布,目前允许加入发布的对象只有Table,允许将多个Table注册到一个发布中
  • 加入发布的表通常需要有replica identity(复制标识),从而使逻辑主库表上的 DELETE/UPDAE操作 可以标记到相应数据行并复制到逻辑备库上的表
    默认使用主键作为复制标识
    如果没有主键, 也可是唯一索引
    如果没有主键或唯一键,可设置复制标识为 full ,意思是整行数据作为键值,这种 情况下复制效率会降低。
    如果加入发布的表没有指定复制标识,表上的UPDATE/DELETE 将会报错

Subscription节点

  • 指定发布者的表数据
  • 订阅节点数据库上同时也能创建发布
  • 发布节点上发布的表的DDL不会被复制
  • 订阅节点通过逻辑复制槽获取发布节点发送WAL数据变化

逻辑复制配置

配置Publication节点参数

wal_level = logical
max_replication_slots = 8
max_wal_senders = 10

配置Subscription节点参数

max_replication_slots = 8
max_logical_replication_workers = 8

说明

  • wal_level = logical增加逻辑解码所需的信息,低于这个级别逻辑复制不能复制
  • max_replication_slots必须大于订阅节点数量
  • max_wal_senders 必须大于 max_replication_slots加上流复制备库数量,因为每个订阅- 节点和流复制备库都会占用一个wal送进程
  • max_logical_replication_workers 建议大于订阅节点数

Publication创建发布

  • 所有表
create publication pub1 for all tables;--所有表
create publication pub1 for table t1;--单表
  • 查看创建的发布
select * from pg_publication;
Subscription创建表的元数据,并创建订阅
--create table metadata
create table t1;
pg_dump/pg_dumpall -s;
create subscription sub1 connection 'host=192.162.1.52 port=5432 dbname=testdb user=repuser password=repuser' publication pub1;

查看创建的订阅

select * from pg_subscription;
alter subscription sub1 refresh publication;

启停方法

alter subscription sub1 disable;
alter subscription sub1 enable;

查看订阅状态

select subname,subenabled,subpublications from pg_subscription;
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • feisky云计算、虚拟化与Linux技术笔记posts - 1014, comments - 298, trac...
    不排版阅读 3,937评论 0 5
  • -- 来源于网络 -- 更详细的介结参考联机帮助文档 xp_cmdshell--*执行DOS各种命令,结果以文本行...
    overad阅读 2,426评论 0 13
  • 本篇就一下方面展开分析 如何使用主从复制? 主从复制的原理(重点是全量复制和部分复制、以及心跳机制) 实际应用中需...
    lucode阅读 1,011评论 0 5
  • NOSQL类型简介键值对:会使用到一个哈希表,表中有一个特定的键和一个指针指向特定的数据,如redis,volde...
    MicoCube阅读 4,080评论 2 27
  • 【什么是大数据、大数据技术】 大数据,又称巨量资料,指的是所涉及的数据资料量规模巨大到无法在合理时间内通过传统的应...
    kimibob阅读 2,786评论 0 51