首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PostgreSQL逻辑复制:添加订阅服务器时的初始同步

PostgreSQL逻辑复制是一种高级数据复制技术,它允许将数据从一个源数据库复制到一个或多个目标数据库。在逻辑复制中,数据被以逻辑形式复制,而不是以二进制形式。这种复制方法提供了更高的灵活性和可扩展性,使得可以在不同版本的PostgreSQL之间进行复制。

在添加订阅服务器时的初始同步过程中,首先需要确保源数据库和目标数据库之间的网络连接是可用的。然后,需要执行以下步骤:

  1. 创建订阅:在目标数据库中创建一个订阅,用于接收来自源数据库的复制数据。可以使用PostgreSQL的CREATE SUBSCRIPTION语句来创建订阅。
  2. 配置订阅参数:在创建订阅后,需要配置一些参数,以指定源数据库的连接信息和复制的表。这些参数包括源数据库的连接字符串、复制的表名或模式等。可以使用ALTER SUBSCRIPTION语句来配置订阅参数。
  3. 启动初始同步:在配置完订阅参数后,可以启动初始同步过程。初始同步是将源数据库中的数据复制到目标数据库的过程。可以使用ALTER SUBSCRIPTION语句的SET (SYNCHRONOUS_COMMIT = 'on')选项来启动初始同步。
  4. 监控同步进度:在初始同步过程中,可以使用pg_stat_replication视图来监控同步进度。该视图提供了有关复制连接的信息,包括复制的状态、复制的位置等。
  5. 完成初始同步:当初始同步完成后,可以使用ALTER SUBSCRIPTION语句的SET (SYNCHRONOUS_COMMIT = 'off')选项来关闭初始同步。此时,订阅服务器将开始接收来自源数据库的增量更新。

推荐的腾讯云相关产品:腾讯云数据库PostgreSQL。腾讯云数据库PostgreSQL是基于开源PostgreSQL的关系型数据库服务,提供了高可用、高性能、弹性扩展的特性。您可以通过腾讯云数据库PostgreSQL来实现逻辑复制和其他数据复制需求。

产品介绍链接地址:腾讯云数据库PostgreSQL

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

国际新闻:PostgreSQL 16 发布!

逻辑复制 逻辑复制允许用户将数据流式传输到其它PostgreSQL实例或订阅者,这些实例或订阅者可以解释 PostgreSQL 逻辑复制协议。...订阅者现在可以使用并行应用大型事务 工人。对于没有主键的表,订阅者可以使用 B 树 索引而不是顺序扫描来查找行。在某些条件下, 用户还可以使用二进制格式加快初始表同步。...最后,此版本开始添加对双向的支持 逻辑复制,引入了在两个之间复制数据的功能 来自不同发布者的表。...订阅者现在可以使用并行工作者应用大型事务。对于没有主键的表,订阅者可以使用B-tree索引而不是顺序扫描来查找行。在某些条件下,用户还可以使用二进制格式加速初始表同步。...最后,这个版本开始添加对双向逻辑复制的支持,引入了在来自不同发布者的两个表之间复制数据的功能。

1.3K70

如何在Ubuntu 18.04上使用PostgreSQL 10设置逻辑复制

保持数据库副本同步的过程称为复制。复制可以为大量同时读取操作提供高可用性水平扩展,同时减少读取延迟。它还允许在地理上分布的数据库服务器之间进行对等复制。...在本教程中,您将在两台Ubuntu 18.04服务器上配置PostgreSQL 10的逻辑复制,其中一台服务器充当主服务器,另一台服务器充当副本服务器。...在本教程结束时,您将能够使用逻辑复制将数据从主服务器复制到副本。...在我们的例子中,没有数据要同步,因为widgets表是空的,但是在向现有数据库添加新订阅时这是一个有用的功能。 有了订阅,让我们通过向widgets表中添加一些演示数据来测试设置。...关于副本服务器上的写入查询需要注意的一点是,它们不会被复制回主服务器。当服务器之间的数据出现分歧时,PostgreSQL目前对解决冲突的支持有限。

