DBAtlas · 데이터베이스 운영 아틀라스

Patroni에서 클러스터 전체 파라미터 변경(edit-config) 및 대기 중인 재시작 적용

PostgreSQLPatroni

명령어

# Show the current dynamic configuration stored in the DCS:
patronictl -c /etc/patroni/patroni.yml show-config <cluster>
# Cluster-wide PostgreSQL parameter (distributed to all members):
patronictl -c /etc/patroni/patroni.yml edit-config <cluster> -p 'work_mem=64MB' -p 'max_connections=500' --force
# Patroni behavior parameter:
patronictl -c /etc/patroni/patroni.yml edit-config <cluster> -s 'maximum_lag_on_failover=1048576' --force
# Parameters requiring a restart are flagged as 'Pending restart':
patronictl -c /etc/patroni/patroni.yml list <cluster> -e
# Restart replicas first, then the leader:
patronictl -c /etc/patroni/patroni.yml restart <cluster> --role replica --pending --force
patronictl -c /etc/patroni/patroni.yml restart <cluster> --role leader --pending --force

하는 일

PostgreSQL 및 Patroni 파라미터를 DCS의 동적 구성에 기록한다. Patroni는 변경을 모든 멤버에 적용하고, reload 가능한 파라미터는 즉시 활성화하며, 재시작이 필요한 파라미터는 'Pending restart'로 표시한다.

사용 시점

Patroni가 관리하는 클러스터의 모든 노드에서 max_connections, shared_buffers, work_mem 같은 파라미터를 일관되게 변경하기 위해.

주의

Patroni 환경에서는 postgresql.conf를 수동으로 편집하거나 ALTER SYSTEM을 사용하지 않는다. Patroni가 postgresql.conf를 다시 쓰고, postgresql.auto.conf가 Patroni 설정을 덮어써 노드 간 불일치가 생긴다. standby의 max_connections, max_worker_processes, max_wal_senders, max_prepared_transactions, max_locks_per_transaction은 primary보다 낮을 수 없으므로 재시작 순서를 그에 맞게 계획한다.

DBAtlas에서 열기 →

관련 항목