云数据库 PostgreSQL 主键依赖检查

这篇说明腾讯云DTS增量同步对PostgreSQL源库的检查项与修复方法,核心是必须将wal_level设为logical并调整max_replication_slots和max_wal_senders参数,同时避免同步unlogged table,并建议将REPLICA IDENTITY设为FULL。 – 参数修改:修改postgresql.conf中的三个参数后重启数据库并验证。 – 表属性设置:针对REPLIC。

相关产品
云数据库 PostgreSQL 产品页,含版本规格、价格与购买入口。

一、检查详情

当同步类型选择增量同步时,需要对如下条件进行检查,否则校验失败。

·源库的 wal_level 必须为 logical。

·源库 max_replication_slots 和 max_wal_senders 参数需要大于待同步的库总数(保留额外连接数)。

·待同步表中不能存在 unlogged table,否则无法同步。

·如果REPLICA IDENTITY 属性设置不为 FULL ,则校验任务报警告。

二、修改 wal_level/max_replication_slots/max_wal_senders 参数

修改参数 wal_level,max_replication_slots,max_wal_senders 的方法如下。

1. 登录源数据库。

注意:说明:

2. 通常进入 postgresql.conf 文件中,打开此文件,修改对应参数。

wal_level = logicalmax_replication_slots = 10 //根据实际情况修改max_wal_senders = 10 //根据实际情况修改

3. 修改完成后,重启数据库实例。

4. 登录至数据库实例中,使用以下命令查看参数值是否设置正确:

postgres=> select name,setting from pg_settings where name='wal_level';name | setting ———–+——— wal_level | logical(1 row)postgres=> select name,setting from pg_settings where name='max_replication_slots'; name | setting ———————–+——— max_replication_slots | 10(1 row)postgres=> select name,setting from pg_settings where name='max_wal_senders'; name | setting —————–+——— max_wal_senders | 10(1 row)

5. 重新执行校验任务。

三、修改待同步表的 REPLICA IDENTITY 属性

如果REPLICA IDENTITY 属性设置不为 FULL ,则校验任务报警告。

出现警告,建议用户参考如下方法修改表的属性参数。

注意:说明:

ALTER TABLE schemaName.tableName REPLICA IDENTITY FULL;

赞 (0)
上一篇 4天前
下一篇 4天前