云数据库 PostgreSQL 增量迁移预检查

这篇说明腾讯云DTS增量迁移对PostgreSQL源库的检查项与修复方法,核心要求包括wal_level设为logical、调整max_replication_slots和max_wal_senders参数、避免无主键表及设置REPLICA IDENTITY为FULL。 参数修改:登录源库修改postgresql.conf后重启实例并验证。 表属性修复:对无主键或唯一索引的表设置REPLICA IDENTITY为FU。

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

一、检查详情

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

·源库的 wal_level 必须为 logical。

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

·源库待迁移表中 persistence 属性必须为 p(永久表),否则不支持 replication,故而也无法做逻辑迁移。

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

·一般不建议迁移无主键的表,可能会导致数据结果不一致。如果待迁移的表无主键,且 REPLICA IDENTITY 属性设置不为 FULL,则校验任务报警告。

·如果待迁移的表有主键且有唯一索引,并且 REPLICA IDENTITY 属性设置不为 FULL,则校验任务报警告。

·如果待迁移的表无主键,但有多个唯一索引,并且 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,则校验任务报警告。

·如果待迁移的表有主键且有唯一索引,并且 REPLICA IDENTITY 属性设置不为 FULL,则校验任务报警告。

·如果待迁移的表无主键,但有多个唯一索引,并且 REPLICA IDENTITY 属性设置不为 FULL,则校验任务报警告。

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

注意:说明:

ALTER TABLE schemaName.tableName REPLICA IDENTITY FULL;

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