You've already forked pgbackrest
mirror of
https://github.com/pgbackrest/pgbackrest.git
synced 2025-07-15 01:04:37 +02:00
Don't warn when stop-auto is enabled on PostgreSQL >= 9.6.
PostgreSQL >= 9.6 uses non-exclusive backup which has implicit stop-auto since the backup will stop when the connection is terminated.
The warning was made more verbose in 1f2ce45e
but this now seems like a bad idea since there are likely users with mixed version environments where stop-auto is enabled globally. There's no reason to fill their logs with warnings over a harmless option. If anything we should warn when stop-auto is explicitly set to false but this doesn't seem very important either.
Revert to the prior behavior, which is to warn and reset when stop-auto is enabled on PostgreSQL < 9.3.
This commit is contained in:
@ -270,10 +270,9 @@ backupInit(const InfoBackup *infoBackup)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Only allow stop auto in PostgreSQL >= 9.3 and <= 9.5
|
// Only allow stop auto in PostgreSQL >= 9.3 and <= 9.5
|
||||||
if (cfgOptionBool(cfgOptStopAuto) && (result->version < PG_VERSION_93 || result->version > PG_VERSION_95))
|
if (cfgOptionBool(cfgOptStopAuto) && result->version < PG_VERSION_93)
|
||||||
{
|
{
|
||||||
LOG_WARN(
|
LOG_WARN(CFGOPT_STOP_AUTO " option is only available in " PG_NAME " >= " PG_VERSION_93_STR);
|
||||||
CFGOPT_STOP_AUTO " option is only available in " PG_NAME " >= " PG_VERSION_93_STR " and <= " PG_VERSION_95_STR);
|
|
||||||
cfgOptionSet(cfgOptStopAuto, cfgSourceParam, BOOL_FALSE_VAR);
|
cfgOptionSet(cfgOptStopAuto, cfgSourceParam, BOOL_FALSE_VAR);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -307,9 +307,12 @@ dbBackupStart(Db *this, bool startFast, bool stopAuto)
|
|||||||
// If stop-auto is enabled check for a running backup
|
// If stop-auto is enabled check for a running backup
|
||||||
if (stopAuto)
|
if (stopAuto)
|
||||||
{
|
{
|
||||||
// This feature is not supported for PostgreSQL >= 9.6 since backups are run in non-exclusive mode
|
// Feature is not supported in PostgreSQL < 9.3
|
||||||
CHECK(dbPgVersion(this) >= PG_VERSION_93 && dbPgVersion(this) < PG_VERSION_96);
|
CHECK(dbPgVersion(this) >= PG_VERSION_93);
|
||||||
|
|
||||||
|
// Feature is not needed for PostgreSQL >= 9.6 since backups are run in non-exclusive mode
|
||||||
|
if (dbPgVersion(this) < PG_VERSION_96)
|
||||||
|
{
|
||||||
if (varBool(dbQueryColumn(this, STRDEF("select pg_catalog.pg_is_in_backup()::bool"))))
|
if (varBool(dbQueryColumn(this, STRDEF("select pg_catalog.pg_is_in_backup()::bool"))))
|
||||||
{
|
{
|
||||||
LOG_WARN(
|
LOG_WARN(
|
||||||
@ -319,6 +322,7 @@ dbBackupStart(Db *this, bool startFast, bool stopAuto)
|
|||||||
dbBackupStop(this);
|
dbBackupStop(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Start backup
|
// Start backup
|
||||||
VariantList *row = dbQueryRow(this, dbBackupStartQuery(dbPgVersion(this), startFast));
|
VariantList *row = dbQueryRow(this, dbBackupStartQuery(dbPgVersion(this), startFast));
|
||||||
|
@ -261,6 +261,7 @@ testBackupPqScript(unsigned int pgVersion, time_t backupTimeStart, TestBackupPqS
|
|||||||
|
|
||||||
// Start backup
|
// Start backup
|
||||||
HRNPQ_MACRO_ADVISORY_LOCK(1, true),
|
HRNPQ_MACRO_ADVISORY_LOCK(1, true),
|
||||||
|
HRNPQ_MACRO_IS_IN_BACKUP(1, false),
|
||||||
HRNPQ_MACRO_START_BACKUP_84_95(1, param.startFast, lsnStartStr, walSegmentStart),
|
HRNPQ_MACRO_START_BACKUP_84_95(1, param.startFast, lsnStartStr, walSegmentStart),
|
||||||
HRNPQ_MACRO_DATABASE_LIST_1(1, "test1"),
|
HRNPQ_MACRO_DATABASE_LIST_1(1, "test1"),
|
||||||
HRNPQ_MACRO_TABLESPACE_LIST_0(1),
|
HRNPQ_MACRO_TABLESPACE_LIST_0(1),
|
||||||
@ -1009,7 +1010,7 @@ testRun(void)
|
|||||||
TEST_RESULT_LOG("P00 WARN: start-fast option is only available in PostgreSQL >= 8.4");
|
TEST_RESULT_LOG("P00 WARN: start-fast option is only available in PostgreSQL >= 8.4");
|
||||||
|
|
||||||
// -------------------------------------------------------------------------------------------------------------------------
|
// -------------------------------------------------------------------------------------------------------------------------
|
||||||
TEST_TITLE("reset stop-auto when PostgreSQL < 9.3 or PostgreSQL > 9.5");
|
TEST_TITLE("reset stop-auto when PostgreSQL < 9.3");
|
||||||
|
|
||||||
// Create pg_control
|
// Create pg_control
|
||||||
storagePutP(
|
storagePutP(
|
||||||
@ -1028,29 +1029,7 @@ testRun(void)
|
|||||||
TEST_RESULT_VOID(backupInit(infoBackupNew(PG_VERSION_84, 1000000000000000840, NULL)), "backup init");
|
TEST_RESULT_VOID(backupInit(infoBackupNew(PG_VERSION_84, 1000000000000000840, NULL)), "backup init");
|
||||||
TEST_RESULT_BOOL(cfgOptionBool(cfgOptStopAuto), false, " check stop-auto");
|
TEST_RESULT_BOOL(cfgOptionBool(cfgOptStopAuto), false, " check stop-auto");
|
||||||
|
|
||||||
TEST_RESULT_LOG("P00 WARN: stop-auto option is only available in PostgreSQL >= 9.3 and <= 9.5");
|
TEST_RESULT_LOG("P00 WARN: stop-auto option is only available in PostgreSQL >= 9.3");
|
||||||
|
|
||||||
// Create pg_control
|
|
||||||
storagePutP(
|
|
||||||
storageNewWriteP(storageTest, strNewFmt("%s/" PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL, strPtr(pg1Path))),
|
|
||||||
pgControlTestToBuffer((PgControl){.version = PG_VERSION_96, .systemId = 1000000000000000960}));
|
|
||||||
|
|
||||||
harnessCfgLoad(cfgCmdBackup, argList);
|
|
||||||
|
|
||||||
TEST_RESULT_VOID(backupInit(infoBackupNew(PG_VERSION_96, 1000000000000000960, NULL)), "backup init");
|
|
||||||
TEST_RESULT_BOOL(cfgOptionBool(cfgOptStopAuto), false, " check stop-auto");
|
|
||||||
|
|
||||||
TEST_RESULT_LOG("P00 WARN: stop-auto option is only available in PostgreSQL >= 9.3 and <= 9.5");
|
|
||||||
|
|
||||||
// Create pg_control
|
|
||||||
storagePutP(
|
|
||||||
storageNewWriteP(storageTest, strNewFmt("%s/" PG_PATH_GLOBAL "/" PG_FILE_PGCONTROL, strPtr(pg1Path))),
|
|
||||||
pgControlTestToBuffer((PgControl){.version = PG_VERSION_95, .systemId = 1000000000000000950}));
|
|
||||||
|
|
||||||
harnessCfgLoad(cfgCmdBackup, argList);
|
|
||||||
|
|
||||||
TEST_RESULT_VOID(backupInit(infoBackupNew(PG_VERSION_95, 1000000000000000950, NULL)), "backup init");
|
|
||||||
TEST_RESULT_BOOL(cfgOptionBool(cfgOptStopAuto), true, " check stop-auto");
|
|
||||||
|
|
||||||
// -------------------------------------------------------------------------------------------------------------------------
|
// -------------------------------------------------------------------------------------------------------------------------
|
||||||
TEST_TITLE("reset checksum-page when the cluster does not have checksums enabled");
|
TEST_TITLE("reset checksum-page when the cluster does not have checksums enabled");
|
||||||
@ -1557,6 +1536,7 @@ testRun(void)
|
|||||||
strLstAdd(argList, strNewFmt("--" CFGOPT_PG1_PATH "=%s", strPtr(pg1Path)));
|
strLstAdd(argList, strNewFmt("--" CFGOPT_PG1_PATH "=%s", strPtr(pg1Path)));
|
||||||
strLstAddZ(argList, "--" CFGOPT_REPO1_RETENTION_FULL "=1");
|
strLstAddZ(argList, "--" CFGOPT_REPO1_RETENTION_FULL "=1");
|
||||||
strLstAddZ(argList, "--" CFGOPT_TYPE "=" BACKUP_TYPE_FULL);
|
strLstAddZ(argList, "--" CFGOPT_TYPE "=" BACKUP_TYPE_FULL);
|
||||||
|
strLstAddZ(argList, "--" CFGOPT_STOP_AUTO);
|
||||||
strLstAddZ(argList, "--no-" CFGOPT_COMPRESS);
|
strLstAddZ(argList, "--no-" CFGOPT_COMPRESS);
|
||||||
strLstAddZ(argList, "--no-" CFGOPT_ARCHIVE_CHECK);
|
strLstAddZ(argList, "--no-" CFGOPT_ARCHIVE_CHECK);
|
||||||
harnessCfgLoad(cfgCmdBackup, argList);
|
harnessCfgLoad(cfgCmdBackup, argList);
|
||||||
@ -1638,6 +1618,7 @@ testRun(void)
|
|||||||
strLstAdd(argList, strNewFmt("--" CFGOPT_PG1_PATH "=%s", strPtr(pg1Path)));
|
strLstAdd(argList, strNewFmt("--" CFGOPT_PG1_PATH "=%s", strPtr(pg1Path)));
|
||||||
strLstAddZ(argList, "--" CFGOPT_REPO1_RETENTION_FULL "=1");
|
strLstAddZ(argList, "--" CFGOPT_REPO1_RETENTION_FULL "=1");
|
||||||
strLstAddZ(argList, "--" CFGOPT_TYPE "=" BACKUP_TYPE_FULL);
|
strLstAddZ(argList, "--" CFGOPT_TYPE "=" BACKUP_TYPE_FULL);
|
||||||
|
strLstAddZ(argList, "--" CFGOPT_STOP_AUTO);
|
||||||
strLstAddZ(argList, "--" CFGOPT_REPO1_HARDLINK);
|
strLstAddZ(argList, "--" CFGOPT_REPO1_HARDLINK);
|
||||||
strLstAddZ(argList, "--" CFGOPT_ARCHIVE_COPY);
|
strLstAddZ(argList, "--" CFGOPT_ARCHIVE_COPY);
|
||||||
harnessCfgLoad(cfgCmdBackup, argList);
|
harnessCfgLoad(cfgCmdBackup, argList);
|
||||||
@ -1795,6 +1776,7 @@ testRun(void)
|
|||||||
strLstAdd(argList, strNewFmt("--" CFGOPT_PG1_PATH "=%s", strPtr(pg1Path)));
|
strLstAdd(argList, strNewFmt("--" CFGOPT_PG1_PATH "=%s", strPtr(pg1Path)));
|
||||||
strLstAddZ(argList, "--" CFGOPT_REPO1_RETENTION_FULL "=1");
|
strLstAddZ(argList, "--" CFGOPT_REPO1_RETENTION_FULL "=1");
|
||||||
strLstAddZ(argList, "--" CFGOPT_TYPE "=" BACKUP_TYPE_DIFF);
|
strLstAddZ(argList, "--" CFGOPT_TYPE "=" BACKUP_TYPE_DIFF);
|
||||||
|
strLstAddZ(argList, "--" CFGOPT_STOP_AUTO);
|
||||||
strLstAddZ(argList, "--" CFGOPT_REPO1_HARDLINK);
|
strLstAddZ(argList, "--" CFGOPT_REPO1_HARDLINK);
|
||||||
harnessCfgLoad(cfgCmdBackup, argList);
|
harnessCfgLoad(cfgCmdBackup, argList);
|
||||||
|
|
||||||
|
@ -289,7 +289,7 @@ testRun(void)
|
|||||||
|
|
||||||
TEST_ASSIGN(db, dbGet(true, true, false), "get primary");
|
TEST_ASSIGN(db, dbGet(true, true, false), "get primary");
|
||||||
|
|
||||||
TEST_ASSIGN(backupStartResult, dbBackupStart(db.primary, false, false), "start backup");
|
TEST_ASSIGN(backupStartResult, dbBackupStart(db.primary, false, true), "start backup");
|
||||||
TEST_RESULT_STR_Z(backupStartResult.lsn, "3/3", "check lsn");
|
TEST_RESULT_STR_Z(backupStartResult.lsn, "3/3", "check lsn");
|
||||||
TEST_RESULT_STR_Z(backupStartResult.walSegmentName, "000000010000000300000003", "check wal segment name");
|
TEST_RESULT_STR_Z(backupStartResult.walSegmentName, "000000010000000300000003", "check wal segment name");
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user