主备流复制环境搭建请参考http://blog.csdn.net/baiyinqiqi/article/details/47833811,参考文章介绍的是异步流复制环境的搭建,实际上同步模式只需要修改主库的几个参数即可实现。
主:192.168.3.201
从:192.168.3.202
postgresql 的几种流复制:
1+n异步流复制:1是指master,n是指slave。一个master可以有多个slave。
1+1+n同步加异步流复制:也就是说1个master与n个slave的流复制环境,在n个slave中有一个slave是同步模式,其它是异步模式。如果同步的slave挂掉,其它异步的slave会选举出一个slave切换到同步模式,整个流复制环境仍能够保证1+1+n的结构。
级联流复制:1个master A,一个slave B直连A,其它slave连B,从B获取数据。这种方式要9.2或更高版本支持。
这里流复制环境的搭建不再重复,仅介绍下如何将异步模式修改为同步模式:
修改master的postgresql.conf
synchronous_standby_names = '*' # *=all,意思是所有slave都被允许以同步方式连接到master,但同一时间只能有一台slave是同步模式。另外可以指定slave,将值设置为slave的application_name即可。
synchronous_commit = on #这个参数控制是否等待wal日志buffer写入磁盘再返回用户事物状态信息。这个对性能影响还是比较大的