You've already forked pgbackrest
mirror of
https://github.com/pgbackrest/pgbackrest.git
synced 2025-07-03 00:26:59 +02:00
Limit files that can be bundled.
Limit which files can be added to bundles, which allows resume to work reasonably well. On resume, the bundles are removed and any remaining file is eligible to be to be resumed. Also reduce the bundle-size default to 20MiB. This is pretty arbitrary, but a smaller default seems better.
This commit is contained in:
@ -1696,30 +1696,6 @@ testRun(void)
|
||||
TEST_STORAGE_LIST_EMPTY(storageRepo(), STORAGE_REPO_BACKUP, .comment = "check backup path removed");
|
||||
|
||||
manifestResume->pub.data.backupOptionCompressType = compressTypeNone;
|
||||
|
||||
// -------------------------------------------------------------------------------------------------------------------------
|
||||
TEST_TITLE("cannot resume when bundling");
|
||||
|
||||
argList = strLstNew();
|
||||
hrnCfgArgRawZ(argList, cfgOptStanza, "test1");
|
||||
hrnCfgArgRawZ(argList, cfgOptRepoPath, TEST_PATH "/repo");
|
||||
hrnCfgArgRawZ(argList, cfgOptPgPath, "/pg");
|
||||
hrnCfgArgRawZ(argList, cfgOptRepoRetentionFull, "1");
|
||||
hrnCfgArgRawStrId(argList, cfgOptType, backupTypeFull);
|
||||
hrnCfgArgRawBool(argList, cfgOptBundle, true);
|
||||
HRN_CFG_LOAD(cfgCmdBackup, argList);
|
||||
|
||||
manifestSave(
|
||||
manifestResume,
|
||||
storageWriteIo(
|
||||
storageNewWriteP(
|
||||
storageRepoWrite(), STRDEF(STORAGE_REPO_BACKUP "/20191003-105320F/" BACKUP_MANIFEST_FILE INFO_COPY_EXT))));
|
||||
|
||||
TEST_RESULT_PTR(backupResumeFind(manifest, NULL), NULL, "find resumable backup");
|
||||
|
||||
TEST_RESULT_LOG("P00 INFO: backup '20191003-105320F' cannot be resumed: resume is disabled");
|
||||
|
||||
TEST_STORAGE_LIST_EMPTY(storageRepo(), STORAGE_REPO_BACKUP, .comment = "check backup path removed");
|
||||
}
|
||||
|
||||
// *****************************************************************************************************************************
|
||||
@ -2992,6 +2968,7 @@ testRun(void)
|
||||
|
||||
// Set to a smaller values than the defaults allow
|
||||
cfgOptionSet(cfgOptBundleSize, cfgSourceParam, VARINT64(PG_PAGE_SIZE_DEFAULT));
|
||||
cfgOptionSet(cfgOptBundleLimit, cfgSourceParam, VARINT64(PG_PAGE_SIZE_DEFAULT));
|
||||
|
||||
// Zeroed file which passes page checksums
|
||||
Buffer *relation = bufNew(PG_PAGE_SIZE_DEFAULT * 3);
|
||||
@ -3021,13 +2998,13 @@ testRun(void)
|
||||
"P00 INFO: check archive for segment 0000000105DB8EB000000000\n"
|
||||
"P00 DETAIL: store zero-length file " TEST_PATH "/pg1/pg_tblspc/32768/PG_11_201809051/1/5\n"
|
||||
"P01 DETAIL: backup file " TEST_PATH "/pg1/base/1/2 (24KB, [PCT]) checksum [SHA1]\n"
|
||||
"P01 DETAIL: backup file " TEST_PATH "/pg1/base/1/1 (8KB, [PCT]) checksum [SHA1]\n"
|
||||
"P01 DETAIL: backup file " TEST_PATH "/pg1/global/pg_control (8KB, [PCT]) checksum [SHA1]\n"
|
||||
"P01 DETAIL: backup file " TEST_PATH "/pg1/stuff.conf (12B, [PCT]) checksum [SHA1]\n"
|
||||
"P01 DETAIL: backup file " TEST_PATH "/pg1/postgresql.auto.conf (12B, [PCT]) checksum [SHA1]\n"
|
||||
"P01 DETAIL: backup file " TEST_PATH "/pg1/postgresql.conf (11B, [PCT]) checksum [SHA1]\n"
|
||||
"P01 DETAIL: backup file " TEST_PATH "/pg1/PG_VERSION (2B, [PCT]) checksum [SHA1]\n"
|
||||
"P01 DETAIL: backup file " TEST_PATH "/pg1/bigish.dat (8.0KB, [PCT]) checksum [SHA1]\n"
|
||||
"P01 DETAIL: backup file " TEST_PATH "/pg1/base/1/1 (8KB, [PCT]) checksum [SHA1]\n"
|
||||
"P01 DETAIL: backup file " TEST_PATH "/pg1/global/pg_control (8KB, [PCT]) checksum [SHA1]\n"
|
||||
"P00 INFO: execute non-exclusive pg_stop_backup() and wait for all WAL segments to archive\n"
|
||||
"P00 INFO: backup stop archive = 0000000105DB8EB000000001, lsn = 5db8eb0/180000\n"
|
||||
"P00 DETAIL: wrote 'backup_label' file returned from pg_stop_backup()\n"
|
||||
@ -3042,16 +3019,18 @@ testRun(void)
|
||||
testBackupValidate(storageRepo(), STRDEF(STORAGE_REPO_BACKUP "/latest")),
|
||||
". {link, d=20191030-014640F}\n"
|
||||
"bundle {path}\n"
|
||||
"bundle/1/pg_data/base/1/2 {file, s=24576}\n"
|
||||
"bundle/2/pg_data/base/1/1 {file, s=8192}\n"
|
||||
"bundle/3/pg_data/global/pg_control {file, s=8192}\n"
|
||||
"bundle/4/pg_data/PG_VERSION {file, s=2}\n"
|
||||
"bundle/4/pg_data/postgresql.auto.conf {file, s=12}\n"
|
||||
"bundle/4/pg_data/postgresql.conf {file, s=11}\n"
|
||||
"bundle/4/pg_data/stuff.conf {file, s=12}\n"
|
||||
"bundle/5/pg_data/bigish.dat {file, s=8191}\n"
|
||||
"bundle/1/pg_data/PG_VERSION {file, s=2}\n"
|
||||
"bundle/1/pg_data/postgresql.auto.conf {file, s=12}\n"
|
||||
"bundle/1/pg_data/postgresql.conf {file, s=11}\n"
|
||||
"bundle/1/pg_data/stuff.conf {file, s=12}\n"
|
||||
"bundle/2/pg_data/bigish.dat {file, s=8191}\n"
|
||||
"bundle/3/pg_data/base/1/1 {file, s=8192}\n"
|
||||
"bundle/4/pg_data/global/pg_control {file, s=8192}\n"
|
||||
"pg_data {path}\n"
|
||||
"pg_data/backup_label.gz {file, s=17}\n"
|
||||
"pg_data/base {path}\n"
|
||||
"pg_data/base/1 {path}\n"
|
||||
"pg_data/base/1/2.gz {file, s=24576}\n"
|
||||
"pg_data/pg_wal {path}\n"
|
||||
"pg_data/pg_wal/0000000105DB8EB000000000.gz {file, s=1048576}\n"
|
||||
"pg_data/pg_wal/0000000105DB8EB000000001.gz {file, s=1048576}\n"
|
||||
|
Reference in New Issue
Block a user