Cynthia Shang
b620e6b282
Improvements and additional tests for stanza-upgrade.
...
Contributed by Cynthia Shang.
2017-04-06 19:36:37 -04:00
Cynthia Shang
beead043ac
Added stanza-upgrade command.
...
The stanza-upgrade command provides a mechanism for upgrading a stanza after upgrading to a new major version of PostgreSQL.
Contributed by Cynthia Shang.
2017-04-03 10:42:55 -04:00
David Steele
b0947fdaa8
Fixed an issue where newly initialized (but unused) pages would cause page checksum warnings.
...
Reported by Stephen Frost.
2017-03-13 15:50:13 -04:00
David Steele
02730526fc
Fixed an issue where databases created with a non-default tablespace would raise bogus warnings about pg_filenode.map and pg_internal.init not being page aligned.
...
Reported by blogh.
2017-03-02 13:50:29 -05:00
David Steele
5957f8566f
Archive test improvements:
...
* Fixed flapping archive-stop test with testResult() retries.
* Added final test of archive contents to archive-push test.
2017-03-02 11:47:23 -05:00
David Steele
c2666cc7f3
Fixed an issue where tables over 1GB would report page checksum errors after the first segment.
...
Reported by Stephen Frost.
2017-03-01 14:15:46 -05:00
David Steele
86fee3da18
Continuous integration using travis-ci.
2017-02-21 08:59:23 -05:00
David Steele
e2ac7e1ea6
Fixed a regression introduced in v1.13 that could cause backups to fail.
...
This happened if files were removed (e.g. tables dropped) while the manifest was being built.
Reported by Navid Golpayegani.
2017-02-13 19:59:14 -05:00
David Steele
0daeace1cd
Fixed alignment issues with multiline logging.
2017-02-05 19:58:52 -05:00
David Steele
cded35791d
Added --log-timestamp option.
...
Allow timestamps to be suppressed in logging. This is primarily used to avoid filters in the automated documentation.
2017-02-05 10:59:49 -05:00
David Steele
8b5f37c2a8
Added archive and backup WAL ranges to the info command.
2017-02-05 10:31:29 -05:00
David Steele
7418559a67
Fixed a spurious archive-get log message that indicated an exit code of 1 was an abnormal termination.
2017-01-31 10:36:59 -05:00
David Steele
eb1a1e5308
Missed expect logs from commit 455c604
.
2017-01-30 16:22:12 -05:00
David Steele
6b99d770b5
Reduced the likelihood of torn pages causing a false positive in page checksums by filtering on start backup LSN.
2017-01-30 13:59:00 -05:00
David Steele
43ada9fb33
Improved, multi-process implementation of asynchronous archiving.
2017-01-27 11:02:27 -05:00
David Steele
2a9ba877e1
Refactor process IO and process master/minion code out from the common protocol code.
2017-01-27 10:06:16 -05:00
David Steele
18db178ac3
Various improvements to the test suite:
...
* Allow logging to be suppressed via logDisable() and logEnable().
* Added more flexibility in initializing and cleaning up after modules and tests.
* testResult() suppresses logging and reports exceptions.
* testException() allows messages to be matched with regular expressions.
* Refactor name/locations of common modules that setup test environments.
2017-01-27 09:42:30 -05:00
David Steele
7d1347cdec
Split the archive-get and archive-push commands into separate modules.
2017-01-10 19:59:32 -05:00
David Steele
b58045f575
Moved the Archive modules to the Archive directory.
2017-01-10 19:51:20 -05:00
David Steele
0b4055e588
Moved File->manifest() into the FileCommon.pm module.
2017-01-10 13:08:03 -05:00
David Steele
c8dfc673b8
Moved tests into new modules to better reflect actual usage.
2017-01-04 18:31:16 -05:00
Cynthia Shang
be337c951a
Improvements to stanza-create:
...
* Force only required when a change is needed for backup.info or archive.info.
* Identical files are not overwritten.
2017-01-04 10:12:29 -05:00
David Steele
b91ca11329
Added expect log expression to replace year subdirectories in backup.history.
2017-01-04 10:09:21 -05:00
David Steele
5d3473b52d
Refactor File module to improve test coverage.
2016-12-23 08:30:34 -05:00
Cynthia Shang
56144c99c0
Improved check command to run on a standby.
...
Only basic checks are done because pg_switch_xlog() cannot be executed on a replica.
Contributed by Cynthia Shang.
2016-12-21 14:35:20 -05:00
Cynthia Shang
974a02dbe4
Improved stanza-create command so that it can repair broken repositories in most cases and is robust enough to be made mandatory.
...
Contributed by Cynthia Shang.
2016-12-20 16:52:20 -05:00
David Steele
36a5349b1c
Added the --checksum-page option.
...
This option allows pgBackRest to validate page checksums in data files when checksums are enabled on PostgreSQL >= 9.3. Note that this functionality requires a C library which may not initially be available in OS packages. The option will automatically be enabled when the library is present and checksums are enabled on the cluster.
2016-12-12 18:54:07 -05:00
David Steele
6dd0829033
File copy protocol now accepts a function that can do additional processing on the copy buffers and return a result to the calling process.
2016-12-12 18:47:17 -05:00
David Steele
b4884e5a0b
Fixed an issue where the db-port option specified on the backup server would not be properly passed to the remote unless it was from the first configured database.
...
Reported by Michael Vitale.
2016-12-10 14:05:28 -05:00
David Steele
e61ef6ebce
Add more realistic data files to synthetic backup and restore tests.
2016-12-10 09:13:55 -05:00
David Steele
f818901c0e
Added the --repo-sync option to allow directory syncs in the repository to be disabled.
...
This is for file systems that do not support them, e.g. NTFS
2016-12-10 09:06:45 -05:00
David Steele
896984848b
Improved errors returned from child processes by removing redundant error level and code.
2016-12-04 17:51:00 -05:00
David Steele
817592837c
Added a predictable log entry to signal that a command has completed successfully.
...
For example a backup ends successfully with: INFO: backup command end: completed successfully.
2016-12-04 14:44:53 -05:00
David Steele
f823a25ac2
Fixed an issue where options that were invalid for the specified command could be provided on the command-line without generating an error.
...
* The options were ignored and did not cause any change in behavior, but it did lead to some confusion. Invalid options will now generate an error.
* Removed erroneous --no-config option in help test module.
* Changed the --no-fork test option to --fork with negation to match all other boolean parameters.
2016-12-04 09:25:40 -05:00
David Steele
d18cd7ad0f
Fixed an issue that prevented errors from being output to the console before the logging system was initialized.
...
That is, while parsing options. Error codes were still being returned accurately so this would not have made a process look like it succeeded when it did not.
2016-12-03 18:01:17 -05:00
David Steele
2e01e6b9e1
Improved consistency and flexibility of the protocol layer by using JSON for all messages.
2016-12-03 17:34:51 -05:00
David Steele
005fc08795
Added the --repo-link option.
...
Allow internal symlinks to be suppressed when the repository is located on a filesystem that does not support symlinks. This does not affect any pgBackRest functionality, but the convenience link latest will not be created and neither will internal tablespace symlinks, which will affect the ability to bring up clusters in-place manually using filesystem snapshots.
2016-12-03 10:23:26 -05:00
David Steele
6ae4d7de81
Fixed a bug where internal symlinks were not being created for tablespaces in the repository.
...
This issue was only apparent when trying to bring up clusters in-place with filesystem snapshots and did not affect normal backup and restore.
2016-12-03 09:56:05 -05:00
Cynthia Shang
22cd29771f
Update control and wal test files to 9.4 with matching system identifiers.
...
Contributed by Cynthia Shang.
2016-12-01 09:33:14 -05:00
David Steele
a850335015
Simplified the result hash of File->manifest(), Db->tablespaceMapGet(), and Db->databaseMapGet().
2016-11-30 14:36:39 -05:00
David Steele
09df07efb7
For simplicity, the pg_control file is now copied with the rest of the files instead of by itself of at the end of the process.
...
The backup command does not require this behavior and the restore copies to a temporary file which is renamed at the end of the restore.
2016-11-30 14:23:05 -05:00
Cynthia Shang
e951c4f9c2
Abstracted code to determine which database cluster is the master and which are standbys.
...
Contributed by Cynthia Shang.
2016-11-30 14:15:11 -05:00
David Steele
dbb9d80dab
Fixed an issue where asynchronous archiving was transferring one file per execution instead of transferring files in batches.
...
This regression was introduced in v1.09 and affected efficiency only, all WAL segments were correctly archived in asynchronous mode.
Reported by Stephen Frost.
2016-11-17 09:39:21 -05:00
David Steele
dd621081b9
Fixed an issue where tablespace paths with the same prefix would cause an invalid link error.
...
Reported by Nikhilchandra Kulkarni.
2016-11-07 16:37:16 +02:00
David Steele
21ca412702
Fixed an issue where a backup could error if no changes were made to a database between backups and only pg_control changed.
2016-11-05 19:22:30 +02:00
David Steele
171c5835bb
Another expect log update for stanza-create feature.
2016-11-03 17:48:59 +02:00
David Steele
26f76762b5
Expect log updates for stanza-create feature.
2016-10-17 10:03:42 +01:00
David Steele
5dc801d59d
Fixed an issue where the async archiver would not be started if archive-push did not have enough space to queue a new WAL segment.
...
This meant that the queue would never be cleared without manual intervention (such as calling archive-push directly). PostgreSQL now receives errors when there is not enough space to store new WAL segments but the async process will still be started so that space is eventually freed.
Reported by Jens Wilke.
2016-10-05 09:47:34 -04:00
David Steele
2a18674111
Added the log-level-stderr option.
...
Controls whether console log messages are sent to stderr or stdout. By default this is set to warn which represents a change in behavior from previous versions, even though it may be more intuitive. Setting log-level-stderr=off will preserve the old behavior.
Suggested by Sascha Biberhofer.
2016-10-05 09:09:30 -04:00
David Steele
d81198e65e
Added the cmd-ssh to allow the ssh client to be specified.
...
Suggested by Jens Wilke.
2016-10-05 08:55:54 -04:00