支持的 Postgres 版本
启用逻辑复制
rds.logical_replication = 1
- 为您的 Aurora PostgreSQL 版本创建一个新的参数组,并配置所需设置:
- 将
rds.logical_replication设置为 1
- 将
- 将新的参数组应用到您的 Aurora PostgreSQL 集群
- 重启您的 Aurora 集群以应用更改
配置数据库用户
-
为 ClickPipes 创建一个专用用户:
-
为上一步创建的用户授予 schema 级别的只读访问权限。以下示例展示了
publicschema 的权限。对每个包含待复制表的 schema,都重复执行这些命令: -
向该用户授予复制特权:
- 使用您想要复制的表创建一个 publication。我们强烈建议仅在 publication 中包含必要的表,以避免额外的性能开销。
-
为特定表创建 publication:
-
为特定 schema 中的所有表创建 publication:
-
为特定 schema 中的所有表创建 publication:
clickpipes publication 将包含从指定表生成的一组变更事件,后续将用于摄取复制 stream。
配置网络访问
基于 IP 的访问控制
Inbound rules 中。
通过 AWS PrivateLink 进行私有访问
Aurora 特定注意事项
- 连接端点:始终连接到 Aurora 集群的写入端点,因为逻辑复制需要写入权限来创建 replication slots,并且必须连接到主实例。
- 故障转移处理:发生故障转移时,Aurora 会自动将一个只读实例提升为新的写入实例。ClickPipes 会检测到连接中断,并尝试重新连接到写入端点;此时该端点会指向新的主实例。
- Global Database:如果你使用的是 Aurora Global Database,应连接到主区域的写入端点,因为跨区域复制已经负责处理区域之间的数据移动。
- 存储注意事项:Aurora 的存储层由集群中的所有实例共享,与标准 RDS 相比,这通常能为逻辑复制提供更好的性能。
处理动态集群端点
- 对于高可用部署,请将应用程序配置为使用 Aurora 写入端点,它会自动指向当前的主实例。
- 如果使用跨区域复制,请考虑为每个区域分别设置 ClickPipes,以降低延迟并提高容错能力。