postgresql流复制原理、流复制和逻辑复制的区别

流复制的原理:

物理复制也叫流复制,流复制的原理是主库把WAL发送给备库,备库接收WAL后,进行重放。

逻辑复制的原理:

逻辑复制也是基于WAL文件,在逻辑复制中把主库称为源端库,备库称为目标端数据库,源端数据库根据预先指定好的逻辑解析规则对WAL文件进行解析,把DML操作解析成一定的逻辑变化信息(标准SQL语句),源端数据库把标准SQL语句发给目标端数据库,目标端数据库接收到之后进行应用,从而实现数据同步。

流复制和逻辑复制的区别:

流复制主库上的事务提交不需要等待备库接收到WAL文件后的确认,逻辑复制相反。

  • 流复制要求主备库的大版本一致,逻辑复制可以跨大版本的数据同步,也可以实现异构数据库的数据同步。
  • 流复制的主库可读写,从库只允许读,逻辑复制的目标端数据库要求可读写
  • 流复制是对实例级别的复制(整个postgresql数据库),逻辑复制是选择性的复制一些表,所以是对表级别的复制。
  • 流复制有主库的DDL、DML操作,逻辑复制只有DML操作。

你可能感兴趣的:(postgresql流复制原理、流复制和逻辑复制的区别)