同步流复制配置
PostgreSql的流复制是异步的,缺点是Standby上的数据落后于主库上的数据,如果使用Hot Standby做读写分离,就会存在数据一致性的问题。PostgreSql9.1版本后提供了同步流复制的架构。同步复制的要求在数据写入Standby数据库后,事务commit才返回。
存在问题:当Standby数据出现问题时,会导致主库被hang住。
解决方法:启动两个或两个以上的Standby数据库。
配置方法,在主从配置基础上
主库synchronous_standby_names 参数指定多个Standby的名称,各个名称通过逗号分割,而Standby连接到主库由application_name 参数指定
主库
postgresql.conf
synchronous_standby_names = 'standby01,standby02'
从库
cat recovery.conf
standby_mode = 'on'
primary_conninfo = 'application_name=standby02 user=postgres host=10.2.0.14 port=5432 sslmode=disable sslcompression=1'
测试 (略)