Synchronous replication 其实就是同步复制,即意味着直到被主服务器和复制服务器均接收完事务时,事务才会返回给应用程序。这点就确保了即便在主服务器永久下线的情况下,任何已提交事务的数据都不会丢失。

    其实同步搭建和异步搭建只需要在主库上和备库上新增一个配置文件就可以了。

    异步同步搭建链接:postgres streaming replication 搭建

 

主库:

在postgresql.conf配置文件中新增:

synchronous_standby_names = 'mydb_standby'

 

备库:

在recovery.conf 配置文件修改:

primary_conninfo = 'host=192.168.1.11 port=5432 user=repuser password=repuser  keepalives_idle=60 keepalives_interval=5 keepalives_count=5'
​修改成
primary_conninfo = 'host=192.168.1.11 port=5432 user=repuser password=repuser application_name=mydb_standby keepalives_idle=60 keepalives_interval=5 keepalives_count=5'

注意:

      若开启同步复制,若一个 standby 节点 crash ,而又没有其它standby 节点顶上,那么主库上的所有操作将会被 HANG 住,直到备库恢复;主库才恢复正常,如果是很重要的业务,建议至少配置两个 standby 节点,提高高可用性。