ddd4c14773
Implemented issue #129 : Stop/Start Commands.
...
Implemented issue #136 : Add stderr back into protocol layer.
There were also miscellaneous bug fixes and improvements to buffering in IO.pm.
2015-10-08 11:43:56 -04:00
e0dafbff7f
Improvements to issue #132 : Improved command-line help.
...
Regression tests are now more comprehensive by default.
Better handling for errors in safeExit().
Release notes.
2015-09-09 15:40:54 -04:00
ac3c0d43ab
Implemented issue #132 : Improved command-line help.
...
Implemented issue #133 : Dynamic module loading where possible.
2015-09-08 07:31:24 -04:00
6a9377a0a9
Code cleanup and refactoring to standardize on patterns that have evolved over time.
2015-08-29 14:20:46 -04:00
f8a2da9400
Work on issue #48 : Abandon threads and go to processes
...
* Major refactoring of the protocol layer to support this work.
* Fixed protocol issue that was preventing ssh errors (especially connect) from being logged.
2015-08-05 08:43:41 -04:00
97c036973c
Implemented issue #119 : Make sure all repo permissions are 640/750.
2015-07-23 13:11:38 -04:00
7248795b91
Work on issue #48 : Abandon threads and go to processes
...
Replaced IPC::System::Simple and Net::OpenSSH with IPC::Open3 to eliminate CPAN dependency for multiple distros. Using open3 will also be used for local processes so it make sense to switch now.
2015-06-29 22:07:42 -04:00
61dfeca3c1
Fixed issue #108 : Incompatibility with Perl 5.10.1
2015-06-21 12:06:13 -04:00
22e126eda7
Fix for logic that removes trailing spaces from code.
2015-06-17 15:40:12 -04:00
a050b76fa9
Implement issue #107 : Better debug commands.
2015-06-17 15:33:58 -04:00
a5d9d6d84d
Added file and directory syncs to the File object for additional safety during backup and archiving.
2015-06-17 12:53:33 -04:00
9511f9c35c
Implemented issue #106 : Roll pg_backup_remote into pg_backrest
2015-06-17 11:26:07 -04:00
148836fe44
Implemented issue #26 : Info command.
...
* Includes updating the manifest to format 4. It turns out the manifest and .info files were not very good for providing information. A format update was required anyway so worked through the backlog of changes that would require a format change.
* Multiple database versions are now supported in the archive. Does't actually work yet but the structure should be good.
* Tests use more constants now that test logs can catch name regressions.
2015-06-13 18:25:49 -04:00
95d62a82d9
Minor log changes for formatting and consistency.
2015-05-31 09:50:42 -04:00
5fd4f3bd5b
Improvements to log testing.
...
Replaced tokens are now numbered to give a more accurate rendition of the logs.
Some formatting improvements.
2015-05-29 14:39:43 -04:00
d5335b40e8
Fix for issue #80 : enabling archive-copy causes failing differential & incremental backups
2015-05-22 14:49:14 -04:00
7081c8b867
New model where threads are created early and destroyed late.
...
Backups now work like restores in terms of how jobs are queued.
Split out BackupFile and RestoreFile for easier multi-threading/processing.
2015-04-07 07:34:37 -04:00
3f651a8ce8
Unit tests will now work across all installed versions of Postgres.
...
Created a function to list all supported versions. Now used for all version checking.
2015-04-02 22:07:23 -04:00
984fceea67
Moved archive functions from pg_backrest.pl and Backup.pl to Archive.pm.
...
Moved Remote code from pg_backrest.pl to Config.pm.
Added version specific code to regression tests and Db.pm.
archive-push checks for duplicate WAL in the archive.
archive-push reads the db sys id to match up WAL to the correct archive.
2015-04-01 15:58:33 -04:00
58d6c37f4a
Changed permission to mode in manifest.
2015-03-23 17:17:43 -04:00
882f068254
All config options can now be provided on the command-line.
...
Lots of name changes, but more thought needed there.
Still needs cleanup.
2015-03-12 12:15:19 -04:00
3d0d308a98
Made all warnings FATAL.
...
Fixed one bug that was exposed.
2015-03-03 00:57:20 -05:00
c0ec62b131
Fixed bug in File->hash() and removed improper last statements from do loops.
2015-03-02 23:42:55 -05:00
8e8f2f3c77
New config options compress-level and compress-level-network to control compression levels.
2015-03-02 20:36:12 -05:00
d874e122aa
Optimized compression to disable headers/crc when the source and destination are both uncompressed.
...
Set different compression levels based on usage.
2015-03-01 23:41:01 -05:00
23102f19e5
All copy() cases generate checksums during copy.
...
Unit tests for bAppendChecksum option for copy().
2015-03-01 22:23:52 -05:00
76391dde90
Archive checksums are not calculated in stream.
2015-03-01 16:42:27 -05:00
77bc4238dc
ZLib stuff starting to look good. All references removed from File and using binary_xfer for all de/compression.
2015-03-01 13:41:35 -05:00
28326d6b4c
File->copy now returns hash and size in all cases, though the local copies are not optimal. They just call hash_size().
2015-02-28 19:07:29 -05:00
260a6cb8f1
Working on calculating hash and file size in binary_xfer().
2015-02-28 15:54:49 -05:00
0f94476a1f
Changed buffer sizes.
2015-02-28 12:10:50 -05:00
d6205d9501
Looks like all unit tests pass - now for a long test run to see if that is really true. And to see if the old lockup is gone.
2015-02-27 23:31:39 -05:00
25442655c8
Hash of compressed file is working.
...
Something still broken in binary_xfer because some 0 length archive files are showing up. Investigating.
2015-02-27 18:42:28 -05:00
b9378d94a2
Working on removing threads from instream compress/decompression.
2015-02-26 09:22:05 -05:00
50e015a838
Revert "Abortive attempt at cleaning up some thread issues - I realized the issue is in mixing threads and objects too liberally. Trying another approach but want to keep this code for historical and reference purposes."
...
This reverts commit e95631f82a
.
2015-01-30 18:58:49 -05:00
e95631f82a
Abortive attempt at cleaning up some thread issues - I realized the issue is in mixing threads and objects too liberally. Trying another approach but want to keep this code for historical and reference purposes.
2015-01-30 14:55:55 -05:00
13544d51bf
Recovery is working for none and default, but unit tests are not complete.
2015-01-27 11:44:23 -05:00
425e9485aa
Re-added File-hash() - accidentally deleted it when working on owner().
2015-01-08 16:36:45 -05:00
2e09df2cec
More work on new manifest object.
2015-01-08 12:04:56 -05:00
0085e88966
Added File-owner()
2015-01-07 12:58:21 -05:00
d6d57e654e
Fixed the way wait was done after the manifest is created. Previously, waits were done for base and each tablespace which is not very efficient. Now one wait is done after the entire manifest is built. Also storing the exact time that copy began.
2015-01-06 13:08:56 -05:00
43098086af
Implemented timestamp last modified to record the time of the last modified file in the backup. Also added timestamp-db-start and timestamp-db-stop to for more info. timestamp-db-start can be used for PITR.
2015-01-03 16:49:26 -05:00
91b06bef47
File->manifest detects files that are modified in the future.
2015-01-03 14:22:59 -05:00
2e080eedb8
Added an optional delay after manifest build so that files are not copied in the same second that the manifest is built. This can result in (admittedly unlikely) race conditions that can produce an invalid backup. I was also able to reduce the sleep types when waiting for thread termination - so unit test times are improved by almost 100%.
2015-01-02 14:18:07 -05:00
fb948de559
Fixed some minor issues in ownership code found by unit tests.
2014-12-31 12:28:16 -05:00
7e083e8749
Restore as root is now working.
2014-12-31 11:20:46 -05:00
0805055d4b
More work on restore ownership code.
2014-12-30 15:41:43 -05:00
46ba3a18df
Ownership code runs through - may not work for all cases.
2014-12-30 11:59:57 -05:00
9f8f33f957
Working on restore options and integration with unit tests.
2014-12-23 18:52:38 -05:00
9086728b73
Restore removes paths/files/links and recreated paths/links.
2014-12-21 10:11:17 -05:00