Commit Graph

945 Commits

Author SHA1 Message Date
Ian Barwick 74d925475e Separate specfiles by major version 2015-03-10 11:07:59 +09:00
Ian Barwick bd96e0ca72 Remove various temporary debugging output, comments 2015-03-10 09:55:16 +09:00
Ian Barwick 918ee3811f Improve error message 2015-03-10 08:42:46 +09:00
Ian Barwick 606d0afabc primary -> master
For consistency.
2015-03-09 15:48:46 +09:00
Ian Barwick e16c3b2c9a Improve -?/--help output 2015-03-09 15:16:24 +09:00
Ian Barwick 4e6c250830 Remove experimental event logging code
Needs more bikeshedding.
2015-03-09 14:39:04 +09:00
Ian Barwick 29110a6e11 Consolidate version checking code 2015-03-09 14:19:13 +09:00
Ian Barwick abf92883a8 Clean up log output
No need to prefix each line with the program name; this was pretty
inconsistent anyway. The only place where log output needs to identify
the outputting program is when syslog is being used, which is done
anyway.
2015-03-09 12:00:05 +09:00
Ian Barwick bdf1696b58 Fix WAL level check for 9.4 and later 2015-03-09 10:07:31 +09:00
Ian Barwick 7ad001e0c5 Parse config file before daemonizing
Daemonizing changes the current working directory to '/',
which breaks configuration file parsing if the file is in
the previous working directory and provided without an
explicit path.

Also it makes general sense to parse the configuration file
before daemonizing.
2015-03-09 08:26:33 +09:00
Ian Barwick fb8296644d Canonicalize configuration file path 2015-03-09 08:25:35 +09:00
Ian Barwick e603498f43 Parse config file before daemonizing
Daemonizing changes the current working directory to '/',
which breaks configuration file parsing if the file is in
the previous working directory and provided without an
explicit path.

Also it makes general sense to parse the configuration file
before daemonizing.
2015-03-09 08:21:54 +09:00
Ian Barwick d7365535ab Reject parameters with empty values. 2015-03-08 00:12:33 +09:00
Ian Barwick a55587d75a Initialise upstream_node value 2015-03-07 23:54:54 +09:00
Ian Barwick 5a9b6eea1f Prevent trim() from segfaulting on an empty string 2015-03-07 23:47:07 +09:00
Ian Barwick a572efe929 No need to destroy buffer here 2015-03-07 23:46:24 +09:00
Ian Barwick c6b0f77923 Prevent trim() from segfaulting on an empty string 2015-03-07 23:45:07 +09:00
Martín Marqués 66b399b886 Add check for wal_level = logical so we don't fail on 9.4
On 9.4 we have logical decoding, which introduced a new wal_level called
logical. This level includes all the previous ones, so you can run a
hot_standby if wal_level = logical, because the relevant information for
hot_standby will be there, plus other information needed for logical
decoding.

We fix this be adding a second check when wal_level is not hot_standby.
2015-03-06 10:37:43 -03:00
Ian Barwick 2339adba6c Fix event logging when cloning from another standby
We can only write to the primary, which we'll need to find seperately
when cloning from a standby.
2015-03-06 18:39:36 +09:00
Ian Barwick ff63954c68 do_standby_clone(): primary_conn -> upstream_conn
We could be cloning from a standby.
2015-03-06 17:44:06 +09:00
Ian Barwick 1a9fbd623f Fix log message 2015-03-06 16:10:53 +09:00
Ian Barwick 491309f4ba Write events of note to a log table
This makes keeping track of events such as failovers
much easier. Note that this is for convenience and is
not a foolproof auditing log.

Sample output:

repmgr_db=# SELECT * from repmgr_test.repl_events ;
 node_id |          event           | successful |        event_timestamp        |                         details
---------+--------------------------+------------+-------------------------------+----------------------------------------------------------
       1 | master_register          | t          | 2015-03-06 14:14:08.196636+09 |
       2 | standby_clone            | t          | 2015-03-06 14:14:17.660768+09 | Backup method: pg_basebackup; --force: N
       2 | standby_register         | t          | 2015-03-06 14:14:18.762222+09 |
       4 | witness_create           | t          | 2015-03-06 14:14:22.072815+09 |
       3 | standby_clone            | t          | 2015-03-06 14:14:23.524673+09 | Backup method: pg_basebackup; --force: N
       3 | standby_register         | t          | 2015-03-06 14:14:24.620161+09 |
       2 | repmgrd_start            | t          | 2015-03-06 14:14:29.639096+09 |
       3 | repmgrd_start            | t          | 2015-03-06 14:14:29.641489+09 |
       4 | repmgrd_start            | t          | 2015-03-06 14:14:29.648002+09 |
       2 | standby_promote          | t          | 2015-03-06 14:15:01.956737+09 | Node 2 was successfully be promoted to master
       2 | repmgrd_failover_promote | t          | 2015-03-06 14:15:01.964771+09 | Node 2 promoted to master; old master 1 marked as failed
       3 | repmgrd_failover_follow  | t          | 2015-03-06 14:15:07.228493+09 | Node 3 now following new upstream node 2
