You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

云托管Citus到RDS Aurora Postgres逻辑复制无数据如何排查?

云托管Citus到RDS Aurora PostgreSQL逻辑复制无数据问题排查

核心问题优先级处理顺序

先解决订阅端看不到订阅的问题,该问题为数据不同步的根因,再验证发布端配置、权限配置是否符合要求。

1. 订阅端订阅创建成功但不可见的排查

  • 权限校验:执行CREATE SUBSCRIPTION的用户必须持有Aurora实例的rds_superuser角色,普通用户即使执行命令返回成功,实际订阅不会生效,且普通用户查询pg_subscription系统视图默认无权限,会返回空结果。需用高权限用户执行SELECT * FROM pg_subscription;验证订阅是否真实存在。
  • 网络连通性校验:云托管Citus实例的安全组、网络ACL需放通Aurora实例的出站流量,端口默认5432,若网络不通,订阅后台初始化会静默失败,不会出现在订阅列表中。
  • 复制参数校验:Aurora端需确认max_logical_replication_workers、max_sync_workers_per_subscription参数值大于0,参数值不足会导致订阅创建后自动失效。

2. Citus发布端Publication配置校验

  • 发布表要求:发布的表必须配置REPLICA IDENTITY,有主键的表默认满足要求,无主键表需手动执行ALTER TABLE LogicalReplicationTest REPLICA IDENTITY FULL;。
  • 分布式表适配:云托管Citus的默认Publication仅会添加当前协调节点的本地表,分布式表的分片不会自动加入发布,需手动指定所有分片,或临时使用CREATE PUBLICATION testpub FOR ALL TABLES;验证发布配置是否生效。
  • 权限要求:创建Publication的用户对发布的表必须持有SELECT权限,否则发布不会捕获该表的变更日志。
  • 发布端参数校验:Citus实例的wal_level必须设置为logical,max_replication_slots、max_wal_senders参数值需大于当前已使用的数量,否则复制槽无法正常创建。

3. 同步表锁图标含义说明

列名旁的锁图标是数据库客户端工具(如pgAdmin)的可视化标识,除标识只读属性外,还代表该表关联了逻辑复制订阅,表上长期持有AccessShareLock锁,禁止执行DDL操作,避免逻辑复制进程因表结构变更中断。

4. 最终同步有效性校验

  • 发布端执行SELECT * FROM pg_replication_slots;,确认订阅对应的复制槽active状态为t。
  • 订阅端执行SELECT * FROM pg_stat_subscription;,查看last_msg_receipt_time是否有更新,无报错信息。
  • 发布端插入一条测试数据,执行SELECT pg_current_wal_lsn();记录当前LSN,订阅端执行SELECT pg_last_wal_replay_lsn();对比LSN进度,确认复制进程正常消费数据。

内容的提问来源于stack exchange,提问作者Ashish Karpe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 19:24:04