repmgr standby promoterepmgr standby promoterepmgr standby promotepromote a standby to a primaryDescription
Promotes a standby to a primary if the current primary has failed. This
command requires a valid repmgr.conf file for the standby, either
specified explicitly with -f/--config-file or located in a
default location; no additional arguments are required.
If the standby promotion succeeds, the server will not need to be
restarted. However any other standbys will need to follow the new server,
by using ; if &repmgrd;
is active, it will handle this automatically.
Note that &repmgr; will wait for up to promote_check_timeout seconds
(default: 60 seconds) to verify that the standby has been promoted, and will
check the promotion every promote_check_interval seconds (default: 1 second).
Both values can be defined in repmgr.conf.
If WAL replay is paused on the standby, and not all WAL files on the standby have been
replayed, &repmgr; will not attempt to promote it.
This is because if WAL replay is paused, PostgreSQL itself will not react to a promote command
until WAL replay is resumed and all pending WAL has been replayed. This means
attempting to promote PostgreSQL in this state will leave PostgreSQL in a condition where the
promotion may occur at a unpredictable point in the future.
Note that if the standby is in archive recovery, &repmgr; will not be able to determine
if more WAL is pending replay, and will abort the promotion attempt if WAL replay is paused.
Example
$ repmgr -f /etc/repmgr.conf standby promote
NOTICE: promoting standby to primary
DETAIL: promoting server "node2" (ID: 2) using "pg_ctl -l /var/log/postgres/startup.log -w -D '/var/lib/postgres/data' promote"
server promoting
DEBUG: setting node 2 as primary and marking existing primary as failed
NOTICE: STANDBY PROMOTE successful
DETAIL: server "node2" (ID: 2) was successfully promoted to primaryOptions
Check if this node can be promoted, but don't carry out the promotion
Configuration file settings
The following parameters in repmgr.conf are relevant to the
promote operation:
promote_check_intervalwith "repmgr standby promote "promote_check_interval:
interval (in seconds, default: 1 second) to wait between each check
to determine whether the standby has been promoted.
promote_check_timeoutwith "repmgr standby promote "promote_check_timeout:
time (in seconds, default: 60 seconds) to wait to verify that the standby has been promoted
before exiting with ERR_PROMOTION_FAIL.
Exit codes
Following exit codes can be emitted by repmgr standby promote:
The standby was successfully promoted to primary.
&repmgr; was unable to connect to the local PostgreSQL node.
PostgreSQL must be running before the node can be promoted.
The node could not be promoted to primary for one of the following
reasons:
there is an existing primary node in the replication cluster
the node is not a standby
WAL replay is paused on the node
execution of the PostgreSQL promote command failed
Event notifications
A standby_promote event notification will be generated.