前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PostgreSQL 来自欧罗巴Patroni Patroni 管理下的POSTGRESQL 怎么修改参数 7

PostgreSQL 来自欧罗巴Patroni Patroni 管理下的POSTGRESQL 怎么修改参数 7

作者头像
AustinDatabases
发布2020-11-25 17:00:08
1.4K0
发布2020-11-25 17:00:08
举报
文章被收录于专栏:AustinDatabases

目前Patroni 系列已经更新到了7 , 本次的重点在于看如何在Patroni的管理下,修改系统的配置参数.

首先我们在修改配置参数的情况下,确认几点的先行需要知道的知识

1 POSTGRESQL 本身的配置文件在PATRONI 生效后,不会在对服务器配置生效

2 在修改了Patroni 中的 POSTGRESQL 的配置信息后,会对所在所有的集群的POSTGRESQL 的服务器生效,(仅仅不需要重启的配置)

3 修改配置需要通过patroni 来进行修改配置,而不能直接在postgresql.conf中修改

patronictl -c /etc/patroni.yml show-config

上面通过命令可以查看当前的集群中的POSTGRESQL 的配置信息,在以上的配置的基础上我们可以添加相关配置.

如我们添加几个配置

首先我们通过命令进入到POSTGRESQL的配置的编辑页面

patronictl -c /etc/patroni.yml edit-config pg_au

我们将shared_buffers 修改相关配置

点击Y 系统就会将这个配置分发到每个POSTGRESQL 的服务器,并且RELOAD到系统中.修改配置也会对之前的配置和修改后的配置,进行特殊展示.

但实际上根本不起作用

折腾了半个上午,到底是哪里有问题, 其中做了以下事情

1 在postgresql.conf 中修改了一些配置,然后reload 可以加载(我真没有想到)

2 删除postgresql.conf, postgresql.base.conf 然后重启动POSTGRESQL ,系统无法启动了,只能从其他数据库拷贝postgresql.conf 和 postgresql.base.conf 到原来的位置,在此启动系统,但原来希望能有变化的值,还是没有变化.

最终在一个国外的网站上看到下面的一个正确的配置,

错误的配置

在正确的配置中修改保存后,在patroni 的日志中,会显示下面的内容

patronictl -c /etc/patroni.yml show-config

这里需要明确的几个点是

1 通过edit-config 来配置的的信息必须要符合 YAML的格式,其中

配置选项在左面, 配置值在右面,并且通过冒号来分割,同时PATRONI 会检查你的配置,如果配置和值有误将不会保存你的配置.

loop_wait: 10

master_start_timeout: 300

maximum_lag_on_failover: 1048576

postgresql:

parameters:

archive_command: /bin/true

archive_mode: 'on'

autovacuum_max_workers: '6'

autovacuum_vacuum_scale_factor: '0.1'

autovacuum_vacuum_threshold: '50'

client_min_messages: WARNING

effective_cache_size: 512MB

hot_standby: 'on'

hot_standby_feedback: 'on'

listen_addresses: '*'

log_autovacuum_min_duration: 60s

log_checkpoints: 'on'

log_connections: 'on'

log_directory: pg_log

log_disconnections: 'on'

log_duration: 'on'

log_filename: postgresql-%a.log

log_line_prefix: '%m - %l - %p - %h - %u@%d - %x'

log_lock_waits: 'on'

log_min_duration_statement: 30s

log_min_error_statement: NOTICE

log_min_messages: WARNING

log_rotation_age: '1440'

log_statement: ddl

log_temp_files: '0'

log_timezone: PRC

log_truncate_on_rotation: 'on'

logging_collector: 'on'

maintenance_work_mem: 128MB

max_replication_slots: 10

max_wal_senders: '20'

port: 5432

shared_buffers: 2048MB

retry_timeout: 10

synchronous_mode: false

ttl: 30

修改相关的配置后会列出,然后直接在确认后就可以reload

这里我们需要确认那些配置可以立即被应用,那些不能,需要重启动可以通过pg_settings 来查看,其中 sighup 基本上都是可以通过reload 加载的,internal 则是不能修改的配置

例如我们修改postgresql 中有关数据库归档方面的配置,在更改完毕,并不会被Reload ,这里需要重新启动POSTGRESQL 才能将配置进行加载. 我们注意星号,星号的位置是说明有有一些配置是需要重启动patroni 才能被执行的.

我们通过patroni 的命令来重启动机器,结束后相关的星号就会消失详见下图

挨个重启动每台postgresql 然后

今天到这里先总结一下,首先patroni 修改配置还是比较方便的,并且靠谱的,并且对配置有检查,如果不合理或字符错误,则不能被保存. 同时不能reload的系统参数. 有些需要重启动的配置,需要在修改配置后,通过list 查看是否需要重启动,如果需要通过patroni的命令来将系统重启动.

另外如果对配置有特殊需求的可以参考上面的提出的 postgresql.custom_conf 来进行更定制化的一些配置.

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-11-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AustinDatabases 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档