postgresql 主从配置_倾情打造PostgreSQL高可用系列(二):客户端的故障转移

本文介绍了如何在PostgreSQL 10及以上版本中,利用客户端进行故障转移以确保业务连续性。通过设置`target_session_attrs`参数,可以选择只读写连接到主节点或连接到任意服务器。使用`read-write`能确保在主节点故障时切换到从节点,而`any`选项可能导致写入错误。建议在读场景中使用`any`,并在读写场景中使用`read-write`以避免问题。通过Python客户端连接时,同样可以设置`target_session_attrs`来实现故障转移功能。
摘要由CSDN通过智能技术生成

前言

61913ce10784a902a87eacbad4e121f4.png

上一回我们讲了怎么安装pg_auto_failover,今天就来讲一下客户端怎么配置故障转移。

从PostgreSQL 10版本之后,使用PSQL客户端就可以利用libpq驱动进行故障转移(不能负载均衡)。也就是我们配置客户端连接,数据库的主节点或者备节点出现故障后,也可以保障业务的连续性。libpq是一组库函数,允许客户端程序将查询传递到PostgreSQL后端服务器并接收这些查询返回的结果。libpq还是其他几个PostgreSQL应用程序接口的基础引擎,包括为C ++,PHP,Perl,Python,Tcl,Swift和ECPG编写的接口。这里没有Java,因为Java的故障转移和负载均衡要使用PostgreSQL JDBC驱动程序。

在PSQL客户端,我们只需要配置好多个IP地址端口,调整参数target_session_attrs就行了。

target_session_attrs

  • read-write 在连接的时候,只接受可以读写的数据库。顾名思义,当它建立连接后,会发送SHOW transaction_read_only,如果是on,就代表是只读库,它就会把连接关闭,然后测试第二个数据库,以此类推,直至连接到支持读写的数据库为止。
  • any,它表示可以允许连接到任意数据库,它会从所有配置的连接中随机选择一个,如果连接的数据库出现故障导致连接断开,会尝试连接其他数据库,从而实现故障转移。

接下来我们来测试一下。

使用read-write连接到主节点

使用target_session_attrs=read-write,就可以连接到主节点进行读-写操作。还是先看一下我们的集群环境。

[postgres@paf1 data]$ pg_autoctl show state
  Name |  Node |  Host:Port |       LSN | Reachable |       Current State |      Assigned State
-------+-------+------------+-----------+-----------
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值