主备切换
假设主库崩溃了,备库如何从只读状态切换为读写状态呢?只要把备库的postgresql.conf中hot_standby修改为off,并且删除recovery.conf,然后重启库就可以提供服务了。
PostgreSQL HOT-Standby 的主备切换 http://francs3.blog.163.com/blog/static/405767272011724103133766/
PostgreSQL的HA(主备切换) http://my.oschina.net/Kenyon/blog/98217
http://blog.csdn.net/feixiangtianshi/article/details/49151911
Postgresql的流复制是异步的,异步的缺点是Standby上的数据落后于主库上的数据,如果使用Hot Standby做读写分离,就会存在数据一致性的问题,对于一些一致性高的应用来说是不可接受的。所以PG从9.1之后提供了同步流复制的架构。同步复制要求在数据写入Standby数据后,事务的commit才返回,所以Standby库出现问题时,会导致主库被Hang住。解决这个问题的方法是启动两个standby数据库,这两个Standby数据库只有有一个是正常的,就不会让主库Hang住。所以在实际应用中,同步流复制,总是有一个主库和2个以上的Standby库。
主从流复制配置过程
环境: Centos 6.8, Postgresql 9.5
前提: 两个服务器都正确安装postgresql数据库.
以下是自己的配置过程:
配置主服务器:192.168.0.55
先创建用来做复制的账户:
1
2
3
psql-Upostgres #输入密码postgres_20121218 , 然后执行
postgres# CREATE ROLE replica login replication encrypted password 'replica';
postgres# \q 退出
修改配置:
1
vi/var/lib/pgsql/9.5/data/pg_hba.conf
增加对从数据库账户的流访问,同时创建一个账户给从数据库使用, 同时配置对流复制的支持, 有多台从服务器,就创建多条记录.
1
2
3
hostreplicationreplica192.168.0.66/24md5