|
发表于 2020-7-7 05:26:52
|
显示全部楼层
在 PostgreSQL 里没有像SQL Server 一样的 CDC服务,但是可以通过 Logical Replication 来实现,既把用户的Insert/Update/Delete 记录在Log里。
基本上跟本地服务器差不多,只是服务器端的设定是通过AWS Console 完成的。
1)必须在 RDS 新建一个 Parameter Group,然后修改其中的: rds.logical_replication, 从0改成1
2)max_replication_slots, 最少要有1个 slots3)把 PostgreSQL 的默认parameter group 改成这个用户自定义的group,然后重新启动服务。
几个有用的命令:
show wal_level, 这个值应该是 logical
- select pg_create_logical_replication_slot('<slot name'>,'<description>') --新建一个 slot
- select * from pg_catalog.pg_replication_slots -- 查看slots
复制代码 如果你完成的Insert/update/delete,可以通过下面的语句查看:
- select pg_logical_slot_peek_changes('<slot name>',null,null, ['include-timestamp','on']) --保留slot
- select * from pg_logical_slot_get_changes('<slot name>',null,null, ['include-timestamp','on']) --看完就删
复制代码
|
|