在PostgreSQL 10 之前的流复制都是基于wal日志进行的物理复制,PostgreSQL 10版本中新增了一个逻辑复制的特性,逻辑复制是基于逻辑解析进行复制。它使用类似消息队列的发布者、订阅者的模型,利用复制槽的技术,发布者将wal日志解析成一定格式的数据流,订阅者对解析后的wal日志数据流进行回放应用,从而实现数据的同步。但是需要注意的是,PG的逻辑复制不是“SQL”复制,而是复制SQL操作的结果。
逻辑复制的优势
在进行发布时,可以选择发布 insert 、 delete 、 update,比如只发布insert、不发布update、delete
一个数据库可以有多个发布,保证发布不重名即可,可同规格pg_publication查看
允许一次性发布所有表
一个发布允许有多个订阅者