Commit Graph

426 Commits

Author SHA1 Message Date
Ian Barwick
1a6d830314 Various logging, help output and comment tweaks 2016-01-27 17:10:54 +09:00
Ian Barwick
a96f478a43 Allow negative values in configuration parameters, where appropriate.
Make the code match the documentation.

As pointed out by GitHub user phyber (#142).

Also various other minor improvements to error reporting during
config file parsing.
2016-01-27 09:10:19 +09:00
Ian Barwick
8f20ab16dd Display default log level in -?/--help output 2016-01-25 14:39:21 +09:00
Ian Barwick
61e00bf1c7 Improve handling of default connection parameters 2016-01-22 14:14:14 +09:00
Ian Barwick
5d71869fc1 --help output: put default values in quotation marks
Similar to psql.
2016-01-20 15:56:26 +09:00
Ian Barwick
7598e08b6f Display default connection options in --help output 2016-01-20 15:46:41 +09:00
Ian Barwick
ba71e1eedf Use maxlen_snprintf() in do_witness_create() 2016-01-20 15:13:52 +09:00
Ian Barwick
a4c07b23fb Document --pg_rewind option in help output 2016-01-20 15:09:03 +09:00
Ian Barwick
0c36f921f7 help() -> do_help()
For consistency and easier location of the function body.
2016-01-20 15:02:03 +09:00
Ian Barwick
8ac5a5444e Enable repmgr standby switchover for 9.3/9.4 by recloning
A bit of a hack and unsuited for large databases - install
pg_rewind instead. Or upgrade to 9.5.
2016-01-20 14:51:16 +09:00
Ian Barwick
f60e7346e2 Don't copy 'recovery.done' or 'recovery.conf' when cloning a standby
'recovery.conf' will be overwritten, but we don't want a 'recovery.done'
for another server.
2016-01-20 14:34:13 +09:00
Ian Barwick
855ca8fe1a Support separately-compiled pg_rewind for "repmgr standby switchover" in 9.3/9.4 2016-01-20 14:21:02 +09:00
Ian Barwick
daa79d1a0f Remove any recovery.done file copied in by pg_rewind
It'll be the old standby/new primary's old recovery.conf file,
which we don't want floating about confusing things.
2016-01-20 13:18:52 +09:00
Ian Barwick
211768d911 Support pg_rewind when executing "repmgr standby switchover"
9.5 and later.
2016-01-20 13:05:47 +09:00
Ian Barwick
995083d66c Change event record type for repmgr standby follow to 'standby_follow' for consistency 2016-01-19 14:53:16 +09:00
Ian Barwick
cc1ea00333 Ensure event logging doesn't generate an error when cloning from a standby 2016-01-19 13:51:49 +09:00
Ian Barwick
ec3596521f Fix comment typo 2016-01-19 11:39:41 +09:00
Ian Barwick
66245ccc03 Add warning if -r used with -c 2016-01-14 23:12:41 +09:00
Ian Barwick
c7542063be Only display -c/--fast-checkpoint hint when using pg_basebackup 2016-01-14 22:51:02 +09:00
Ian Barwick
5359d45463 Remove deprecated -l/--local-port from --help output
We'll still parse it for backwards compatibility
2016-01-14 20:51:03 +09:00
Ian Barwick
f3d0ab9ab9 Improve "archive_mode" configuration check
There's no compelling reason to require "archive_mode" to be enabled
for streaming replication. It is of course a good idea to archive WAL
using e.g. barman ( http://www.pgbarman.org/ ) as part of a comprehensive
backup strategy, but repmgr and streaming replication work fine without
it.

Per GitHub #141.

Also revise the configuration check for "archive_command" to be
triggered only when "archive_mode" is not "off", as from PostgreSQL
9.5 onwards "archive_mode" can also be "on" or "always".
2016-01-14 09:33:08 +09:00
Ian Barwick
b72058dba8 Update copyright notice to 2016 2016-01-05 15:57:46 +09:00
Ian Barwick
cde721e3fc repmgr: -r/--rsync-only does not require a parameter 2016-01-05 11:04:20 +09:00
Ian Barwick
ba300c58f7 Make "cluster show" output dynamic
Calculate the width of the "Name" and "Upstream" columns dynamically.

Based on pull request #135 by sengaya, edited and modified by myself
to include a psql-like separator line.
2015-12-22 15:03:04 +09:00
Ian Barwick
f2370de2fa Minor fixes related to changes in 56b9ca79 2015-12-22 13:35:52 +09:00
Ian Barwick
3920deb803 Merge branch 'create_view_repl_show_nodes' of https://github.com/martinmarques/repmgr 2015-12-22 13:24:42 +09:00
Ian Barwick
e452bf6601 Short option -c does not take a value 2015-12-22 12:35:42 +09:00
Ian Barwick
167b4efbb3 Add note about why 'hot_standby=on' is currently required 2015-12-22 10:47:44 +09:00
Martin
56b9ca7992 Re-write part of commit from #116 so we have the query as a view to
use from the database.
Use the view instead of the query in cluster_show()
2015-12-18 20:53:52 -03:00
Martín Marqués
9c002c7e38 Merge pull request #116 from renard/follow
Add more information in "cluster show"
2015-12-18 18:31:07 -03:00
Ian Barwick
4db0efab47 pg_replslot will only exist in 9.4 and later
We need to clean this up regardless of whether "use_replication_slots"
is set.
2015-11-30 15:40:43 +09:00
Ian Barwick
864d57953a Ensure pg_replslot directory is cleaned up after "standby clone" with rsync
This ensures the directory is in the same state as it would be
after cloning the standby with pg_basebackup, i.e. empty.
2015-11-30 15:31:43 +09:00
Ian Barwick
62d53b7622 Drop a previously created replication slot if base backup fails for any reason
Per Github #129
2015-11-30 12:39:19 +09:00
Ian Barwick
77d52adb53 Use existing config file options when attempting to connect to server during switchover 2015-11-30 12:20:43 +09:00
Ian Barwick
7a3e2f2a3a Update help output with switchover-related commands 2015-11-30 12:20:37 +09:00
Ian Barwick
120688013e Add "standby switchover" mode
Perform a switchover by:
 - stopping current primary node
 - promoting this standby node to primary
 - forcing previous primary node to follow this node

Caveats:
 - repmgrd must not be running, otherwise it may
   attempt a failover
   (TODO: find some way of notifying repmgrd of planned
    activity like this)
 - currently only set up for two-node operation; any other
   standbys will probably become downstream cascaded standbys
   of the old primary once it's restarted
 - as we're executing repmgr remotely (on the old primary),
   we'll need the location of its configuration file; this
   can be provided explicitly with -C/--remote-config-file,
   otherwise repmgr will look in default locations on the
   remote server
 - this does not yet support "rewinding" stopped nodes
   which will be unable to catch up with the primary

TODO:
 - update help, docs
 - make connection test timeouts/intervals configurable
2015-11-30 12:20:24 +09:00
Ian Barwick
f6d1db5edb Ensure all failures encountered during a base backup jump to the stop_backup label 2015-11-30 12:12:59 +09:00
Ian Barwick
02729d299b Put "starting backup" notice after any slot creation 2015-11-30 12:12:49 +09:00
Abhijit Menon-Sen
88a6a1376e If we're using replication slots, we need to create them earlier
Otherwise, if the backup takes a long time, we might lose WAL we need
long before we create the slot.
2015-11-30 12:12:49 +09:00
Ian Barwick
67df082ee9 Ensure 'master register --force' can't create more than one active primary node record 2015-11-26 10:55:16 +09:00
Ian Barwick
9ed71d6317 Remove unusable setting
Not a configuration item or command line option;
variable is always false.
2015-11-26 10:20:54 +09:00
Ian Barwick
ced87373cd Remove hint about hash indexes entirely.
Anyone needing them, particularly in a replication context, should
know what they're doing anyway.

See also: http://www.postgresql.org/docs/current/interactive/sql-createindex.html#AEN74175

"Also, changes to hash indexes are not replicated over streaming or file-based
 replication after the initial base backup, so they give wrong answers to
 queries that subsequently use them. For these reasons, hash index use is presently
 discouraged."
2015-11-24 13:16:46 +09:00
Ian Barwick
1db22546a9 Add missing 'break' 2015-11-23 20:16:42 +09:00
Ian Barwick
7ae0df9c85 Remove unused variable 2015-11-23 16:42:53 +09:00
Ian Barwick
7a80f7a096 Shift some common but not terribly informative log messages to verbose mode only 2015-11-23 14:23:40 +09:00
Ian Barwick
8710e067d0 Logging fixes 2015-11-23 14:07:14 +09:00
Ian Barwick
d1b4280182 Add /etc/repmgr.conf as a default configuration file location
Also refactor configuration file handling while we're at it.

Previously a configuration file would be ignored if it couldn't
be opened, however that is now treated as an error.
2015-11-19 15:16:18 +09:00
Ian Barwick
64d038c823 Simplify logger_init() parameters
We're passing the t_configuration_options structure anyway, no need to
pass items it contains as separate parameters.
2015-11-19 14:05:20 +09:00
Ian Barwick
17ab86f7ac Don't display warnings about unused command line parameters in --terse mode 2015-11-19 11:09:36 +09:00
Ian Barwick
d433982af7 repmgr: don't error out on superfluous command line options
When parsing command line arguments in check_parameters_for_action(),
create warnings for paramters supplied but not required (e.g. -D/--data-dir
for MASTER REGISTER), rather than fail with error(s), as the
presence of the parameters won't cause any problems.

Errors will still be raised for required-but-missing parameters, of course.
2015-11-19 10:19:15 +09:00