# 前言PostgreSQL 在 9.0 之前并未支持流式复制,备库总是落后主库一个 WAL log,在 9.0 之后 PostgreSQL 提供了流式复制,备库不断从主库同步相应的数据,并应用每个 WAL record。在 PostgreSQL 9.4 开始,PostgreSQL 提供了逻辑流复制功能,至此,PostgreSQL 拥有了更加完备的数据同步方式,解决了物理流复制无法覆盖的一些场景。本章内容将介绍物理复制与逻辑复制的一些差别。## 参数配置差异我们知道在 PostgreSQL 中如果想要实...
# 前言PostgreSQL 中的逻辑流复制与消息队列中的发布者/订阅者模型非常相似,在发布者端将 WAL 日志流解析成一定格式的数据流,订阅者节点收到后进行应用,以此来达到数据同步的目的。本章内容将介绍如何使用逻辑流... postgres=# create database pubdb;CREATE DATABASEpostgres=# \c pubdbYou are now connected to database "pubdb" as user "postgres".pubdb=# create table pub_t(id int,name varchar(10));CREATE TABL...
二是可以做到实时同步。对于数据拆分的场景,由于逻辑复制的粒度可以到表级别,可以将一个数据库按照表的粒度拆分到不同的数据库实例中。## 场景二:数据库迁移PostgreSQL 提供了原生的迁移工具 pg_dump,适用于数据量小的一次性迁移,最大的缺点就是业务停机时间长,性能较差。反观逻辑复制,可以实现实时的增量迁移,业务上停机时间更短。## 场景三:数据库升级在数据库版本升级升级过程中,除了就地升级和逻辑的导入导出,由于逻辑复...
# 前言PostgreSQL 在 9.1 中推出了一种特殊的表:unlogged table,使用 unlogged table 最大的特点是涉及到表的更新,删除等操作不会记录 WAL 日志,这样可以大大的提高性能。不过需要特别注意的是,在数据库异常宕机... 如运行 kill -9 postgresql_pid,数据库重启时自动清空unlogged table的数据。4. 如果正常关闭数据库,如(pg_ctl stop -D /home/pgsql11.5/data/ -m fast),再启动时,unlogged table 中是有数据的。同时,unlogged...
增量数据同步期间,数据库传输服务 DTS 会在源库中创建前缀为 dts_sync_ 的 replication slot 用于复制数据。DTS 会每隔 5~10 分钟自动清理一次历史 replication slot,避免其持续累积占用磁盘空间。 说明 当释放同步任务或同步任务失败时,DTS 会主动清理 replication slot。 如果 RDS PostgreSQL 发生了主备切换,则您需要登录备库手动清理 replication slot。 执行数据同步前需评估源库和目标库的性能,同时建议业务低峰期执...
您可以在合适的时候再配置同步任务。配置方法,请参见配置同步任务。 在预检查时,如果选择忽略告警并启动同步任务,可能会导致数据不一致,带来业务风险。关于预检查的具体说明,请参见预检查项(PostgreSQL)。 由于全量数据初始化会并发执行 INSERT 操作,导致目标库的集合产生碎片,因此全量初始化完成后目标库的集合存储空间会比源库的集合存储空间大。 为保证数据同步的性能和同步任务的稳定性,云数据库 PostgreSQL 的 TRIGGER、...
您可以在合适的时候再配置同步任务。配置方法,请参见配置同步任务。 在预检查时,如果选择忽略告警并启动同步任务,可能会导致数据不一致,带来业务风险。关于预检查的具体说明,请参见预检查项(PostgreSQL)。 由于全量数据初始化会并发执行 INSERT 操作,导致目标库的集合产生碎片,因此全量初始化完成后目标库的集合存储空间会比源库的集合存储空间大。 为保证数据同步的性能和同步任务的稳定性,云数据库 PostgreSQL 的 TRIGGER、...
不会被同步至目标库。 由于全量初始化会并发执行 INSERT 操作,导致目标库的集合产生碎片,因此全量初始化完成后目标库的集合存储空间会比源库的集合存储空间大。 为保证数据同步的性能和同步任务的稳定性,源库的 TRIGGER、RULE、FOREIGN KEY、SEQUENCE 等会在增量同步结束后才进行同步。 在预检查时,如果选择忽略告警并启动同步任务,可能会导致数据不一致,带来业务风险。关于预检查的具体说明,请参见预检查项(PostgreSQL)。 在...
如果选择忽略告警并启动同步任务,可能会导致数据不一致,带来业务风险。 若暂时不需要启动同步任务,您可以在完成同步对象配置后,进行保存。保存后任务状态显示为待启动,您可以在合适的时候再配置同步任务。 由于全量初始化会并发执行 INSERT 操作,导致目标库的集合产生碎片,因此全量初始化完成后目标库的集合存储空间会比源库的集合存储空间大。 为保证数据初始化的性能和同步任务的稳定性,云数据库 PostgreSQL 的 TRIGGER、RU...
您可以在合适的时候再配置同步任务。配置方法,请参见配置同步任务。 在预检查时,如果选择忽略告警并启动同步任务,可能会导致数据不一致,带来业务风险。关于预检查的具体说明,请参见预检查项(PostgreSQL)。 由于全量数据初始化会并发执行 INSERT 操作,导致目标库的集合产生碎片,因此全量初始化完成后目标库的集合存储空间会比源库的集合存储空间大。 为保证数据同步的性能和同步任务的稳定性,云数据库 PostgreSQL 的 TRIGGER、...
若同步对象选择的是表,则其他对象例如视图、触发器、函数或存储过程等,不会被同步至目标库。 在预检查时,如果选择忽略告警并启动同步任务,可能会导致数据不一致,带来业务风险。关于预检查的具体说明,请参见预检查项(PostgreSQL)。 由于全量初始化会并发执行 INSERT 操作,导致目标库的集合产生碎片,因此全量初始化完成后目标库的集合存储空间会比源库的集合存储空间大。 为保证数据初始化的性能和同步任务的稳定性,云数据库 Po...
您可以在合适的时候再配置同步任务。配置方法,请参见配置同步任务。 在预检查时,如果选择忽略告警并启动同步任务,可能会导致数据不一致,带来业务风险。关于预检查的具体说明,请参见预检查项(PostgreSQL)。 由于全量数据初始化会并发执行 INSERT 操作,导致目标库的集合产生碎片,因此全量初始化完成后目标库的集合存储空间会比源库的集合存储空间大。 为保证数据同步的性能和同步任务的稳定性,云数据库 PostgreSQL 的 TRIGGER、...
如果选择忽略告警并启动同步任务,可能会导致数据不一致,带来业务风险。关于预检查的具体说明,请参见预检查项(PostgreSQL)。 若暂时不需要启动同步任务,您可以在完成同步对象配置后,进行保存。保存后任务状态显示为待启动,您可以在合适的时候再配置同步任务。 由于全量初始化会并发执行 INSERT 操作,导致目标库的集合产生碎片,因此全量初始化完成后目标库的集合存储空间会比源库的集合存储空间大。 为保证数据初始化的性能和同...