postgresql同步流复制的Hot Standby

Postgresql的流复制是异步的,异步的缺点是Standby上的数据落后于主库上的数据,如果使用Hot Standby做读写分离,就会存在数据一致性的问题,对于一些一致性高的应用来说是不可接受的。所以PG从9.1之后提供了同步流复制的架构。同步复制要求在数据写入Standby数据后,事务的commit才返回,所以Standby库出现问题时,会导致主库被Hang住。解决这个问题的方法是启动两个standby数据库,这两个Standby数据库只有有一个是正常的,就不会让主库Hang住。所以在实际应用中,同步流复制,总是有一个主库和2个以上的Standby库。

   

     实现同步复制功能主要是在主库上配置参数”synchronous_standby_names",这个参数指定多个Standby的名称,各个名称之间通过逗号分隔,而Standby名称是在Standby连接到主库时,由连接参数“application_name"指定的。要使用同步复制,在Standby数据库中,recovery.conf里的primary_conninfo一定要指定连接参数”application_name"。

 

1、配置环境:

                                                                示例环境

主机名

IP地址

角色

系统版本

数据目录

pg版本

pg-1

10.0.2.60

主库

RedHat6.4

/usr/local/postgresql-9.4.4/data

9.4

pg-2

10.0.2.61

standby

RedHat6.4

/usr/local/postgresql-9.4.4/data

9.4

pg-3

10.0.2.62

standby

RedHat6.4

/usr/local/postgresql-9.4.4/data

9.4

 

2、1)在主库上修改pg_hba.conf:

host    replication     postgre        10.0.2.0/24             md5

    

   2)修改postgresql.conf :

max_wal_senders = 4

wal_level = hot_standby 

 hot_standby = on 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值