################################################### # repmgr sample configuration file ################################################### # Some configuration items will be set with a default value; this # is noted for each item. Where no default value is shown, the # parameter will be treated as empty or false. # ============================================================================= # Required configuration items # ============================================================================= # # repmgr and repmgrd require the following items to be explicitly configured. #node_id= # A unique integer greater than zero #node_name='' # An arbitrary (but unique) string; we recommend # using the server's hostname or another identifier # unambiguously associated with the server to avoid # confusion. Avoid choosing names which reflect the # node's current role, e.g. "primary" or "standby1", # as roles can change and it will be confusing if # the current primary is called "standby1". #conninfo='' # Database connection information as a conninfo string. # All servers in the cluster must be able to connect to # the local node using this string. # # For details on conninfo strings, see: # https://www.postgresql.org/docs/current/static/libpq-connect.html#LIBPQ-CONNSTRING # # If repmgrd is in use, consider explicitly setting # "connect_timeout" in the conninfo string to determine # the length of time which elapses before a network # connection attempt is abandoned; for details see: # https://www.postgresql.org/docs/current/static/libpq-connect.html#LIBPQ-CONNECT-CONNECT-TIMEOUT #data_directory='' # The node's data directory. This is needed by repmgr # when performing operations when the PostgreSQL instance # is not running and there's no other way of determining # the data directory. #replication_user='repmgr' # User to make replication connections with, if not set defaults # to the user defined in "conninfo". # ============================================================================= # Optional configuration items # ============================================================================= #------------------------------------------------------------------------------ # Replication settings #------------------------------------------------------------------------------ #replication_type=physical # Must be one of 'physical' or 'bdr'. #location=default # arbitrary string defining the location of the node; this # is used during failover to check visibilty of the # current primary node. See the 'repmgrd' documentation # in README.md for further details. #use_replication_slots=no # whether to use physical replication slots # NOTE: when using replication slots, # 'max_replication_slots' should be configured for # at least the number of standbys which will connect # to the primary. #------------------------------------------------------------------------------ # Witness server settings #------------------------------------------------------------------------------ #witness_sync_interval=15 # interval (in seconds) to synchronise node records # to the witness server #------------------------------------------------------------------------------ # Logging settings #------------------------------------------------------------------------------ # # Note that logging facility settings will only apply to `repmgrd` by default; # `repmgr` will always write to STDERR unless the switch `--log-to-file` is # supplied, in which case it will log to the same destination as `repmgrd`. # This is mainly intended for those cases when `repmgr` is executed directly # by `repmgrd`. #log_level=INFO # Log level: possible values are DEBUG, INFO, NOTICE, # WARNING, ERROR, ALERT, CRIT or EMERG #log_facility=STDERR # Logging facility: possible values are STDERR, or for # syslog integration, one of LOCAL0, LOCAL1, ..., LOCAL7, USER #log_file='' # stderr can be redirected to an arbitrary file: #log_status_interval=300 # interval (in seconds) for repmgrd to log a status message #------------------------------------------------------------------------------ # Event notification settings #------------------------------------------------------------------------------ # event notifications can be passed to an arbitrary external program # together with the following parameters: # # %n - node ID # %e - event type # %s - success (1 or 0) # %t - timestamp # %d - details # # the values provided for "%t" and "%d" will probably contain spaces, # so should be quoted in the provided command configuration, e.g.: # # event_notification_command='/path/to/some/script %n %e %s "%t" "%d"' # # By default, all notifications will be passed; the notification types # can be filtered to explicitly named ones, e.g.: # # event_notifications=primary_register,standby_register #event_notification_command='' # An external program or script which # can be executed by the user under which # repmgr/repmgrd are run. #event_notifications='' # A commas-separated list of notification # types #------------------------------------------------------------------------------ # Environment/command settings #------------------------------------------------------------------------------ #pg_bindir='' # Path to PostgreSQL binary directory (location # of pg_ctl, pg_basebackup etc.). Only needed # if these files are not in the system $PATH. # # Debian/Ubuntu users: you will probably need to # set this to the directory where `pg_ctl` is located, # e.g. /usr/lib/postgresql/9.6/bin/ #use_primary_conninfo_password=false # explicitly set "password" in recovery.conf's # "primary_conninfo" parameter using the value contained # in the environment variable PGPASSWORD #passfile='' # path to .pgpass file to include in "primary_conninfo" #------------------------------------------------------------------------------ # external command options #------------------------------------------------------------------------------ # # Options which can be passed to external commands invoked by repmgr/repmgrd. # # Examples: # # pg_ctl_options='-s' # pg_basebackup_options='--label=repmgr_backup # rsync_options=--archive --checksum --compress --progress --rsh="ssh -o \"StrictHostKeyChecking no\"" # ssh_options=-o "StrictHostKeyChecking no" #pg_ctl_options='' # Options to append to "pg_ctl" #pg_basebackup_options='' # Options to append to "pg_basebackup" #rsync_options='' # Options to append to "rsync" ssh_options='-q -o ConnectTimeout=10' # Options to append to "ssh" #------------------------------------------------------------------------------ # "standby clone" settings #------------------------------------------------------------------------------ # # These settings apply when cloning a standby ("repmgr standby clone"). # # Examples: # # tablespace_mapping=/path/to/original/tablespace=/path/to/new/tablespace # restore_command = 'cp /path/to/archived/wals/%f %p' #tablespace_mapping='' # Tablespaces can be remapped from one # file system location to another. This # parameter can be provided multiple times. #restore_command='' # This will be placed in the recovery.conf file generated # by repmgr. #archive_cleanup_command='' # This will be placed in the recovery.conf file generated # by repmgr. Note we recommend using Barman for managing # WAL archives (see: https://www.pgbarman.org ) #recovery_min_apply_delay= # If provided, "recovery_min_apply_delay" in recovery.conf # will be set to this value (PostgreSQL 9.4 and later). #------------------------------------------------------------------------------ # "standby promote" settings #------------------------------------------------------------------------------ # These settings apply when instructing a standby to promote itself to the # new primary ("repmgr standby promote"). #promote_check_timeout=60 # The length of time (in seconds) to wait # for the new primary to finish promoting #promote_check_interval=1 # The interval (in seconds) to check whether # the new primary has finished promoting #------------------------------------------------------------------------------ # Standby follow settings #------------------------------------------------------------------------------ # These settings apply when instructing a standby to follow the new primary # ("repmgr standby follow"). #primary_follow_timeout=60 # The length of time (in seconds) to wait # for the new primary to become available #------------------------------------------------------------------------------ # Barman options #------------------------------------------------------------------------------ #barman_server='' # The barman configuration section #barman_host='' # The host name of the barman server #barman_config='' # The Barman configuration file on the # Barman server (needed if the file is # in a non-standard location) #------------------------------------------------------------------------------ # Failover and monitoring settings (repmgrd) #------------------------------------------------------------------------------ # # These settings are only applied when repmgrd is running. Values shown # are defaults. #failover=manual # one of 'automatic', 'manual'. # determines what action to take in the event of upstream failure # # 'automatic': repmgrd will automatically attempt to promote the # node or follow the new upstream node # 'manual': repmgrd will take no action and the node will require # manual attention to reattach it to replication # (does not apply to BDR mode) #priority=100 # indicate a preferred priorty for promoting nodes; # a value of zero prevents the node being promoted to primary # (default: 100) #reconnect_attempts=6 # Number attempts which will be made to reconnect to an unreachable # primary (or other upstream node) #reconnect_interval=10 # Interval between attempts to reconnect to an unreachable # primary (or other upstream node) #promote_command= # command to execute when promoting a new primary; use something like: # # repmgr standby promote -f /etc/repmgr.conf # #follow_command= # command to execute when instructing a standby to follow a new primary; # use something like: # # repmgr standby follow -f /etc/repmgr.conf -W --upstream-node-id=%n # #primary_notification_timeout=60 # Interval (in seconds) which repmgrd on a standby # will wait for a notification from the new primary, # before falling back to degraded monitoring #standby_reconnect_timeout=60 # Interval (in seconds) which repmgrd on a standby will wait # to reconnect to the local node after executing "follow_command" #monitoring_history=no # Whether to write monitoring data to the "montoring_history" table #monitor_interval_secs=2 # Interval (in seconds) at which to write monitoring data #degraded_monitoring_timeout=-1 # Interval (in seconds) after which repmgrd will terminate if the # server being monitored is no longer available. -1 (default) # disables the timeout completely. #async_query_timeout=60 # Interval (in seconds) which repmgrd will wait before # cancelling an asynchronous query. #------------------------------------------------------------------------------ # service control commands #------------------------------------------------------------------------------ # # repmgr provides options to override the default pg_ctl commands # used to stop, start, restart, reload and promote the PostgreSQL cluster # # NOTE: These commands must be runnable on remote nodes as well for switchover # to function correctly. # # If you use sudo, the user repmgr runs as (usually 'postgres') must have # passwordless sudo access to execute the command. # # For example, to use systemd, you can set # # service_start_command = 'sudo systemctl start postgresql-9.6' # (...) # # and then use the following sudoers configuration: # # # this is required when running sudo over ssh without -t: # Defaults:postgres !requiretty # postgres ALL = NOPASSWD: /usr/bin/systemctl stop postgresql-9.6, \ # /usr/bin/systemctl start postgresql-9.6, \ # /usr/bin/systemctl restart postgresql-9.6 # #service_start_command = '' #service_stop_command = '' #service_restart_command = '' #service_reload_command = '' #service_promote_command = '' # Note: this overrides any value contained in the setting # "promote_command". This is intended for systems which # provide a package-level promote command, such as Debian's # "pg_ctlcluster" #------------------------------------------------------------------------------ # Status check thresholds #------------------------------------------------------------------------------ # Various warning/critical thresholds used by "repmgr node check". #archive_ready_warning=16 # repmgr node check --archive-ready #archive_ready_critical=128 # # Numbers of files pending archiving via PostgreSQL's # "archive_command" configuration parameter. If # files can't be archived fast enough, or the archive # command is failing, the buildup of files can # cause various issues, such as server shutdown being # delayed until all files are archived, or excessive # space being occupied by unarchived files. # # Note that these values will be checked when executing # "repmgr standby switchover" to warn about potential # issues with shutting down the demotion candidate. #replication_lag_warning=300 # repmgr node check --replication-lag #replication_lag_critical=600 # # Note that these values will be checked when executing # "repmgr standby switchover" to warn about potential # issues with shutting down the demotion candidate. #------------------------------------------------------------------------------ # BDR monitoring options #------------------------------------------------------------------------------ #bdr_local_monitoring_only=false # Only monitor the local node; no checks will be # performed on the other node #bdr_recovery_timeout # If a BDR node was offline and has become available # maximum length of time in seconds to wait for the # node to reconnect to the cluster