主键依赖检查

最近更新时间:2025-10-31 18:33:52

我的收藏

检查详情

当同步类型选择增量同步时,需要对如下条件进行检查,否则校验失败。
源库的 wal_level 必须为 logical
源库 max_replication_slotsmax_wal_senders 参数需要大于待同步的库总数(保留额外连接数)。
待同步表中不能存在 unlogged table,否则无法同步。
如果REPLICA IDENTITY 属性设置不为 FULL ,则校验任务报警告。

修复方法

修改 wal_level/max_replication_slots/max_wal_senders 参数

修改参数 wal_levelmax_replication_slotsmax_wal_senders 的方法如下。
1. 登录源数据库。
说明:
如源数据库为自建数据库,需要登录至数据库的运行服务器上,进入数据库数据主目录中,一般为 $PGDATA。
如源数据库为其他云数据库,请使用相关云平台的参数修改方法。
如需要修改目标实例的参数,请通过 在线支持 处理。
2. 通常进入 postgresql.conf 文件中,打开此文件,修改对应参数。
wal_level = logical
max_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 ,则校验任务报警告。
出现警告,建议用户参考如下方法修改表的属性参数。
说明:
schemaName.tableName 请根据实际情况进行替换。
修改表的 REPLICA IDENTITY 属性时会短暂锁表,可能影响源库业务,建议在业务低峰期进行修改。
如果忽略校验任务的警告,DTS 会在同步期间自动执行以下命令。
ALTER TABLE schemaName.tableName REPLICA IDENTITY FULL;