(12 rows)
2015-03-06 14:35:41 +09:00
Ian Barwick 072c2d70ff Reformat comment for legibility 2015-03-05 17:54:34 +09:00
Ian Barwick 1f9b19f3ff Add configuration option ignore_external_config_files 2015-03-05 13:46:55 +09:00
Ian Barwick 04fe820aff Note where compatibility check for replication slots is carried out
Scanning the source code gives the impression there's no check.
2015-03-05 10:12:36 +09:00
Ian Barwick 0f8759d316 Consolidate duplicated code 2015-03-04 17:27:51 +09:00
Ian Barwick 2b6415b339 Update README.md 2015-03-04 15:54:14 +09:00
Ian Barwick defb1e819b Add some annotations 2015-03-04 10:36:19 +09:00
Ian Barwick 7ae4434f6e Add new quickstart guide with annotated examples only.
The other content will become the new README.
2015-03-03 19:03:52 +09:00
Ian Barwick e3b734f177 Check for max_replication_slots > 0 2015-03-03 18:51:58 +09:00
Ian Barwick 187a6b6d23 Fix slot name 2015-03-03 18:50:48 +09:00
Ian Barwick 238fc589a1 Improve logging of configuration file operations 2015-03-03 18:14:26 +09:00
Ian Barwick 63b9254be4 Change log notice to log debug 2015-03-03 17:49:40 +09:00
Ian Barwick 44196de2f4 Add initial FAQ file 2015-03-03 16:21:57 +09:00
Ian Barwick 46888de77f Improve configuration file handling
Put logic in config.c so it can be shared between repmgr and repmgrd.
2015-03-03 15:39:56 +09:00
Ian Barwick 6b1f55ff1b Improve command line error handling
Per e.g. this complaint:

 https://groups.google.com/d/msg/repmgr/a-SMIQFGDBs/rgRH3p4ZPgYJ

Before:

    $ repmgr -f /etc/postgres/repmgr.conf cluster status

    repmgr: Replicator manager
    Try "repmgr --help" for more information.

after:

    $ repmgr -f /etc/postgres/repmgr.conf cluster status
    repmgr: Replication manager
    [ERROR] Unknown server command 'status'
    Try "repmgr --help" for more information.
2015-03-03 11:13:37 +09:00
Ian Barwick 3d3f082617 Ensure witness server updates its node records following a failover
This involves mainly abstracting the functions which copy
and create records from repmgr.c to dbutils.c, as they need
to be shared between repmgr and repmgrd.

Per issue noted here:

  https://groups.google.com/forum/#!topic/repmgr/v5nu1Xwf6X0
2015-03-03 08:57:20 +09:00
Ian Barwick db5db06244 Retire old README
Keep it around for reference for now.
2015-03-03 07:43:02 +09:00
Ian Barwick dd7193715c Gracefully fail when node has not been registered 2015-03-02 10:38:44 +09:00
Ian Barwick f8f81f4bf1 Update HISTORY file with items included in 2.0.2
Also standardize on spaces instead of tabs
2015-03-02 08:04:18 +09:00
Ian Barwick 27a4780cc3 Update HISTORY 2015-03-02 07:58:06 +09:00
Ian Barwick b79bce5821 Support tablespace mapping in --rsync-only mode
This makes it practical to take a back with rsync where tablespaces
require remapping. It also makes tablespace remapping possible for
9.3, where pg_basebackup does not support this option.
2015-03-01 14:10:17 +09:00
Ian Barwick a69176fc1b tablespace_dirs -> tablespace_mapping
For consistency with the parameter name.
2015-02-28 11:03:03 +09:00
Ian Barwick 65dcce55e8 Remove redundant comment
Issue already addressed.
2015-02-28 10:54:42 +09:00
Ian Barwick ff30df3d96 In rsync mode, move pg_control last
Emulate the backup protocol as much as possible.
2015-02-27 19:27:46 +09:00
Ian Barwick 74e4b6aa3c Refactor rsync file/directory exclusion
Better simulate what goes on in 'src/backend/replication/basebackup.c';
avoid copying some files/directories introduced in 9.4.
2015-02-27 15:59:47 +09:00
Ian Barwick 22dd164cbb Clarify intent 2015-02-27 13:29:21 +09:00
Ian Barwick 63c416bb76 Set synchronous_commit to off for current session
Forward-ported from 2.x; need to verify it makes sense.
2015-02-27 11:40:57 +09:00
Ian Barwick e2c2f97307 Clarify repmgr.conf usage 2015-02-27 10:02:42 +09:00
Ian Barwick 41e9a370af Clarify repmgr.conf usage 2015-02-27 10:01:38 +09:00