pig patroni

Manage Patroni service and cluster with pig patroni subcommand

The pig patroni command (alias pig pt) manages Patroni service and PostgreSQL HA clusters. It wraps common patronictl and systemctl operations for simplified cluster management.

Overview

Cluster Operations (patronictl wrapper):

CommandAliasDescriptionImplementation
pt listls, lList cluster memberspatronictl list -e -t
pt restartreboot, rtRestart PostgreSQL instancepatronictl restart
pt reloadrl, hupReload PostgreSQL configpatronictl reload
pt reinitriReinitialize memberpatronictl reinit
pt switchoverswPlanned switchoverpatronictl switchover
pt failoverfoManual failoverpatronictl failover
pt pausepPause auto-failoverpatronictl pause
pt resumerResume auto-failoverpatronictl resume
pt configcfg, cShow or modify cluster configpatronictl show-config / edit-config

Service Management (systemctl wrapper):

CommandAliasDescriptionImplementation
pt startboot, upStart Patroni servicesystemctl start patroni
pt stophalt, dn, downStop Patroni servicesystemctl stop patroni
pt statusst, statShow service statussystemctl status patroni
pt logl, lgView Patroni logsjournalctl -u patroni

Service Subcommand (pt svc):

CommandAliasDescription
pt svc startboot, upStart Patroni service
pt svc stophalt, dn, downStop Patroni service
pt svc restartreboot, rtRestart Patroni service
pt svc reloadrl, hupReload Patroni service
pt svc statusst, statShow service status

Quick Start

# Check cluster member status
pig pt list                    # List default cluster members
pig pt list pg-meta            # List specific cluster
pig pt list -W                 # Continuous watch mode
pig pt list -w 5               # Refresh every 5 seconds

# View and modify cluster config
pig pt config                  # Show current cluster config
pig pt config ttl=60           # Modify single config item (immediate effect)
pig pt config ttl=60 loop_wait=15  # Modify multiple config items

# Cluster operations
pig pt restart                 # Restart all members' PostgreSQL
pig pt restart pg-test-1       # Restart specific member
pig pt switchover              # Planned switchover
pig pt pause                   # Pause auto-failover
pig pt resume                  # Resume auto-failover

# Manage Patroni service
pig pt status                  # Check service status
pig pt start                   # Start service
pig pt stop                    # Stop service
pig pt log -f                  # Real-time log viewing

Global Options

These options apply to all pig pt subcommands:

OptionShortDescription
--dbsu-UDatabase superuser (default: $PIG_DBSU or postgres)

Cluster Commands

pt list

List Patroni cluster member status. Wraps patronictl list with -e (extended output) and -t (show timestamp) flags by default.

pig pt list                    # List default cluster members
pig pt list pg-meta            # List specific cluster
pig pt list -W                 # Continuous watch mode
pig pt list -w 5               # Refresh every 5 seconds
pig pt list pg-test -W -w 3    # Watch pg-test cluster, 3s refresh

Options:

OptionShortDescription
--watch-WEnable continuous watch mode
--interval-wWatch refresh interval (seconds)

pt restart

Restart PostgreSQL instance via Patroni. This triggers a rolling restart of PostgreSQL, not the Patroni daemon itself.

pig pt restart                   # Restart all members (interactive)
pig pt restart pg-test-1         # Restart specific member
pig pt restart -f                # Skip confirmation
pig pt restart --role=replica    # Restart replicas only
pig pt restart --pending         # Restart pending members

Options:

OptionShortDescription
--force-fSkip confirmation
--roleFilter by role (primary/replica)
--pendingRestart only pending members

pt reload

Reload PostgreSQL configuration via Patroni. Triggers config reload on all members.

pig pt reload

pt reinit

Reinitialize cluster member. This re-syncs data from the primary.

pig pt reinit pg-test-1          # Reinit specific member
pig pt reinit pg-test-1 -f       # Skip confirmation
pig pt reinit pg-test-1 --wait   # Wait for completion

Options:

OptionShortDescription
--force-fSkip confirmation
--wait-wWait for reinit completion

Warning: This operation deletes all data on the target member and re-syncs from primary.

pt switchover

Perform planned primary-replica switchover.

pig pt switchover                 # Interactive switchover
pig pt switchover -f              # Skip confirmation
pig pt switchover --leader pg-1   # Specify current primary
pig pt switchover --candidate pg-2  # Specify new primary

