postgresql 高可用_Patroni + Etcd 实现高可用之三: 参数配置

本文详细介绍了在Patroni + Etcd高可用架构中如何查看、调整PostgreSQL的配置参数。通过Patroni统一管理参数可以减少配置错误,但也会带来一些操作上的变化,如不能直接修改postgresql.conf文件。可以使用etcdctl或patronictl查看和调整参数,如需仅调整特定节点参数,也能通过Patroni实现。同时,文章列举了两个常见错误及其解决方案。
摘要由CSDN通过智能技术生成

f5d2b87f1e05e0e407ec1db3a78b0135.png

原文链接: https://postgres.fun/20200602160100.html

前两篇文章介绍了Patroni + Etcd高可用部署和高可用测试,其中Patroni用来接管对PostgreSQL实例的管理,例如PostgreSQL的初始化、启动、停止、参数配置等,并将配置信息存储到etcd集群。

如果想修改PostgreSQL实例的参数,需通过Patroni统一管理,单独修改postgresql.conf参数不再生效,本文介绍Patroni + Etcd高可用方案中PostgreSQL的参数设置。

通过Patroni统一管理PostgreSQL的配置参数具有以下优点:

  • 对于不需要重启生效的参数,可在任意Patroni节点配置,修改后对其它节点也生效。
  • 所有Patroni节点都可以进行参数配置。
  • 减少配置工作量,减少人为配置错误。

通过Patroni统一管理PostgreSQL的配置参数也有让人不习惯的地方,例如:

  • Patroni新生成postgresql.base.conf配置文件,并将原有postgresql.conf的配置全部导入到此文件,之后重新生成postgresql.conf配置文件。
  • postgresql.conf配置文件不可手工修改,由Patroni管理。

总之,Patroni接管PostgreSQL的参数配置,对PostgreSQL维护体系侵入较大,使用时需注意。

通过etcdctl查看参数

查看数据库参数配置的方法有多种,单实例或主从架构下,可登录数据库查看,也可通过postgresql.conf查看。

Patroni + Etcd高可用方案中可以登录数据库查看,但每个节点的postgresql.conf或postgresql.base.conf文件中参数的配置并不一定生效。

由于Patroni参数存储在etcd中,因此可通过etcdctl命令查看,也可通过patronictl命令查看。

下面介绍下etcdctl查看数据库配置参数,在.bash_profile中设置以下环境变量:

export ETCDCTL_API=2
export ENDPOINTS="http://192.168.2.11:2379,http://192.168.2.12:2379,http://192.168.2.13:2379"

由于安装的是etcd3.4,etcd3.4默认使用API 3 版本,Patroni1.6 不支持 API 3版本,因此,使用API 2版本,设置ETCDCTL_API环境变量,同时设置ENDPOINTS环境变量。

使用etcdctl查看配置参数,如下:

[pg12@ydtf01 patroni]$ etcdctl --endpoints=$ENDPOINTS get /service/pg_ydtf/config | jq .
{
  "loop_wait": 10,
  "master_start_timeout": 300,
  "maximum_lag_on_failover": 1048576,
  "postgresql": {
    "use_pg_rewind": true,
    "use_slots": true,
    "parameters": {
      "archive_command": "/bin/date",
      "archive_mode": true,
      "autovacuum": true,
      "autovacuum_max_workers": 3,
      "bgwriter_delay": "10ms",
      "checkpoint_timeout": "30min",
      "full_page_writes": true,
      "hot_standby": true,
      "listen_addresses": "*",
      "log_autovacuum_min_duration": -1,
      "log_checkpoints": true,
      "log_connections": true,
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值