数据库访问

如何连接至Pigsty提供的数据库集群?

访问方式

用户可以通过多种方式访问数据库服务,但我们强烈建议使用统一的接入方式。

在实例层次,可以通过5432端口直连Postgres数据库,也可以通过6432端口经由Pgbouncer访问数据库。即可以通过IP地址直接访问,也可以通过节点域名解析访问。

在集群层次,每个集群带有一个可选的绑定至主库所在节点的VIP。可以通过VIP访问主库实例。同时,集群中的所有成员都运行有无状态的Haproxy负载均衡器。访问任意一个Haproxy实例都可以将只读流量与读写流量路由至集群的对应实例上。Haproxy本身的高可用亦通过绑定在主库的VIP实现。

样例

以Pigsty自带的沙箱为例,您可以通过下列方式访问数据库。

VIP:              10.10.10.3 → active_primary([10.10.10.11, 10.10.10.12, 10.10.10.13])
DNS:              pg-test  → 10.10.10.3 (VIP)
                  pg-test-primary → active_primary([10.10.10.11, 10.10.10.12, 10.10.10.13])
                  pg-test-replica → active_replicas([10.10.10.11, 10.10.10.12, 10.10.10.13]) 
 
Primary Raw:      postgres://10.10.10.11
Primary Raw Pool: postgres://10.10.10.11:6432
Primary Raw Auto: postgres://10.10.10.11,10.10.10.12,10.10.10.13?target_session_attrs=read-write
Primary VIP:      postgres://10.10.10.2
Primary Proxy:    postgres://10.10.10.11:5433 , postgres://10.10.10.12:5433, postgres://10.10.10.13:5433
Primary DNS:      postgres://pg-test ,  postgres://pg-test:5433, postgres://pg-test-primary

Replica Raw:      postgres://10.10.10.12,      postgres://10.10.10.13
Replica Raw Pool: postgres://10.10.10.12:6432, postgres://10.10.10.13:6432
Replica Raw Auto: postgres://10.10.10.11,10.10.10.12,10.10.10.13:5432
Replica Proxy:    postgres://10.10.10.11:5434 , postgres://10.10.10.12:5434, postgres://10.10.10.13:5434
Replica DNS:      postgres://pg-test:5434, postgres://pg-test-replica

pg-meta的默认VIP是 10.10.10.2 ,而 pg-test的默认VIP是10.10.10.3

最后修改 2021-03-17: update doc v0.8 (9fccdbf)