支持的 Postgres 版本
启用逻辑复制
rds.logical_replication = 1
- 为你的 Postgres 版本创建一个包含所需设置的新参数组:
- 将
rds.logical_replication设置为 1
- 将
- 将新参数组应用到你的 RDS Postgres 数据库
- 重启你的 RDS 实例以使更改生效
配置数据库用户
-
为 ClickPipes 创建一个专用用户:
-
为上一步创建的用户授予 schema 级只读权限。以下示例展示了
publicschema 的权限。对于每个包含你要复制的表的 schema,都需要重复执行这些命令: -
向该用户授予复制特权:
- 使用你要复制的表创建一个 publication。我们强烈建议只在 publication 中包含实际需要的表,以避免额外的性能开销。
-
为特定表创建 publication:
-
为特定 schema 中的所有表创建 publication:
-
为特定 schema 中的所有表创建 publication:
clickpipes publication 定义了将变更事件流式传输到 ClickPipes 的那组表。除非你打算复制每一张表,否则我们不建议使用 FOR ALL TABLES,因为包含不必要的表会增加从 Postgres 到 ClickPipes 的 WAL 流量,并降低整体复制效率。
使用 IAM 身份验证 (可选)
用于复制的 IAM 身份验证要求将
rds.iam_auth_for_replication 参数设为 1。PostgreSQL 11 及更高版本支持此功能;在更早的版本中,你只能运行 Initial Load Only ClickPipes。配置网络访问
基于 IP 的访问控制
Inbound rules 中。
通过 AWS PrivateLink 进行私有访问
RDS Proxy 的替代方案
- 使用 cron 作业定期解析 RDS 端点的 IP,并在 IP 发生变化时更新 NLB。
- 使用结合 EventBridge/SNS 的 RDS 事件通知:通过 AWS RDS 事件通知自动触发更新。
- 使用稳定的 EC2:部署一个 EC2 实例,充当轮询服务或基于 IP 的代理。
- 使用 Terraform 或 CloudFormation 等工具自动管理 IP 地址。