2.9K50
  • 派胜 ExpressOA 3.0 现已支持 PostgreSQL 16 开源数据库

    逻辑复制逻辑复制允许用户将数据流复制到其他可以解析PostgreSQL逻辑复制协议的节点或订阅者。...在PostgreSQL 16中,用户可以从备节点(standby)执行逻辑复制,这意味着备节点可以将逻辑变更发布到其他服务器。...这为开发者提供了新的工作负载分布选项——例如,使用备节点而不是更繁忙的主节点通过逻辑复制将更改应用到下级订阅端。此外,PostgreSQL 16中对逻辑复制进行了多项性能改进。...订阅者现在可以使用并行方式来处理大型事务。对于没有主键的表,订阅者可以使用B-tree索引而不是顺序扫描来查找行。在某些条件下,用户还可以使用二进制格式加速初始表同步。...PostgreSQL 16逻辑复制的访问控制做了多项改进,包括新的预定义角色 pg_create_subscription,该角色允许用户新建逻辑订阅。

    11810

    PostgreSQL逻辑复制之pglogical篇

    一、pglogical介绍 pglogical 是 PostgreSQL 的拓展模块, 为 PostgreSQL 数据库提供了逻辑流复制发布和订阅的功能。...pglogical 重用了 BDR 项目中的一部分相关技术。pglogical 是一个完全作为PostgreSQL 扩展实现的逻辑复制系统。完全集成,它不需要触发器或外部程序。...3、将表添加对应的复制集 对新建的表;并没有为其分配对应的复制集;需要手动添加。...relation - 要添加到集合中的表的名称或OID synchronize_data - 如果为true,则表数据将在订阅给定复制集的所有订户上同步,默认为false columns - 要复制的列的列表...通常,当应复制所有列时,这将设置为NULL,这是默认值 row_filter - 行过滤表达式,默认为NULL(无过滤),有关详细信息,请参阅(行过滤)。警告:在使用有效行筛选器同步数据时要小心。

    2.1K10

    PostgreSQL集群篇——1、PG环境安装准备

    ,如下图所示: 特性 共享磁盘故障转移 文件系统复制 预写式日志传送 逻辑复制 基于触发器的主-备复制 基于语句的复制中间件 异步多主控机复制 同步多主控机复制 最通用的实现 NAS DRBD 内建流复制...同步流复制 开始支持同步复制,只支持一个同步流复制节点,同步流复制能保证数据的0丢失 PostgreSQL9.2 级联流复制 开始支持联流复制,备库下面还可以再连接备库,形成级联架构 PostgreSQL9.2...PostgreSQL9.4 逻辑复制 开始支持逻辑复制,逻辑复制可以应对部分表复制的功能。 PostgreSQL9.6 同步流复制改版 同步流复制允许多个备用服务器以提高可靠性。...PostgreSQL10 使用发布/订阅进行逻辑复制 PostgreSQL11-13 持续优化 本次我们将采用PostgreSQL13.1版本进行搭建同步流复制环境,数据库安装我们采用了编译安装,...7、开始进行初始化数据库w su postgres pg_ctl initdb 备注:这里我们进入postgres用户后直接使用了pg_ctl命令,是因为上面设置了系统环境变量PATH,其次我们切换用户时使用的是

    3.6K70

    PostgreSQL PG16 逻辑复制在STANDBY 上工作 (译)

    该新功能允许从待命服务器进行逻辑复制,用户可以: 从只读的待命服务器创建逻辑解码 减轻主服务器的工作负载 采用新的方式为需要在多个系统之间进行数据同步或审核的应用程序提供高可用性 第二个相关且令人兴奋的新功能是...这意味着在主服务器故障并将待命服务器提升为主服务器时,复制槽将持久存在,并且之前的待命服务器订阅者不会受到影响。 这两个功能结合在一起,极大地提高了PostgreSQL在处理大数据操作时的性能。...逻辑复制的一个主要优点是您可以从不同版本的 PostgreSQL 服务器订阅更改!这在处理使用不同版本的 PostgreSQL 的应用程序时为您提供了很大的灵活性。...正如我们之前所看到的,当我们创建订阅连接到备用服务器时,它会在不可写的备用服务器上创建复制槽。如果我们的主服务器发生灾难性故障,备用服务器被提升为主服务器,那么会发生什么情况呢?...由于PostgreSQL社区的出色工作,在PG 16中,备服用户将能够: 创建逻辑复制槽 启动逻辑解码 订阅备库的更改 故障切换后持久化逻辑复制槽 备库将能够作为逻辑复制订阅者的源进行服务,只需进行很少的更改

    89640

    数据库PostrageSQL-服务器配置(复制)

    在物理复制后备的情况下,这应该被设置在recovery.conf文件的primary_conninfo设置中,默认walreceiver。对于逻辑复制,可以在订阅的连接信息中设置。...但是注意在比较standby_name和后备机应用程序名称时是大小写不敏感的(不管有没有双引号)。 如果这里没有指定同步后备机名称,那么同步复制不能被启用并且事务提交将不会等待复制。...订阅者 这些设置控制逻辑复制订阅者的行为。它们在发布者上的值与此无关。...max_logical_replication_workers (int) 指定逻辑复制工作者的最大数目。这同时包括应用工作者和表同步工作者。...max_sync_workers_per_subscription (integer) 每个订阅的同步工作者的最大数目。这个参数控制订阅初始化期间或者新表增加时的初始数据拷贝的并行度。

    1.9K10

    浅谈 PostgreSQL 高可用方案

    逻辑复制 基于触发器的主-备复制 基于SQL的复制中间件 异步多主控机复制 同步多主控机复制 高可用、负载均衡和复制特性矩阵 3、流复制 Streaming Replication:主库则在 WAL...逻辑复制使用一种发布和订阅模型,其中有一个或者更多订阅者订阅一个发布者节点上的一 个或者更多发布,订阅者从它们所订阅的发布拉取数据并且可能后续重新发布这些数据以 允许级联复制或者更复杂的配置。...缺点 • 配置复杂:配置和管理比流复制复杂。 • 性能开销:逻辑复制的性能开销可能比流复制大,尤其是在大量数据变更时。 • 数据一致性:在高负载下,可能会有数据不一致的风险。...使用复制功能可以在 2 个或更多物理磁盘上创建实时备份,以便在磁盘发生故障时可以继续服务而无需停止服务器。 负载均衡 • 如果复制了数据库,则在任何服务器上执行 SELECT 查询将返回相同的结果。...自动设置必要的触发器,日志表等 ;自动发现新添加的表并同步表内容 ;自动重新配置序列,以避免重复的键冲突 6)Bucardo • Bucardo 是 End Point 公司的 Jon Jensen 和

    1.8K10

    PostgreSQL集群篇——2、PG环境安装准备

    、负载均衡和复制特性解决方案,如下图所示: 特性 共享磁盘故障转移 文件系统复制 预写式日志传送 逻辑复制 基于触发器的主-备复制 基于语句的复制中间件 异步多主控机复制 同步多主控机复制 最通用的实现...同步流复制 开始支持同步复制,只支持一个同步流复制节点,同步流复制能保证数据的0丢失 PostgreSQL9.2 级联流复制 开始支持联流复制,备库下面还可以再连接备库,形成级联架构 PostgreSQL9.2...PostgreSQL9.4 逻辑复制 开始支持逻辑复制,逻辑复制可以应对部分表复制的功能。 PostgreSQL9.6 同步流复制改版 同步流复制允许多个备用服务器以提高可靠性。...PostgreSQL10 使用发布/订阅进行逻辑复制 PostgreSQL11-13 持续优化 本次我们将采用PostgreSQL13.1版本进行搭建同步流复制环境,数据库安装我们采用了编译安装,...这将开启一个到服务器的第二连接并且在运行备份时并行开始流传输预写式日志。

    3.1K40

    Windows 环境搭建 PostgreSQL 逻辑复制高可用架构数据库服务

    本文主要介绍 Windows 环境下搭建 PostgreSQL 的主从逻辑复制,关于 PostgreSQl 的相关运维文章,网络上大多都是 Linux 环境下的操作,鲜有在 Windows 环境下配置的教程...\PostgreSQL\data" stop-D 的参数 "D:\Software\PostgreSQL\data" 是 PostgreSQL 的数据实例位置----今天我们采用逻辑同步复制来实现主从数据库的配置...localhost 的 PostgreSQL 实例中 csapp 数据库和 远程服务器上 caspp 数据库的主从配置。...这里要注意的一点是 PostgreSQL 的 逻辑订阅并不会同步DDL操作 ,所以对于数据库的建表等操作是不会进行主从同步的,我们需要手动维护 主从实例数据库上的表结构使其保持一致。...这里有一点需要注意,这是 PostgreSQL 在同步复制时的一个已知问题,假设 一个主库,一个备库 s1,采用同步模式,然后 synchronous_standby_names 配置为 synchronous_standby_names

    1K20

    PostgreSQL主从复制--逻辑复制

    ,实时的在备库apply,事务结束时,备库立马能见到数据 物理复制的一致性、可靠性高,不必担心数据逻辑层面不一致 但是其又在实际使用的场景中存在一些无法满足的需求,例如: 无法满足指定库或部分表的复制需求...将多个数据库实例的数据汇聚到同一个目标库或将一个库的数据分发到多个不同的库 不同的版本之间的复制 不同库名之间的表同步 对于以上场景,物理复制时无法满足的,因此逻辑复制应运而生了。...:设置逻辑复制进程数,应大于订阅节点的数量,并且给表同步预留一些进程数量,此参数默认值为4 2.3 创建逻辑复制账号 postgres=# CREATE USER logical_repl REPLICATION...物理复制与逻辑复制特点和应用场景 PostgreSQL的逻辑复制与物理复制的差异比较突出,在使用中可以根据其特点选择使用哪种复制方式。 逻辑订阅,适合于发布端与订阅端都有读写的情况。...逻辑订阅,更适合于小事务,或者低密度写(轻度写)的同步。如果有大事务、高密度写,逻辑订阅的延迟相比物理复制更高。 逻辑订阅,适合于双向,多向同步。 物理复制,适合于单向同步。

    4.5K31

    How to Optimize PostgreSQL Logical Replication

    使用逻辑复制时,需要预见一些挑战。 下面我们看下影响逻辑复制的因素。...基础设施的容量必须满足处理如此规模的数据。 复制表的活跃性 在复制非常活跃的表时,可能由于IO性能问题、死锁等导致复制落后于同步。这肯能使数据库看起来不太健康。...提供复制槽,可以确保当订阅节点还需要时,主机上的文件不被删除。建议对于每个订阅节点都配置一个复制槽。 max_worker_processes 配置最优的worker进程数也很重要。...max_sync_workers_per_subscription 这个参数指定每个订阅最多需要多少同步进程。初始数据同步期间,同步进程开始工作,使用整个从那时候可以确保同步更快。...配置调优逻辑复制,需要大量的计划、架构、测试。为了确保复制系统的有效性和可用性,使用逻辑复制时需要评估实时复制的数据量。

    86120

    PG逻辑复制的REPLICA IDENTITY设置

    首先了解下,逻辑复制的概念。逻辑复制是PostgreSQL V10重量级新特性,支持内置的逻辑复制。...从9.4版本开始,PostgreSQL就支持逻辑复制了,只是一直没有将其引入内核。可以针对同一个数据库实例,同时使用逻辑复制和物理复制,因为他们都是基于REDO的。...逻辑复制的应用场景,可基于表级别复制,是一种粒度可细的复制,主要用在以下场景, (1) 满足业务上需求,实现某些指定表数据同步。 (2) 报表系统,采集报表数据。...(3) PostgreSQL 跨版本数据同步。 (4) PostgreSQL 大版本升级。 (5) 可从多个上游服务器,做数据的聚集和合并。...逻辑复制原理,使用发布者/订阅者模型,使用订阅复制槽技术,可并行的传输WAL日志,通过在订阅端回放WAL日志中的逻辑条目,保持复制表的数据同步,注意这里不是“SQL”复制,而是复制SQL操作的结果。

    2.4K31

    Windows 环境搭建 PostgreSQL 物理复制高可用架构数据库服务

    PostgreSQL 高可用数据库的常见搭建方式主要有两种,逻辑复制和物理复制,上周已经写过了关于在Windows环境搭建PostgreSQL逻辑复制的教程,这周来记录一下 物理复制的搭建方法。...搭建物理复制模式的主从订阅首先要调整主实例的 postgresql.conf 文件 wal_level = replica synchronous_commit = remote_apply...这里有一点需要注意,这是 PostgreSQL 在同步复制时的一个已知问题,假设 一个主实例,一个备库 s1,采用同步模式,然后 synchronous_standby_names 配置为 synchronous_standby_names...文件夹和Data整体打包压缩复制一份到新的服务器上启动起来作为从实例。...我这里选择直接把云服务器上的 PostgreSQL 打包压缩然后复制到本地解压,作为从实例 在本地解压之后,做为 从实例 需要做如下的调整,postgresql.conf primary_conninfo

    74910

    数据库PostrageSQL-订阅

    订阅 订阅是逻辑复制的下游端。订阅被定义在其中的节点被称为订阅者。一个订阅会定义到另一个数据库的连接以及它想要订阅的publication集合(一个或者多个)。...订阅者数据库的行为与任何其他PostgreSQL实例相同,并且可以被用作其他数据库的发布者,只需要定义它自己的publication。 如果需要,一个订阅者节点可以有多个订阅。...预先存在的表数据的初始数据同步过程可能会要求额外的临时复制槽。 逻辑复制订阅可以是同步复制(见Section 26.2.8)的后备服务器。后备名称默认是该订阅的名称。...在一个订阅被删除并且重建时,同步信息会丢失。这意味着数据必须被重新同步。 模式定义不会被复制,并且被发布的表必须在订阅者上存在。只有常规表可以成为复制的目标。例如,不能复制视图。...在删除一个订阅时,复制槽应该被保留。当订阅者数据库正在被移动到一台不同的主机并且将从那里再被激活时,这种行为很有用。

    45420

    PG Logical Replication 逻辑复制

    ,给了all table做了复制的配置, 因此新加表后这里不需要执行添加到发布者的命令。...PostgreSQL 11将支持复制TRUNCATE,但这只有在源和目标实例都是PostgreSQL 11或更新版本时才有效。...,在同一个数据库下订阅者不能对同一个发布者的表重复订阅(避免数据冲突) 6、逻辑复制不同于流复制,不是严格的主从关系,订阅者端的普通表依然可以进行增删改操作 7、同步表的表结构需要在发布者和订阅者两边保持一致...(列的顺序允许不一样,但是列对应的数据类型必须一致) 8、如果订阅者端的数据被误删,想要从发布者重新copy同步表的数据,只能以重建同步表所在的订阅者的方式来实现 其它注意事项: publication...- 发布者 逻辑复制的前提是将数据库 wal_level 参数设置成 logical; 源库上逻辑复制的用户必须具有 replicatoin 或 superuser 角色; 逻辑复制目前仅支持数据库表逻辑复制

    1.6K20

    逻辑复制的Tablesync workers

    逻辑复制的PUBLISHER/SUBSCRIBER模型设计的基础是如何使用一个后台进程完成订阅功能。本文介绍订阅进程的一些背景知识以及我们对Tablesync进程做的一些增强。...Tablesync进程的注意目的是通过复制已发布表(CREATE SUBSCRIPTION时)的所有行来初始化复制表。...Tablesync增强 富士通 OSS 团队正在与开源社区合作,以增强 PostgreSQL 的逻辑复制。...此外,由于复制源 跟踪记录在永久槽中,这意味着可以跳过任何已经提交的数据。 杂项改进 富士通还在 PostgreSQL 逻辑复制领域贡献了许多其他错误修复和小改进,我们定期参与对其他贡献补丁的审查。...以下是我们在其他人的帮助下编写的更多 PostgreSQL 14 更改: 1)重命名逻辑复制全局“wrconn” 2)改进一些与复制相关的错误消息的样式 3)修复stream_cleanup_files

    66120

    PostgreSQL 14及更高版本改进

    PG14的主要特性 逻辑复制的改进 PG14中对逻辑复制进行了几项增强: 1) 正在进行中的事务中支持逻辑复制 有助于减少大型事务的回放延迟,这里详细进行了介绍: http://amitkapila16...4) 逻辑复制可以以二进制形式传输数据 这通常更快,如果稍微不需要那么健壮的话 5) 逻辑复制中进行表同步期间允许多个事务,带来的好处: 如果在同步阶段发生错误,将不再需要再次复制整个表 避免了超过CID...限制的风险 在整个同步完成之前,不再需要保留WAL 大表的初始化同步阶段花费很长时间,基于这些修改,逻辑复制进行了改进。...6) libpq中改进了pipeline模式:允许发送多个查询,并仅当发送了指定的同步消息时等待完成;它增加了客户端应用程序的复杂性,并且需要格外小心以防止客户端/服务器死锁,但管道模式可以提供相当大的性能改进...1) 逻辑复制的各种改进 在订阅者端支持2PC;schema的发布;允许解决冲突的选项或工具;sequence的复制;行级别的过滤器使数据分片更加便利;列级别的过滤;不发送空事务,提高网络带宽;备机开启逻辑复制

    7.8K40

    GPDB - 高可用特性 - 同步复制与异步复制

    2)synchronous_standby_names 该参数是PG带过来的,用于设定需要支持同步复制的备节点服务器名称列表。必须与备机的application_name一样。...其中 1)num_sync表示事务需要等待响应的同步备节点个数 2)standby_name表示同步复制备节点服务器名字,这里指备节点连接配置信息中的application_name,对于流复制,可以查看...对于逻辑复制可以在订阅连接信息中设置,缺省值是订阅名本身 3)FIRST和ANY指定从列表中选择同步备节点的方法。大小写不敏感。...,commit流程被唤醒的逻辑: 1、事务提交 1)事务提交时RecordTransactionCommit->SyncRepWaitForLSN进入同步复制等待。...3、切换异步复制 切换异步复制的流程如下图所示: 1)事务提交时RecordTransactionCommit->SyncRepWaitForLSN进入同步复制等待。

    57210

    POSTGRESQL 逻辑复制槽,what when how ,check and monitor 这一篇

    postgresql 的逻辑复制槽估计是一个被说烂的话题,但如果你是在大批量的使用逻辑复制槽作为数据的同步和复制的功能,那这就是一个另外的话题了。...2 逻辑复制是否可以级联 是的逻辑复制是可以通过一级套一级的方式来进行数据的传送,假如我们有三个POSTGRESQL ,那么我们A 为发布,B 为订阅, B 同时为发布 C 为订阅,这样的设计是可以的...不同的复制槽在同一个数据库中可以针对不同的数据的消费者和订阅者。可以通过逻辑复制槽将这些订阅进行分离。...2 subscription : 通过在发布者上建立的复制槽,进行数据复制和数据接收的,如不指定逻辑复制槽则自行进行逻辑复制槽的初始化工作。...9 创建一个发布 在创建publication 时,需要注意几点 1 创建 publication 是可以针对表进行添加的,也可以设置随时添加的表就包含在publication中。

    3.4K30
    领券