暂无图片
暂无图片
1
暂无图片
暂无图片
1
暂无图片

postgresql+patroni+ zookeeper,如何修改PG参数

张春光的一亩三分地 2020-11-30
1655

postgresql+patroni+ zookeeper这样的组合架构下,修改PG参数的方式有很多种,比如修改postgresql.base.conf,然后重启pg数据库,但这不是一个好主意;也可以通过zk的命令来修改,但是其命令格式实在不敢恭维。因此建议的修改方式是通过patroni来修改。

首先看一份参数文件:

[postgres@micky1pg_log]$ patronictl -c /home/postgres/patroni/pg_micky01.yml show-config

loop_wait:10

master_start_timeout:300

maximum_lag_on_failover:1048576

postgresql:

  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

    log_destination: csvlog

    log_directory: log

    log_file_mode: 384

    log_filename:postgresql-%Y-%m-%d_%H%M%S.log

    log_min_messages: warning

    log_rotation_age: 1d

    log_rotation_size: 10MB

    log_timezone: Asia/Shanghai

    log_truncate_on_rotation: false

    logging_collector: true

    maintenance_work_mem: 128MB

    max_connections: 1000

    max_wal_senders: 10

    max_wal_size: 1GB

    min_wal_size: 80MB

    port: 1921

    random_page_cost: 2.0

    seq_page_cost: 1.0

    shared_buffers: 128MB

    superuser_reserved_connections: 3

    synchronous_commit: false

    unix_socket_directories: /tmp

    unix_socket_group: ''

    unix_socket_permissions: 511

    wal_keep_segments: 512

    wal_level: logical

    work_mem: 4MB

  use_pg_rewind: true

  use_slots: true

retry_timeout:10

synchronous_mode:false

ttl: 30

注意加粗字体部分,这个是格式,如果看不到parameters,或这个关键字的位置不对,修改是无效的,徒劳。

另外参数和值的格式是:parameter:value

而不是:parameter = value

当然,还要注意中文字符,因为有时候败就败在“低级错误”上。

修改参数的命令为:

patronictl -c /home/postgres/patroni/pg_micky01.yml edit-config

其中patronictl是patroni的命令,如果环境变量里没有生命期路径的话,需要给出绝对路径;

/home/postgres/patroni是安装patroni的位置;

/home/postgres/patroni/pg_micky01.yml是定义集群的参数文件。

-c 和edit-config是patronictl命令的参数,edit-config用来编辑配置文件。

修改的时候和vi命令的用法是一样的,修改完会出现下面提示:

  log_filename: 'postgresql-%a.log'

  log_truncate_on_rotation: on

  log_rotation_age: 1d

  log_rotation_size: 0

  logging_collector: on

  log_file_mode: 0600

  archive_command: 'cp %p /archive_wals/%f'

retry_timeout: 10

synchronous_mode: true

ttl: 30

~

~

~

"/tmp/pg_micky-config-abnp60jp.yaml" 36L, 832C written

--- 

+++ 

@@ -22,6 +22,15 @@

   wal_level: replica

   wal_log_hints: 'on'

   work_mem: 32MB

+  log_destination: 'stderr'

+  log_directory: 'log'

+  log_filename: 'postgresql-%a.log'

+  log_truncate_on_rotation: on

+  log_rotation_age: 1d

+  log_rotation_size: 0

+  logging_collector: on

+  log_file_mode: 0600

+  archive_command: 'cp %p /archive_wals/%f'

 retry_timeout: 10

 synchronous_mode: true

 ttl: 30


Apply these changes? [y/N]: y

Configuration changed


这样输入Y,然后保存设置,如果值设置不合理或字符错误,则不能被保存。

保存之后,patroni会自动同步其他节点这些参数,同时reload PG数据库参数使其生效。

但是,有些参数需要重启PG才能生效:

[postgres@micky1 ~]$ patronictl -c /home/postgres/patroni/pg_micky1.yml list

+ Cluster: pg_micky (6864143465257765565) ---+---------+----+-----------+ -------------------+

|  Member    |      Host      |     Role     |  State  | TL | Lag in MB |  Pending restart   |

+------------+----------------+--------------+---------+----+-----------+ -------------------+

| pg_micky01 | 192.168.140.74 | Sync Standby | running |  5 |         0 |  *                 |

| pg_micky02 | 192.168.140.75 |              | running |  5 |         0 |  *                 |

| pg_micky03 | 192.168.140.76 |    Leader    | running |  5 |           |  *                 |

+------------+----------------+--------------+---------+----+-----------+ -------------------+

可以通过patroni的命令整个集群重启:

patronictl -c /home/postgres/patroni/pg_micky01.yml restart pg_micky

或者逐个节点重启:

patronictl -c /home/postgres/patroni/pg_micky01.yml restart pg_micky pg_micky01

patronictl -c /home/postgres/patroni/pg_micky01.yml restart pg_micky pg_micky02

patronictl -c /home/postgres/patroni/pg_micky01.yml restart pg_micky pg_micky03


文章转载自张春光的一亩三分地,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

冷狼
暂无图片
5月前
评论
暂无图片 0
postgresql+patroni+ zookeeper,如何修改PG参数
5月前
暂无图片 点赞
评论