1
0
mirror of https://github.com/pgbackrest/pgbackrest.git synced 2025-07-07 00:35:37 +02:00

Improve info command text output and --set handling.

The info command provides total sizes for files in the backup on the database as well as the repository. The text output and associated user documentation has been updated to provide more clarity regarding the sizes being displayed.

In addition, the info command is updated to allow a user to optionally specify the repository when requesting a specific backup set. In this case, the text output will reflect the status of the stanza, the cipher types and archive min/max over all the repositories instead of a single repository when the repo option is specified.
This commit is contained in:
Cynthia Shang
2021-01-25 09:19:05 -05:00
committed by David Steele
parent 8e48308b0b
commit 00fac1c0d1
5 changed files with 119 additions and 113 deletions

View File

@ -560,14 +560,14 @@ testRun(void)
" full backup: 20181116-154756F\n"
" timestamp start/stop: 2018-11-16 15:47:56 / 2018-11-16 15:48:09\n"
" wal start/stop: n/a\n"
" database size: 25.7MB, backup size: 25.7MB\n"
" repo1: size: 3MB, backup size: 3KB\n"
" database size: 25.7MB, database backup size: 25.7MB\n"
" repo1: backup set size: 3MB, backup size: 3KB\n"
"\n"
" full backup: 20201116-154900F\n"
" timestamp start/stop: 2020-11-16 15:47:56 / 2020-11-16 15:48:00\n"
" wal start/stop: 000000030000000000000001 / 000000030000000000000001\n"
" database size: 25.7MB, backup size: 25.7MB\n"
" repo1: size: 3MB, backup size: 3KB\n",
" database size: 25.7MB, database backup size: 25.7MB\n"
" repo1: backup set size: 3MB, backup size: 3KB\n",
"text - single stanza, valid backup, no priors, no archives in latest DB, backup/expire lock detected");
}
HARNESS_FORK_PARENT_END();
@ -1494,21 +1494,21 @@ testRun(void)
" full backup: 20181119-152138F\n"
" timestamp start/stop: 2018-11-19 15:21:38 / 2018-11-19 15:21:39\n"
" wal start/stop: 000000010000000000000002 / 000000010000000000000002\n"
" database size: 19.2MB, backup size: 19.2MB\n"
" repo1: size: 2.3MB, backup size: 2.3MB\n"
" database size: 19.2MB, database backup size: 19.2MB\n"
" repo1: backup set size: 2.3MB, backup size: 2.3MB\n"
"\n"
" diff backup: 20181119-152138F_20181119-152152D\n"
" timestamp start/stop: 2018-11-19 15:21:52 / 2018-11-19 15:21:55\n"
" wal start/stop: 000000010000000000000003 / 000000020000000000000003\n"
" database size: 19.2MB, backup size: 8.2KB\n"
" repo1: size: 2.3MB, backup size: 346B\n"
" database size: 19.2MB, database backup size: 8.2KB\n"
" repo1: backup set size: 2.3MB, backup size: 346B\n"
" backup reference list: 20181119-152138F\n"
"\n"
" incr backup: 20181119-152138F_20181119-152155I\n"
" timestamp start/stop: 2018-11-19 15:21:55 / 2018-11-19 15:21:57\n"
" wal start/stop: n/a\n"
" database size: 19.2MB, backup size: 8.2KB\n"
" repo1: size: 2.3MB, backup size: 346B\n"
" database size: 19.2MB, database backup size: 8.2KB\n"
" repo1: backup set size: 2.3MB, backup size: 346B\n"
" backup reference list: 20181119-152138F, 20181119-152138F_20181119-152152D\n"
"\n"
" db (current)\n"
@ -1517,20 +1517,20 @@ testRun(void)
" full backup: 20201116-155000F\n"
" timestamp start/stop: 2020-11-16 15:50:00 / 2020-11-16 15:50:02\n"
" wal start/stop: 000000010000000000000002 / 000000010000000000000003\n"
" database size: 25.7MB, backup size: 25.7MB\n"
" repo1: size: 3MB, backup size: 3KB\n"
" database size: 25.7MB, database backup size: 25.7MB\n"
" repo1: backup set size: 3MB, backup size: 3KB\n"
"\n"
" full backup: 20201116-200000F\n"
" timestamp start/stop: 2020-11-16 20:00:00 / 2020-11-16 20:00:05\n"
" wal start/stop: 000000010000000000000004 / 000000010000000000000004\n"
" database size: 25.7MB, backup size: 25.7MB\n"
" repo2: size: 3MB, backup size: 3KB\n"
" database size: 25.7MB, database backup size: 25.7MB\n"
" repo2: backup set size: 3MB, backup size: 3KB\n"
"\n"
" incr backup: 20201116-155000F_20201119-152100I\n"
" timestamp start/stop: 2020-11-19 15:21:00 / 2020-11-19 15:21:03\n"
" wal start/stop: 000000010000000000000005 / 000000010000000000000005\n"
" database size: 19.2MB, backup size: 8.2KB\n"
" repo1: size: 2.3MB, backup size: 346B\n"
" database size: 19.2MB, database backup size: 8.2KB\n"
" repo1: backup set size: 2.3MB, backup size: 346B\n"
" backup reference list: 20201116-155000F\n"
"\n"
"stanza: stanza2\n"
@ -1558,8 +1558,8 @@ testRun(void)
" full backup: 20201110-100000F\n"
" timestamp start/stop: 2020-11-10 10:00:00 / 2020-11-10 10:00:02\n"
" wal start/stop: 000000010000000000000001 / 000000010000000000000002\n"
" database size: 25.7MB, backup size: 25.7MB\n"
" repo2: size: 3MB, backup size: 3KB\n",
" database size: 25.7MB, database backup size: 25.7MB\n"
" repo2: backup set size: 3MB, backup size: 3KB\n",
"text - multiple stanzas, multi-repo with valid backups, backup lock held on one stanza");
}
HARNESS_FORK_PARENT_END();
@ -1571,11 +1571,6 @@ testRun(void)
argList2 = strLstDup(argListMultiRepo);
strLstAddZ(argList2, "--stanza=stanza1");
strLstAddZ(argList2, "--set=20181119-152138F_20181119-152155I");
harnessCfgLoad(cfgCmdInfo, argList2);
TEST_ERROR_FMT(infoRender(), OptionRequiredError, "option '" CFGOPT_REPO "' is required when specifying a backup set");
// Specify the repo
strLstAddZ(argList2, "--repo=1");
harnessCfgLoad(cfgCmdInfo, argList2);
@ -1591,8 +1586,8 @@ testRun(void)
" incr backup: 20181119-152138F_20181119-152155I\n"
" timestamp start/stop: 2018-11-19 15:21:55 / 2018-11-19 15:21:57\n"
" wal start/stop: n/a\n"
" database size: 19.2MB, backup size: 8.2KB\n"
" repo1: size: 2.3MB, backup size: 346B\n"
" database size: 19.2MB, database backup size: 8.2KB\n"
" repo1: backup set size: 2.3MB, backup size: 346B\n"
" backup reference list: 20181119-152138F, 20181119-152138F_20181119-152152D\n"
" database list: mail (16456), postgres (12173)\n"
" symlinks:\n"
@ -1604,28 +1599,29 @@ testRun(void)
" page checksum error: base/16384/17000\n",
"text - backup set requested");
// Confirm ability to read encrypted repo manifest
// Confirm ability to read encrypted repo manifest and that the requested database will be found without setting --repo
//--------------------------------------------------------------------------------------------------------------------------
argList2 = strLstDup(argListMultiRepo);
strLstAddZ(argList2, "--stanza=stanza1");
strLstAddZ(argList2, "--set=20201116-200000F");
strLstAddZ(argList2, "--repo=2");
harnessCfgLoad(cfgCmdInfo, argList2);
TEST_RESULT_STR_Z(
infoRender(),
"stanza: stanza1\n"
" status: ok\n"
" cipher: aes-256-cbc\n"
" cipher: mixed\n"
" repo1: none\n"
" repo2: aes-256-cbc\n"
"\n"
" db (current)\n"
" wal archive min/max (9.5): 000000010000000000000003/000000010000000000000004\n"
" wal archive min/max (9.5): 000000010000000000000002/000000010000000000000005\n"
"\n"
" full backup: 20201116-200000F\n"
" timestamp start/stop: 2020-11-16 20:00:00 / 2020-11-16 20:00:05\n"
" wal start/stop: 000000010000000000000004 / 000000010000000000000004\n"
" database size: 25.7MB, backup size: 25.7MB\n"
" repo2: size: 3MB, backup size: 3KB\n"
" database size: 25.7MB, database backup size: 25.7MB\n"
" repo2: backup set size: 3MB, backup size: 3KB\n"
" database list: mail (16456), postgres (12173)\n"
" symlinks:\n"
" pg_hba.conf => ../pg_config/pg_hba.conf\n"
@ -1634,7 +1630,7 @@ testRun(void)
" ts1 (1) => /tblspc/ts1\n"
" ts12 (12) => /tblspc/ts12\n"
" page checksum error: base/16384/17000\n",
"text - multi-repo, backup set requested, repo2");
"text - multi-repo, backup set requested, found on repo2, report stanza and db over all repos");
//--------------------------------------------------------------------------------------------------------------------------
strLstAddZ(argList2, "--output=json");
@ -1704,8 +1700,8 @@ testRun(void)
" incr backup: 20181119-152138F_20181119-152155I\n"
" timestamp start/stop: 2018-11-19 15:21:55 / 2018-11-19 15:21:57\n"
" wal start/stop: n/a\n"
" database size: 19.2MB, backup size: 8.2KB\n"
" repo1: size: 2.3MB, backup size: 346B\n"
" database size: 19.2MB, database backup size: 8.2KB\n"
" repo1: backup set size: 2.3MB, backup size: 346B\n"
" backup reference list: 20181119-152138F, 20181119-152138F_20181119-152152D\n"
" database list: mail (16456), postgres (12173)\n"
" page checksum error: base/16384/17000, base/32768/33000\n",
@ -1774,8 +1770,8 @@ testRun(void)
" incr backup: 20181119-152138F_20181119-152155I\n"
" timestamp start/stop: 2018-11-19 15:21:55 / 2018-11-19 15:21:57\n"
" wal start/stop: n/a\n"
" database size: 19.2MB, backup size: 8.2KB\n"
" repo1: size: 2.3MB, backup size: 346B\n"
" database size: 19.2MB, database backup size: 8.2KB\n"
" repo1: backup set size: 2.3MB, backup size: 346B\n"
" backup reference list: 20181119-152138F, 20181119-152138F_20181119-152152D\n"
" database list: none\n",
"text - backup set requested, no db and no checksum error");
@ -1899,21 +1895,21 @@ testRun(void)
" full backup: 20181119-152138F\n"
" timestamp start/stop: 2018-11-19 15:21:38 / 2018-11-19 15:21:39\n"
" wal start/stop: 000000010000000000000002 / 000000010000000000000002\n"
" database size: 19.2MB, backup size: 19.2MB\n"
" repo1: size: 2.3MB, backup size: 2.3MB\n"
" database size: 19.2MB, database backup size: 19.2MB\n"
" repo1: backup set size: 2.3MB, backup size: 2.3MB\n"
"\n"
" diff backup: 20181119-152138F_20181119-152152D\n"
" timestamp start/stop: 2018-11-19 15:21:52 / 2018-11-19 15:21:55\n"
" wal start/stop: 000000010000000000000003 / 000000020000000000000003\n"
" database size: 19.2MB, backup size: 8.2KB\n"
" repo1: size: 2.3MB, backup size: 346B\n"
" database size: 19.2MB, database backup size: 8.2KB\n"
" repo1: backup set size: 2.3MB, backup size: 346B\n"
" backup reference list: 20181119-152138F\n"
"\n"
" incr backup: 20181119-152138F_20181119-152155I\n"
" timestamp start/stop: 2018-11-19 15:21:55 / 2018-11-19 15:21:57\n"
" wal start/stop: n/a\n"
" database size: 19.2MB, backup size: 8.2KB\n"
" repo1: size: 2.3MB, backup size: 346B\n"
" database size: 19.2MB, database backup size: 8.2KB\n"
" repo1: backup set size: 2.3MB, backup size: 346B\n"
" backup reference list: 20181119-152138F, 20181119-152138F_20181119-152152D\n"
"\n"
" db (current)\n"
@ -1922,14 +1918,14 @@ testRun(void)
" full backup: 20201116-155000F\n"
" timestamp start/stop: 2020-11-16 15:50:00 / 2020-11-16 15:50:02\n"
" wal start/stop: 000000010000000000000002 / 000000010000000000000003\n"
" database size: 25.7MB, backup size: 25.7MB\n"
" repo1: size: 3MB, backup size: 3KB\n"
" database size: 25.7MB, database backup size: 25.7MB\n"
" repo1: backup set size: 3MB, backup size: 3KB\n"
"\n"
" incr backup: 20201116-155000F_20201119-152100I\n"
" timestamp start/stop: 2020-11-19 15:21:00 / 2020-11-19 15:21:03\n"
" wal start/stop: 000000010000000000000005 / 000000010000000000000005\n"
" database size: 19.2MB, backup size: 8.2KB\n"
" repo1: size: 2.3MB, backup size: 346B\n"
" database size: 19.2MB, database backup size: 8.2KB\n"
" repo1: backup set size: 2.3MB, backup size: 346B\n"
" backup reference list: 20201116-155000F\n",
"text - multi-repo, valid backups only on repo1");
@ -1957,21 +1953,21 @@ testRun(void)
" full backup: 20181119-152138F\n"
" timestamp start/stop: 2018-11-19 15:21:38 / 2018-11-19 15:21:39\n"
" wal start/stop: 000000010000000000000002 / 000000010000000000000002\n"
" database size: 19.2MB, backup size: 19.2MB\n"
" repo1: size: 2.3MB, backup size: 2.3MB\n"
" database size: 19.2MB, database backup size: 19.2MB\n"
" repo1: backup set size: 2.3MB, backup size: 2.3MB\n"
"\n"
" diff backup: 20181119-152138F_20181119-152152D\n"
" timestamp start/stop: 2018-11-19 15:21:52 / 2018-11-19 15:21:55\n"
" wal start/stop: 000000010000000000000003 / 000000020000000000000003\n"
" database size: 19.2MB, backup size: 8.2KB\n"
" repo1: size: 2.3MB, backup size: 346B\n"
" database size: 19.2MB, database backup size: 8.2KB\n"
" repo1: backup set size: 2.3MB, backup size: 346B\n"
" backup reference list: 20181119-152138F\n"
"\n"
" incr backup: 20181119-152138F_20181119-152155I\n"
" timestamp start/stop: 2018-11-19 15:21:55 / 2018-11-19 15:21:57\n"
" wal start/stop: n/a\n"
" database size: 19.2MB, backup size: 8.2KB\n"
" repo1: size: 2.3MB, backup size: 346B\n"
" database size: 19.2MB, database backup size: 8.2KB\n"
" repo1: backup set size: 2.3MB, backup size: 346B\n"
" backup reference list: 20181119-152138F, 20181119-152138F_20181119-152152D\n"
"\n"
" db (current)\n"
@ -1980,14 +1976,14 @@ testRun(void)
" full backup: 20201116-155000F\n"
" timestamp start/stop: 2020-11-16 15:50:00 / 2020-11-16 15:50:02\n"
" wal start/stop: 000000010000000000000002 / 000000010000000000000003\n"
" database size: 25.7MB, backup size: 25.7MB\n"
" repo1: size: 3MB, backup size: 3KB\n"
" database size: 25.7MB, database backup size: 25.7MB\n"
" repo1: backup set size: 3MB, backup size: 3KB\n"
"\n"
" incr backup: 20201116-155000F_20201119-152100I\n"
" timestamp start/stop: 2020-11-19 15:21:00 / 2020-11-19 15:21:03\n"
" wal start/stop: 000000010000000000000005 / 000000010000000000000005\n"
" database size: 19.2MB, backup size: 8.2KB\n"
" repo1: size: 2.3MB, backup size: 346B\n"
" database size: 19.2MB, database backup size: 8.2KB\n"
" repo1: backup set size: 2.3MB, backup size: 346B\n"
" backup reference list: 20201116-155000F\n",
"text - multi-repo, prior backup: no archives but backups (code coverage)");
@ -2097,14 +2093,14 @@ testRun(void)
" full backup: 20201110-100000F\n"
" timestamp start/stop: 2020-11-10 10:00:00 / 2020-11-10 10:00:02\n"
" wal start/stop: 000000010000000000000001 / 000000010000000000000002\n"
" database size: 25.7MB, backup size: 25.7MB\n"
" repo2: size: 3MB, backup size: 3KB\n"
" database size: 25.7MB, database backup size: 25.7MB\n"
" repo2: backup set size: 3MB, backup size: 3KB\n"
"\n"
" full backup: 20201212-192538F\n"
" timestamp start/stop: 2020-12-12 19:25:38 / 2020-12-12 19:25:40\n"
" wal start/stop: 000000010000000000000002 / 000000010000000000000003\n"
" database size: 25.7MB, backup size: 25.7MB\n"
" repo1: size: 3MB, backup size: 3KB\n"
" database size: 25.7MB, database backup size: 25.7MB\n"
" repo1: backup set size: 3MB, backup size: 3KB\n"
"\n"
" db (current)\n"
" wal archive min/max (9.5): 000000010000000000000006/000000010000000000000006\n"
@ -2112,8 +2108,8 @@ testRun(void)
" full backup: 20210112-192538F\n"
" timestamp start/stop: 2021-01-12 19:25:38 / 2021-01-12 19:25:40\n"
" wal start/stop: 000000010000000000000006 / 000000010000000000000006\n"
" database size: 25.7MB, backup size: 25.7MB\n"
" repo1: size: 3MB, backup size: 3KB\n",
" database size: 25.7MB, database backup size: 25.7MB\n"
" repo1: backup set size: 3MB, backup size: 3KB\n",
"text - multi-repo, database mismatch, repo2 stanza-upgrade needed");
hrnCfgArgRawZ(argList2, cfgOptOutput, "json");
@ -2471,8 +2467,8 @@ testRun(void)
" full backup: 20201116-155010F\n"
" timestamp start/stop: 2020-11-16 15:50:10 / 2020-11-16 15:50:12\n"
" wal start/stop: 000000010000000000000001 / 000000010000000000000002\n"
" database size: 25.7MB, backup size: 25.7MB\n"
" repo2: size: 3MB, backup size: 3KB\n"
" database size: 25.7MB, database backup size: 25.7MB\n"
" repo2: backup set size: 3MB, backup size: 3KB\n"
"\n"
" db (current)\n"
" wal archive min/max (9.4): 000000010000000000000002/000000010000000000000003\n"
@ -2480,8 +2476,8 @@ testRun(void)
" full backup: 20201116-155000F\n"
" timestamp start/stop: 2020-11-16 15:50:00 / 2020-11-16 15:50:02\n"
" wal start/stop: 000000010000000000000002 / 000000010000000000000003\n"
" database size: 25.7MB, backup size: 25.7MB\n"
" repo1: size: 3MB, backup size: 3KB\n",
" database size: 25.7MB, database backup size: 25.7MB\n"
" repo1: backup set size: 3MB, backup size: 3KB\n",
"text - db mismatch, diff system-id across repos, repo1 considered current db since read first");
//--------------------------------------------------------------------------------------------------------------------------
@ -2548,8 +2544,8 @@ testRun(void)
" full backup: 20201116-155010F\n"
" timestamp start/stop: 2020-11-16 15:50:10 / 2020-11-16 15:50:12\n"
" wal start/stop: 000000010000000000000001 / 000000010000000000000002\n"
" database size: 25.7MB, backup size: 25.7MB\n"
" repo2: size: 3MB, backup size: 3KB\n"
" database size: 25.7MB, database backup size: 25.7MB\n"
" repo2: backup set size: 3MB, backup size: 3KB\n"
"\n"
" db (current)\n"
" wal archive min/max (9.4): 000000010000000000000002/000000010000000000000003\n"
@ -2557,8 +2553,8 @@ testRun(void)
" full backup: 20201116-155000F\n"
" timestamp start/stop: 2020-11-16 15:50:00 / 2020-11-16 15:50:02\n"
" wal start/stop: 000000010000000000000002 / 000000010000000000000003\n"
" database size: 25.7MB, backup size: 25.7MB\n"
" repo1: size: 3MB, backup size: 3KB\n",
" database size: 25.7MB, database backup size: 25.7MB\n"
" repo1: backup set size: 3MB, backup size: 3KB\n",
"text - db mismatch, diff version across repos, repo1 considered current db since read first");
}
@ -2595,7 +2591,7 @@ testRun(void)
TEST_ERROR_FMT(
harnessCfgLoad(cfgCmdInfo, argList), OptionInvalidError, "option 'set' not valid without option 'stanza'");
// Option --repo not requied when only 1 repo configured
// Option --repo not required when only 1 repo configured
strLstAddZ(argList, "--stanza=stanza1");
harnessCfgLoad(cfgCmdInfo, argList);