TDSQL | DTS for PostgreSQL 逻辑复制详解

逻辑复制概念

逻辑复制是 PG 数据库基于数据对象的复制标志,也就是 Replica Identity 来复制数据对象及数据变化的方法。它最初是在 2014 年 12 月份的 PG9.4.0 引入,称为逻辑解码,后来在 2017 年 10 月 PG10.0 版本中又引入了基于发布订阅的逻辑复制概念。之所以称为逻辑复制是为了和更早引入的物理复制加以区分。逻辑复制规律和物理复制这两种复制机制有比较大的区别,物理复制是使用准确的块地质遗迹逐字节的复制方式,而逻辑复制则允许在数据层面复制,并在安全性上提供更细粒度的控制。

逻辑复制功能演进大致分为两个比较大的阶段,第一阶段是 2014 年 12 月份,随着 9.4.0 版本发布,PG 为 DML 带来数据修改流动到外部提供基础设施,用户可以基于它实现复制解决方案和审计等目的。数据修改以流的形式发出,通过逻辑复制槽 Replication Slot 来识别,配合解码插件 Decoding Plugin,实现每一份数据修改在每一个流中输出。

同时 PG 基于 WAL 日志作为原始输出,Slot 保证数据流的唯一性,Decoder 插件赋予用户自定义输出能力,来做到将 PG 实例的数据变化流动到外部。第二阶段是 2017 年 10 月 4.0 版本的发布,PG 逻辑复制提供了发布和订阅模型,内部和订阅可以是多对多关系,例如允许有一个或多个订阅者来订阅同一个实例上多个发布。订阅者与发布者相同顺序,应用数据变更实现在同一个订阅中保证发布事务的一致性,这种数据复制方式有时候被称为事务性复制。

数据迁移的应用场景及宏观的技术架构

下面介绍迁移的应用场景跟宏观的技术架构。数据迁移产品对云上的数据库,公有云数据库是一个避不开的话题,也是用户数据上云的一个入口。云上数据迁移产品能够帮客户在应用不停服前提下轻松完成数据迁移上云,利用实时同步通道轻松构建高可用数据库容灾架构,通过数据订阅来满足商业数据挖掘、应用异步解耦等场景需求。

多个来源数据库要经过迁移产品将数据转移到云上,包括 IDC 自建、其他云厂商、腾讯云自己的数据库及 CVM 自建等。为了稳定可靠方便地实现用户迁云同步订阅需求,我们定下了一致性、高性能、高可用的架构设计目标,在数据库类型上有多款数据库,不仅要实现同构迁移,还要实现异构数据库迁移,这是一个整体的数据迁移应用场景。

插入 PPT 图片

迁移场景总的技术架构,首先产品要具备向用户提供 API 和控制页面能力,就像这张图的最上层,其次是通过插件式的热加载,实现不同链路迁移应用快速接入,比方刚刚说的既有同构,也有异构。同构有多种数据库类型,异构同样有多种数据库类型,而且是 N×N 的链路组合。

看一下中间部分,任务执行平台,它不仅能够提供任务调度能力,还将组件高可用、监控告警、任务编排、运维系统等纳入其中,做到了对前台高可用高可靠,对后台好运维、好接入的目标。图正下方这个区域,Node Server 是具体执行迁移节点,可以把它看成是干事,具体干迁移这件事

你可能感兴趣的:(postgresql,数据库,database)