# 前言PostgreSQL 在 9.0 之前并未支持流式复制,备库总是落后主库一个 WAL log,在 9.0 之后 PostgreSQL 提供了流式复制,备库不断从主库同步相应的数据,并应用每个 WAL record。在 PostgreSQL 9.4 开始,PostgreSQL 提供了逻辑流复制功能,至此,PostgreSQL 拥有了更加完备的数据同步方式,解决了物理流复制无法覆盖的一些场景。本章内容将介绍物理复制与逻辑复制的一些差别。## 参数配置差异我们知道在 PostgreSQL 中如果想要实...
# 前言PostgreSQL 中的逻辑流复制与消息队列中的发布者/订阅者模型非常相似,在发布者端将 WAL 日志流解析成一定格式的数据流,订阅者节点收到后进行应用,以此来达到数据同步的目的。本章内容将介绍如何使用逻辑流复制进行数据同步,可用于数据迁移等场景。# 先决条件在源库需要预先配置项如下:1. wal_level = logical2. max_replication_slots: 每个订阅需要消耗一个 slot。建议根据情况来进行设置。3. max_wal_senders,每...
本章内容主要聚焦于逻辑复制的使用场景,当了解了适用场景后,会使得业务架构更加灵活。## 场景一:数据汇总与拆分当多个独立的业务库需要将数据汇总到数据仓库,以便于进行后续分析的场景,逻辑复制是非常适合的。一是不需要额外的组件来支撑,二是可以做到实时同步。对于数据拆分的场景,由于逻辑复制的粒度可以到表级别,可以将一个数据库按照表的粒度拆分到不同的数据库实例中。## 场景二:数据库迁移PostgreSQL 提供了原生的迁移...
# 前言在逻辑复制过程中,如果在复制过程中出现任何冲突,如主键冲突,逻辑复制都会停止。这时候需要我们手动去解决。# 问题分析修复冲入的方法共有两种:1. 在订阅端手动找到冲突的数据并删除,然后重新让订阅继续... 发现 tid = 13 并未同步,此时出现了复制冲突。````undefinedrudonx=# select * from pg_stat_subscription;-[ RECORD 1 ]---------+----------subid | 23038subname | alltabs...
增量数据同步期间,数据库传输服务 DTS 会在源库中创建前缀为 dts_sync_ 的 replication slot 用于复制数据。DTS 会每隔 5~10 分钟自动清理一次历史 replication slot,避免其持续累积占用磁盘空间。 说明 当释放同步任务或同步任务失败时,DTS 会主动清理 replication slot。 如果 RDS PostgreSQL 发生了主备切换,则您需要登录备库手动清理 replication slot。 执行数据同步前需评估源库和目标库的性能,同时建议业务低峰期执...
# 前言在配置好逻辑复制之后,我们需要了解逻辑复制相关信息,如复制延迟,replication slot 相关位点信息。PostgreSQL 为我们提供了丰富的表/视图,方便我们进行监控。## 检查逻辑复制的基本配置信息在订阅端查看基... d = 正在复制数据, s = 已同步, r = 准备好 (普通复制)* srsublsn:s 和 r 状态时源端的结束 LSN在发布端查看那些表被发布:````undefinedrudonx=# select * from pg_publication_tables;-[ RECORD 1 ]------...
增量数据同步期间,数据库传输服务 DTS 会在源库中创建前缀为 dts_sync_ 的 replication slot 用于复制数据。DTS 会每隔 5~10 分钟自动清理一次历史 replication slot,避免其持续累积占用磁盘空间。 说明 当释放同步任务或同步任务失败时,DTS 会主动清理 replication slot。 如果 RDS PostgreSQL 发生了主备切换,则您需要登录备库手动清理 replication slot。 执行数据同步前需评估源库和目标库的性能,同时建议业务低峰期执...
增量数据同步期间,数据库传输服务 DTS 会在源库中创建前缀为 dts_sync_ 的 replication slot 用于复制数据。DTS 会每隔 5~10 分钟自动清理一次历史 replication slot,避免其持续累积占用磁盘空间。 说明 当释放同步任务或同步任务失败时,DTS 会主动清理 replication slot。 如果 RDS PostgreSQL 发生了主备切换,则您需要登录备库手动清理 replication slot。 执行数据同步前需评估源库和目标库的性能,同时建议业务低峰期执...
增量数据同步期间,数据库传输服务 DTS 会在源库中创建前缀为 dts_sync_ 的 replication slot 用于复制数据。DTS 会每隔 5~10 分钟自动清理一次历史 replication slot,避免其持续累积占用磁盘空间。 说明 当释放同步任务或同步任务失败时,DTS 会主动清理 replication slot。 如果 RDS PostgreSQL 发生了主备切换,则您需要登录备库手动清理 replication slot。 执行数据同步前需评估源库和目标库的性能,同时建议业务低峰期执...
增量数据同步期间,数据库传输服务 DTS 会在源库中创建前缀为 dts_sync_ 的 replication slot 用于复制数据。DTS 会每隔 5~10 分钟自动清理一次历史 replication slot,避免其持续累积占用磁盘空间。 说明 当释放同步任务或同步任务失败时,DTS 会主动清理 replication slot。 如果 RDS PostgreSQL 发生了主备切换,则您需要登录备库手动清理 replication slot。 执行数据同步前需评估源库和目标库的性能,同时建议业务低峰期执...
增量数据同步期间,数据库传输服务 DTS 会在源库中创建前缀为 dts_sync_ 的 replication slot 用于复制数据。DTS 会每隔 5~10 分钟自动清理一次历史 replication slot,避免其持续累积占用磁盘空间。 说明 当释放同步任务或同步任务失败时,DTS 会主动清理 replication slot。 如果 RDS PostgreSQL 发生了主备切换,则您需要登录备库手动清理 replication slot。 执行数据同步前需评估源库和目标库的性能,同时建议业务低峰期执...
增量数据同步期间,数据库传输服务 DTS 会在源库中创建前缀为 dts_sync_ 的 replication slot 用于复制数据。DTS 会每隔 5~10 分钟自动清理一次历史 replication slot,避免其持续累积占用磁盘空间。 说明 当释放同步任务或同步任务失败时,DTS 会主动清理 replication slot。 如果 RDS PostgreSQL 发生了主备切换,则您需要登录备库手动清理 replication slot。 执行数据同步前需评估源库和目标库的性能,同时建议业务低峰期执...
增量同步期间,数据库传输服务 DTS 会在源库中创建前缀为 dts_sync_ 的 replication slot 用于复制数据。DTS 会每隔 5~10 分钟自动清理一次历史 replication slot,避免其持续累积占用磁盘空间。 说明 当释放同步任务或同步任务失败时,DTS 会主动清理 replication slot。 如果 RDS PostgreSQL 发生了主备切换,则您需要登录备库手动清理 replication slot。 执行数据同步前需评估源库和目标库的性能,同时建议业务低峰期执行数...