Options:

OptionShortDescription
--force-fSkip confirmation
--leaderSpecify current primary
--candidateSpecify candidate new primary

pt failover

Perform manual failover. Used when primary is unavailable.

pig pt failover                   # Interactive failover
pig pt failover -f                # Skip confirmation
pig pt failover --candidate pg-2  # Specify new primary

Options:

OptionShortDescription
--force-fSkip confirmation
--candidateSpecify candidate new primary

pt pause

Pause Patroni’s automatic failover.

pig pt pause                      # Pause auto-failover
pig pt pause --wait               # Wait for confirmation

Options:

OptionShortDescription
--wait-wWait for operation completion

Use case: Pause auto-failover during maintenance operations (e.g., major version upgrade, storage migration) to prevent accidental triggers.

pt resume

Resume Patroni’s automatic failover.

pig pt resume                     # Resume auto-failover
pig pt resume --wait              # Wait for confirmation

Options:

OptionShortDescription
--wait-wWait for operation completion

pt config

Show or modify cluster configuration. Without parameters shows current config, with key=value parameters modifies config.

pig pt config                           # Show current cluster config
pig pt config show                      # Show config (explicit)
pig pt config edit                      # Interactive config edit
pig pt config set ttl=60                # Set TTL to 60 seconds
pig pt config set ttl=60 loop_wait=15   # Modify multiple config items
pig pt config pg max_connections=200    # Modify PostgreSQL parameter

Subcommands:

SubcommandDescription
show (default)Show current config
editInteractive config edit
set key=valueDirectly set config item
pg key=valueSet PostgreSQL parameter

Common config items:

ConfigDescriptionDefault
ttlLeader lock time-to-live (seconds)30
loop_waitMain loop sleep time (seconds)10
retry_timeoutDCS and PostgreSQL operation timeout (seconds)10
maximum_lag_on_failoverMaximum lag allowed during failover (bytes)1048576

Note: This command modifies dynamic cluster config stored in DCS (e.g., etcd), not local config file /etc/patroni/patroni.yml.

Service Commands

pt start

Start Patroni service.

pig pt start                     # Start Patroni service
pig pt up                        # Alias
pig pt boot                      # Alias

Equivalent to sudo systemctl start patroni.

pt stop

Stop Patroni service.

pig pt stop                      # Stop Patroni service
pig pt down                      # Alias
pig pt halt                      # Alias

Equivalent to sudo systemctl stop patroni.

Note: Stopping Patroni service will also stop the PostgreSQL instance on this node (depending on Patroni configuration).

pt status

Show Patroni service comprehensive status, including:

  • systemd service status
  • Patroni process info
  • Cluster member status
pig pt status

pt log

View Patroni service logs.

pig pt log                     # Show last 50 log lines
pig pt log -f                  # Real-time log following
pig pt log -n 100              # Show last 100 log lines
pig pt log -f -n 200           # Show last 200 lines and follow

Options:

OptionShortDefaultDescription
--follow-ffalseReal-time log following
--lines-n50Number of log lines to show

Equivalent to journalctl -u patroni [-f] [-n N].

pt svc Subcommand

pt svc provides the same functionality as top-level service commands, for explicitly operating on the Patroni daemon:

pig pt svc start                 # Start Patroni service
pig pt svc stop                  # Stop Patroni service
pig pt svc restart               # Restart Patroni service
pig pt svc reload                # Reload Patroni service
pig pt svc status                # Show service status

Alias Reference:

CommandAlias
pt svc startboot, up
pt svc stophalt, dn, down
pt svc restartreboot, rt
pt svc reloadrl, hup
pt svc statusst, stat

Design Notes

Relationship with patronictl:

pig pt wraps common patronictl operations:

  • Cluster queries: list, config show
  • Cluster management: restart, reload, reinit, switchover, failover, pause, resume
  • Config modification: config set, config edit
  • Service commands (start/stop/restart/reload/status) call systemctl
  • log command calls journalctl

Default Config Paths:

ConfigDefault
Patroni config file/etc/patroni/patroni.yml
Service namepatroni

Permission Handling:

  • If current user is DBSU: execute commands directly
  • If current user is root: use su - postgres -c "..." to execute
  • Other users: use sudo -inu postgres -- ... to execute

Platform Support:

This command is designed for Linux systems, depends on systemctl and journalctl.


Last Modified 2026-01-27: update pig command (436c6cb)