mirror of
https://github.com/pgbackrest/pgbackrest.git
synced 2025-01-18 04:58:51 +02:00
Ignore all files in a linked tablespace directory except the subdirectory for the current version of PostgreSQL.
Previously an error would be generated if other files were present and not owned by the PostgreSQL user. This hasn't been a big deal in practice but it could cause issues. Also add tests to make sure the same logic applies with links to files, i.e. all other files in the directory should be ignored. This was actually working correctly, but there were no tests for it before.
This commit is contained in:
parent
41746b53cd
commit
375ff9f9d2
@ -13,6 +13,13 @@
|
||||
|
||||
<release-list>
|
||||
<release date="XXXX-XX-XX" version="2.06dev" title="UNDER DEVELOPMENT">
|
||||
<release-core-list>
|
||||
<release-improvement-list>
|
||||
<release-item>
|
||||
<p>Ignore all files in a linked tablespace directory except the subdirectory for the current version of <postgres/>. Previously an error would be generated if other files were present and not owned by the <postgres/> user.</p>
|
||||
</release-item>
|
||||
</release-improvement-list>
|
||||
</release-core-list>
|
||||
</release>
|
||||
|
||||
<release date="2018-08-31" version="2.05" title="Environment Variable Options and Exclude Temporary/Unlogged Relations">
|
||||
|
@ -670,7 +670,7 @@ sub build
|
||||
}
|
||||
|
||||
# Get the manifest for this level
|
||||
my $hManifest = $oStorageDbMaster->manifest($strPath);
|
||||
my $hManifest = $oStorageDbMaster->manifest($strPath, {strFilter => $strFilter});
|
||||
my $strManifestType = MANIFEST_VALUE_LINK;
|
||||
|
||||
# Loop though all paths/files/links in the manifest
|
||||
@ -689,12 +689,6 @@ sub build
|
||||
'\' cannot reference another link', ERROR_LINK_DESTINATION);
|
||||
}
|
||||
|
||||
# Make sure the current file matches the filter or any files under the filter
|
||||
if (defined($strFilter) && $strName ne $strFilter && index($strName, "${strFilter}/") != 0)
|
||||
{
|
||||
next;
|
||||
}
|
||||
|
||||
if ($strManifestType eq MANIFEST_VALUE_LINK)
|
||||
{
|
||||
$strFile = dirname($strFile);
|
||||
|
@ -344,14 +344,16 @@ sub manifest
|
||||
(
|
||||
$strOperation,
|
||||
$strPathExp,
|
||||
$strFilter,
|
||||
) =
|
||||
logDebugParam
|
||||
(
|
||||
__PACKAGE__ . '->manifest', \@_,
|
||||
{name => 'strPathExp'},
|
||||
{name => 'strFilter', optional => true, trace => true},
|
||||
);
|
||||
|
||||
my $hManifest = $self->driver()->manifest($self->pathGet($strPathExp));
|
||||
my $hManifest = $self->driver()->manifest($self->pathGet($strPathExp), {strFilter => $strFilter});
|
||||
|
||||
# Return from function and log return values if any
|
||||
return logDebugReturn
|
||||
|
@ -320,17 +320,19 @@ sub manifest
|
||||
$strOperation,
|
||||
$strPath,
|
||||
$bIgnoreMissing,
|
||||
$strFilter,
|
||||
) =
|
||||
logDebugParam
|
||||
(
|
||||
__PACKAGE__ . '->manifest', \@_,
|
||||
{name => 'strPath', trace => true},
|
||||
{name => 'bIgnoreMissing', optional => true, default => false, trace => true},
|
||||
{name => 'strFilter', optional => true, trace => true},
|
||||
);
|
||||
|
||||
# Generate the manifest
|
||||
my $hManifest = {};
|
||||
$self->manifestRecurse($strPath, undef, 0, $hManifest, $bIgnoreMissing);
|
||||
$self->manifestRecurse($strPath, undef, 0, $hManifest, $bIgnoreMissing, $strFilter);
|
||||
|
||||
# Return from function and log return values if any
|
||||
return logDebugReturn
|
||||
@ -353,6 +355,7 @@ sub manifestRecurse
|
||||
$iDepth,
|
||||
$hManifest,
|
||||
$bIgnoreMissing,
|
||||
$strFilter,
|
||||
) =
|
||||
logDebugParam
|
||||
(
|
||||
@ -362,45 +365,42 @@ sub manifestRecurse
|
||||
{name => 'iDepth', default => 0, trace => true},
|
||||
{name => 'hManifest', required => false, trace => true},
|
||||
{name => 'bIgnoreMissing', required => false, default => false, trace => true},
|
||||
{name => 'strFilter', required => false, trace => true},
|
||||
);
|
||||
|
||||
# Set operation and debug strings
|
||||
my $strPathRead = $strPath . (defined($strSubPath) ? "/${strSubPath}" : '');
|
||||
my $hPath;
|
||||
my $strFilter;
|
||||
|
||||
# If this is the top level stat the path to discover if it is actually a file
|
||||
my $oPathInfo = $self->info($strPathRead, {bIgnoreMissing => $bIgnoreMissing});
|
||||
|
||||
if (defined($oPathInfo))
|
||||
{
|
||||
# If the initial path passed is a file then generate the manifest for just that file
|
||||
if ($iDepth == 0 && !S_ISDIR($oPathInfo->mode()))
|
||||
{
|
||||
$strFilter = basename($strPathRead);
|
||||
$strPathRead = dirname($strPathRead);
|
||||
$hManifest->{basename($strPathRead)} = $self->manifestStat($strPathRead);
|
||||
}
|
||||
|
||||
# Get a list of all files in the path (including .)
|
||||
my @stryFileList = @{$self->list($strPathRead, {bIgnoreMissing => $iDepth != 0})};
|
||||
unshift(@stryFileList, '.');
|
||||
my $hFileStat = $self->manifestList($strPathRead, \@stryFileList);
|
||||
|
||||
# Loop through all subpaths/files in the path
|
||||
foreach my $strFile (keys(%{$hFileStat}))
|
||||
# Else read as a normal directory
|
||||
else
|
||||
{
|
||||
# Skip this file if it does not match the filter
|
||||
if (defined($strFilter) && $strFile ne $strFilter)
|
||||
{
|
||||
next;
|
||||
}
|
||||
# Get a list of all files in the path (including .)
|
||||
my @stryFileList = @{$self->list($strPathRead, {bIgnoreMissing => $iDepth != 0})};
|
||||
unshift(@stryFileList, '.');
|
||||
my $hFileStat = $self->manifestList($strPathRead, \@stryFileList, $strFilter);
|
||||
|
||||
my $strManifestFile = $iDepth == 0 ? $strFile : ($strSubPath . ($strFile eq qw(.) ? '' : "/${strFile}"));
|
||||
$hManifest->{$strManifestFile} = $hFileStat->{$strFile};
|
||||
|
||||
# Recurse into directories
|
||||
if ($hManifest->{$strManifestFile}{type} eq 'd' && $strFile ne qw(.))
|
||||
# Loop through all subpaths/files in the path
|
||||
foreach my $strFile (keys(%{$hFileStat}))
|
||||
{
|
||||
$self->manifestRecurse($strPath, $strManifestFile, $iDepth + 1, $hManifest);
|
||||
my $strManifestFile = $iDepth == 0 ? $strFile : ($strSubPath . ($strFile eq qw(.) ? '' : "/${strFile}"));
|
||||
$hManifest->{$strManifestFile} = $hFileStat->{$strFile};
|
||||
|
||||
# Recurse into directories
|
||||
if ($hManifest->{$strManifestFile}{type} eq 'd' && $strFile ne qw(.))
|
||||
{
|
||||
$self->manifestRecurse($strPath, $strManifestFile, $iDepth + 1, $hManifest);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -419,18 +419,25 @@ sub manifestList
|
||||
$strOperation,
|
||||
$strPath,
|
||||
$stryFile,
|
||||
$strFilter,
|
||||
) =
|
||||
logDebugParam
|
||||
(
|
||||
__PACKAGE__ . '->manifestList', \@_,
|
||||
{name => 'strPath', trace => true},
|
||||
{name => 'stryFile', trace => true},
|
||||
{name => 'strFilter', required => false, trace => true},
|
||||
);
|
||||
|
||||
my $hFileStat = {};
|
||||
|
||||
foreach my $strFile (@{$stryFile})
|
||||
{
|
||||
if ($strFile ne '.' && defined($strFilter) && $strFilter ne $strFile)
|
||||
{
|
||||
next;
|
||||
}
|
||||
|
||||
$hFileStat->{$strFile} = $self->manifestStat("${strPath}" . ($strFile eq qw(.) ? '' : "/${strFile}"));
|
||||
|
||||
if (!defined($hFileStat->{$strFile}))
|
||||
|
@ -12112,7 +12112,7 @@ static const EmbeddedModule embeddedModule[] =
|
||||
"$strPath = $oStorageDbMaster->pathAbsolute($strParentPath, $strPath);\n"
|
||||
"}\n"
|
||||
"\n\n"
|
||||
"my $hManifest = $oStorageDbMaster->manifest($strPath);\n"
|
||||
"my $hManifest = $oStorageDbMaster->manifest($strPath, {strFilter => $strFilter});\n"
|
||||
"my $strManifestType = MANIFEST_VALUE_LINK;\n"
|
||||
"\n\n"
|
||||
"foreach my $strName (sort(CORE::keys(%{$hManifest})))\n"
|
||||
@ -12129,11 +12129,6 @@ static const EmbeddedModule embeddedModule[] =
|
||||
"'\\' -> \\'' . $self->get(MANIFEST_SECTION_BACKUP_TARGET, $strLevel, MANIFEST_SUBKEY_PATH) .\n"
|
||||
"'\\' cannot reference another link', ERROR_LINK_DESTINATION);\n"
|
||||
"}\n"
|
||||
"\n\n"
|
||||
"if (defined($strFilter) && $strName ne $strFilter && index($strName, \"${strFilter}/\") != 0)\n"
|
||||
"{\n"
|
||||
"next;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"if ($strManifestType eq MANIFEST_VALUE_LINK)\n"
|
||||
"{\n"
|
||||
@ -18538,14 +18533,16 @@ static const EmbeddedModule embeddedModule[] =
|
||||
"(\n"
|
||||
"$strOperation,\n"
|
||||
"$strPathExp,\n"
|
||||
"$strFilter,\n"
|
||||
") =\n"
|
||||
"logDebugParam\n"
|
||||
"(\n"
|
||||
"__PACKAGE__ . '->manifest', \\@_,\n"
|
||||
"{name => 'strPathExp'},\n"
|
||||
"{name => 'strFilter', optional => true, trace => true},\n"
|
||||
");\n"
|
||||
"\n"
|
||||
"my $hManifest = $self->driver()->manifest($self->pathGet($strPathExp));\n"
|
||||
"my $hManifest = $self->driver()->manifest($self->pathGet($strPathExp), {strFilter => $strFilter});\n"
|
||||
"\n\n"
|
||||
"return logDebugReturn\n"
|
||||
"(\n"
|
||||
@ -19294,16 +19291,18 @@ static const EmbeddedModule embeddedModule[] =
|
||||
"$strOperation,\n"
|
||||
"$strPath,\n"
|
||||
"$bIgnoreMissing,\n"
|
||||
"$strFilter,\n"
|
||||
") =\n"
|
||||
"logDebugParam\n"
|
||||
"(\n"
|
||||
"__PACKAGE__ . '->manifest', \\@_,\n"
|
||||
"{name => 'strPath', trace => true},\n"
|
||||
"{name => 'bIgnoreMissing', optional => true, default => false, trace => true},\n"
|
||||
"{name => 'strFilter', optional => true, trace => true},\n"
|
||||
");\n"
|
||||
"\n\n"
|
||||
"my $hManifest = {};\n"
|
||||
"$self->manifestRecurse($strPath, undef, 0, $hManifest, $bIgnoreMissing);\n"
|
||||
"$self->manifestRecurse($strPath, undef, 0, $hManifest, $bIgnoreMissing, $strFilter);\n"
|
||||
"\n\n"
|
||||
"return logDebugReturn\n"
|
||||
"(\n"
|
||||
@ -19324,6 +19323,7 @@ static const EmbeddedModule embeddedModule[] =
|
||||
"$iDepth,\n"
|
||||
"$hManifest,\n"
|
||||
"$bIgnoreMissing,\n"
|
||||
"$strFilter,\n"
|
||||
") =\n"
|
||||
"logDebugParam\n"
|
||||
"(\n"
|
||||
@ -19333,34 +19333,31 @@ static const EmbeddedModule embeddedModule[] =
|
||||
"{name => 'iDepth', default => 0, trace => true},\n"
|
||||
"{name => 'hManifest', required => false, trace => true},\n"
|
||||
"{name => 'bIgnoreMissing', required => false, default => false, trace => true},\n"
|
||||
"{name => 'strFilter', required => false, trace => true},\n"
|
||||
");\n"
|
||||
"\n\n"
|
||||
"my $strPathRead = $strPath . (defined($strSubPath) ? \"/${strSubPath}\" : '');\n"
|
||||
"my $hPath;\n"
|
||||
"my $strFilter;\n"
|
||||
"\n\n"
|
||||
"my $oPathInfo = $self->info($strPathRead, {bIgnoreMissing => $bIgnoreMissing});\n"
|
||||
"\n"
|
||||
"if (defined($oPathInfo))\n"
|
||||
"{\n"
|
||||
"\n"
|
||||
"if ($iDepth == 0 && !S_ISDIR($oPathInfo->mode()))\n"
|
||||
"{\n"
|
||||
"$strFilter = basename($strPathRead);\n"
|
||||
"$strPathRead = dirname($strPathRead);\n"
|
||||
"$hManifest->{basename($strPathRead)} = $self->manifestStat($strPathRead);\n"
|
||||
"}\n"
|
||||
"\n\n"
|
||||
"\n"
|
||||
"else\n"
|
||||
"{\n"
|
||||
"\n"
|
||||
"my @stryFileList = @{$self->list($strPathRead, {bIgnoreMissing => $iDepth != 0})};\n"
|
||||
"unshift(@stryFileList, '.');\n"
|
||||
"my $hFileStat = $self->manifestList($strPathRead, \\@stryFileList);\n"
|
||||
"my $hFileStat = $self->manifestList($strPathRead, \\@stryFileList, $strFilter);\n"
|
||||
"\n\n"
|
||||
"foreach my $strFile (keys(%{$hFileStat}))\n"
|
||||
"{\n"
|
||||
"\n"
|
||||
"if (defined($strFilter) && $strFile ne $strFilter)\n"
|
||||
"{\n"
|
||||
"next;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"my $strManifestFile = $iDepth == 0 ? $strFile : ($strSubPath . ($strFile eq qw(.) ? '' : \"/${strFile}\"));\n"
|
||||
"$hManifest->{$strManifestFile} = $hFileStat->{$strFile};\n"
|
||||
"\n\n"
|
||||
@ -19370,6 +19367,7 @@ static const EmbeddedModule embeddedModule[] =
|
||||
"}\n"
|
||||
"}\n"
|
||||
"}\n"
|
||||
"}\n"
|
||||
"\n\n"
|
||||
"return logDebugReturn($strOperation);\n"
|
||||
"}\n"
|
||||
@ -19383,18 +19381,25 @@ static const EmbeddedModule embeddedModule[] =
|
||||
"$strOperation,\n"
|
||||
"$strPath,\n"
|
||||
"$stryFile,\n"
|
||||
"$strFilter,\n"
|
||||
") =\n"
|
||||
"logDebugParam\n"
|
||||
"(\n"
|
||||
"__PACKAGE__ . '->manifestList', \\@_,\n"
|
||||
"{name => 'strPath', trace => true},\n"
|
||||
"{name => 'stryFile', trace => true},\n"
|
||||
"{name => 'strFilter', required => false, trace => true},\n"
|
||||
");\n"
|
||||
"\n"
|
||||
"my $hFileStat = {};\n"
|
||||
"\n"
|
||||
"foreach my $strFile (@{$stryFile})\n"
|
||||
"{\n"
|
||||
"if ($strFile ne '.' && defined($strFilter) && $strFilter ne $strFile)\n"
|
||||
"{\n"
|
||||
"next;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"$hFileStat->{$strFile} = $self->manifestStat(\"${strPath}\" . ($strFile eq qw(.) ? '' : \"/${strFile}\"));\n"
|
||||
"\n"
|
||||
"if (!defined($hFileStat->{$strFile}))\n"
|
||||
|
@ -139,18 +139,18 @@ P00 DEBUG: Manifest->new(): bLoad = false, iDbCatalogVersion = 201409291, o
|
||||
P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/postmaster.pid
|
||||
P00 DEBUG: Storage::Local->exists=>: bExists = false
|
||||
P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], iLevel = <0>, oLastManifest = [undef], oStorageDbMaster = [object], rhExclude = [hash], strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base
|
||||
P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc
|
||||
P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base
|
||||
P00 DEBUG: Storage::Local->manifest(): strFilter = [undef], strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc
|
||||
P00 DEBUG: Storage::Local->manifest(): strFilter = [undef], strPathExp = [TEST_PATH]/db-master/db/base
|
||||
P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], iLevel = 1, oLastManifest = [undef], oStorageDbMaster = [object], rhExclude = [hash], strFilter = [undef], strLevel = pg_data/pg_hba.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/pg_hba.conf
|
||||
P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_config/pg_hba.conf
|
||||
P00 DEBUG: Storage::Local->manifest(): strFilter = [undef], strPathExp = [TEST_PATH]/db-master/db/pg_config/pg_hba.conf
|
||||
P00 INFO: exclude pg_log/logfile from backup using 'pg_log/' exclusion
|
||||
P00 INFO: exclude pg_log2 from backup using 'pg_log2' exclusion
|
||||
P00 INFO: exclude pg_log2/logfile from backup using 'pg_log2' exclusion
|
||||
P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], iLevel = 1, oLastManifest = [undef], oStorageDbMaster = [object], rhExclude = [hash], strFilter = [undef], strLevel = pg_data/pg_stat, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_stat
|
||||
P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_stat
|
||||
P00 DEBUG: Storage::Local->manifest(): strFilter = [undef], strPathExp = [TEST_PATH]/db-master/db/pg_stat
|
||||
P00 INFO: exclude postgresql.auto.conf from backup using 'postgresql.auto.conf' exclusion
|
||||
P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], iLevel = 1, oLastManifest = [undef], oStorageDbMaster = [object], rhExclude = [hash], strFilter = [undef], strLevel = pg_data/postgresql.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/postgresql.conf
|
||||
P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_config/postgresql.conf
|
||||
P00 DEBUG: Storage::Local->manifest(): strFilter = [undef], strPathExp = [TEST_PATH]/db-master/db/pg_config/postgresql.conf
|
||||
P00 DEBUG: Backup::Backup->process: create backup path [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]
|
||||
P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = <false>, bIgnoreExists = <false>, strMode = <0750>, strPathExp = <REPO:BACKUP>/[BACKUP-FULL-1]
|
||||
P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-1]/backup.manifest
|
||||
@ -590,18 +590,18 @@ P00 DEBUG: Manifest->new(): bLoad = false, iDbCatalogVersion = 201409291, o
|
||||
P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/base/postmaster.pid
|
||||
P00 DEBUG: Storage::Local->exists=>: bExists = false
|
||||
P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], iLevel = <0>, oLastManifest = [undef], oStorageDbMaster = [object], rhExclude = [hash], strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base
|
||||
P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc
|
||||
P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base
|
||||
P00 DEBUG: Storage::Local->manifest(): strFilter = [undef], strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc
|
||||
P00 DEBUG: Storage::Local->manifest(): strFilter = [undef], strPathExp = [TEST_PATH]/db-master/db/base
|
||||
P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], iLevel = 1, oLastManifest = [undef], oStorageDbMaster = [object], rhExclude = [hash], strFilter = [undef], strLevel = pg_data/pg_hba.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/pg_hba.conf
|
||||
P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_config/pg_hba.conf
|
||||
P00 DEBUG: Storage::Local->manifest(): strFilter = [undef], strPathExp = [TEST_PATH]/db-master/db/pg_config/pg_hba.conf
|
||||
P00 INFO: exclude pg_log/logfile from backup using 'pg_log/' exclusion
|
||||
P00 INFO: exclude pg_log2 from backup using 'pg_log2' exclusion
|
||||
P00 INFO: exclude pg_log2/logfile from backup using 'pg_log2' exclusion
|
||||
P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], iLevel = 1, oLastManifest = [undef], oStorageDbMaster = [object], rhExclude = [hash], strFilter = [undef], strLevel = pg_data/pg_stat, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_stat
|
||||
P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_stat
|
||||
P00 DEBUG: Storage::Local->manifest(): strFilter = [undef], strPathExp = [TEST_PATH]/db-master/db/pg_stat
|
||||
P00 INFO: exclude postgresql.auto.conf from backup using 'postgresql.auto.conf' exclusion
|
||||
P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], iLevel = 1, oLastManifest = [undef], oStorageDbMaster = [object], rhExclude = [hash], strFilter = [undef], strLevel = pg_data/postgresql.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/postgresql.conf
|
||||
P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_config/postgresql.conf
|
||||
P00 DEBUG: Storage::Local->manifest(): strFilter = [undef], strPathExp = [TEST_PATH]/db-master/db/pg_config/postgresql.conf
|
||||
P00 DEBUG: Backup::Backup->process: create backup path [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]
|
||||
P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = <false>, bIgnoreExists = <false>, strMode = <0750>, strPathExp = <REPO:BACKUP>/[BACKUP-FULL-2]
|
||||
P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]/backup.manifest
|
||||
@ -839,23 +839,23 @@ P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/
|
||||
P00 DEBUG: Storage::Local->exists=>: bExists = true
|
||||
P00 WARN: --no-online passed and postmaster.pid exists but --force was passed so backup will continue though it looks like the postmaster is running and the backup will probably not be consistent
|
||||
P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], iLevel = <0>, oLastManifest = [undef], oStorageDbMaster = [object], rhExclude = [hash], strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base
|
||||
P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc
|
||||
P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base
|
||||
P00 DEBUG: Storage::Local->manifest(): strFilter = [undef], strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc
|
||||
P00 DEBUG: Storage::Local->manifest(): strFilter = [undef], strPathExp = [TEST_PATH]/db-master/db/base
|
||||
P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], iLevel = 1, oLastManifest = [undef], oStorageDbMaster = [object], rhExclude = [hash], strFilter = [undef], strLevel = pg_data/pg_hba.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/pg_hba.conf
|
||||
P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_config/pg_hba.conf
|
||||
P00 DEBUG: Storage::Local->manifest(): strFilter = [undef], strPathExp = [TEST_PATH]/db-master/db/pg_config/pg_hba.conf
|
||||
P00 INFO: exclude pg_log/logfile from backup using 'pg_log/' exclusion
|
||||
P00 INFO: exclude pg_log2 from backup using 'pg_log2' exclusion
|
||||
P00 INFO: exclude pg_log2/logfile from backup using 'pg_log2' exclusion
|
||||
P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], iLevel = 1, oLastManifest = [undef], oStorageDbMaster = [object], rhExclude = [hash], strFilter = [undef], strLevel = pg_data/pg_stat, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_stat
|
||||
P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_stat
|
||||
P00 DEBUG: Storage::Local->manifest(): strFilter = [undef], strPathExp = [TEST_PATH]/db-master/db/pg_stat
|
||||
P00 INFO: exclude postgresql.auto.conf from backup using 'postgresql.auto.conf' exclusion
|
||||
P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], iLevel = 1, oLastManifest = [undef], oStorageDbMaster = [object], rhExclude = [hash], strFilter = [undef], strLevel = pg_data/postgresql.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/postgresql.conf
|
||||
P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_config/postgresql.conf
|
||||
P00 DEBUG: Storage::Local->manifest(): strFilter = [undef], strPathExp = [TEST_PATH]/db-master/db/pg_config/postgresql.conf
|
||||
P00 WARN: aborted backup [BACKUP-FULL-2] of same type exists, will be cleaned to remove invalid files and resumed
|
||||
P00 TEST: PgBaCkReStTeSt-BACKUP-RESUME-PgBaCkReStTeSt
|
||||
P00 DEBUG: Backup::Backup->resumeClean(): oAbortedManifest = [object], oManifest = [object], oStorageRepo = [object], strBackupLabel = [BACKUP-FULL-2]
|
||||
P00 DETAIL: clean resumed backup path: [TEST_PATH]/db-master/repo/backup/db/[BACKUP-FULL-2]
|
||||
P00 DEBUG: Storage::Local->manifest(): strPathExp = <REPO:BACKUP>/[BACKUP-FULL-2]
|
||||
P00 DEBUG: Storage::Local->manifest(): strFilter = [undef], strPathExp = <REPO:BACKUP>/[BACKUP-FULL-2]
|
||||
P00 DEBUG: Backup::Backup->resumeClean: remove file file.tmp
|
||||
P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/PG_VERSION
|
||||
P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = <true>, bRecurse = <false>, xstryPathFileExp = (<REPO:BACKUP>/[BACKUP-FULL-2]/file.tmp, <REPO:BACKUP>/[BACKUP-FULL-2]/pg_data/PG_VERSION)
|
||||
@ -1245,7 +1245,7 @@ P00 DEBUG: Restore->clean(): oManifest = [object]
|
||||
P00 DETAIL: check [TEST_PATH]/db-master/db/base exists
|
||||
P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base
|
||||
P00 DEBUG: Storage::Local->pathExists=>: bExists = true
|
||||
P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base
|
||||
P00 DEBUG: Storage::Local->manifest(): strFilter = [undef], strPathExp = [TEST_PATH]/db-master/db/base
|
||||
P00 DETAIL: check [TEST_PATH]/db-master/db/pg_config exists
|
||||
P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_config
|
||||
P00 DEBUG: Storage::Local->pathExists=>: bExists = true
|
||||
@ -1254,7 +1254,7 @@ P00 DEBUG: Storage::Local->exists=>: bExists = true
|
||||
P00 DETAIL: check [TEST_PATH]/db-master/db/pg_stat exists
|
||||
P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_stat
|
||||
P00 DEBUG: Storage::Local->pathExists=>: bExists = true
|
||||
P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_stat
|
||||
P00 DEBUG: Storage::Local->manifest(): strFilter = [undef], strPathExp = [TEST_PATH]/db-master/db/pg_stat
|
||||
P00 DETAIL: check [TEST_PATH]/db-master/db/pg_config exists
|
||||
P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_config
|
||||
P00 DEBUG: Storage::Local->pathExists=>: bExists = true
|
||||
@ -1263,19 +1263,19 @@ P00 DEBUG: Storage::Local->exists=>: bExists = true
|
||||
P00 INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/pg_config
|
||||
P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_config
|
||||
P00 DEBUG: Storage::Local->pathExists=>: bExists = true
|
||||
P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_config
|
||||
P00 DEBUG: Storage::Local->manifest(): strFilter = [undef], strPathExp = [TEST_PATH]/db-master/db/pg_config
|
||||
P00 INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/pg_stat
|
||||
P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_stat
|
||||
P00 DEBUG: Storage::Local->pathExists=>: bExists = true
|
||||
P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_stat
|
||||
P00 DEBUG: Storage::Local->manifest(): strFilter = [undef], strPathExp = [TEST_PATH]/db-master/db/pg_stat
|
||||
P00 INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/pg_config
|
||||
P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_config
|
||||
P00 DEBUG: Storage::Local->pathExists=>: bExists = true
|
||||
P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_config
|
||||
P00 DEBUG: Storage::Local->manifest(): strFilter = [undef], strPathExp = [TEST_PATH]/db-master/db/pg_config
|
||||
P00 INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/base
|
||||
P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base
|
||||
P00 DEBUG: Storage::Local->pathExists=>: bExists = true
|
||||
P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base
|
||||
P00 DEBUG: Storage::Local->manifest(): strFilter = [undef], strPathExp = [TEST_PATH]/db-master/db/base
|
||||
P00 DETAIL: remove file [TEST_PATH]/db-master/db/base/recovery.done
|
||||
P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = <true>, bRecurse = <false>, xstryPathFileExp = [TEST_PATH]/db-master/db/base/recovery.done
|
||||
P00 DEBUG: Storage::Local->remove=>: bRemoved = true
|
||||
@ -1993,11 +1993,11 @@ P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/
|
||||
P00 DEBUG: Storage::Local->exists=>: bExists = false
|
||||
P00 WARN: incr backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2]
|
||||
P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], iLevel = <0>, oLastManifest = [object], oStorageDbMaster = [object], rhExclude = [hash], strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base
|
||||
P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc
|
||||
P00 DEBUG: Storage::Local->manifest(): strFilter = [undef], strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc
|
||||
P00 DEBUG: Manifest->build: found tablespace 1 in offline mode
|
||||
P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base
|
||||
P00 DEBUG: Storage::Local->manifest(): strFilter = [undef], strPathExp = [TEST_PATH]/db-master/db/base
|
||||
P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], iLevel = 1, oLastManifest = [undef], oStorageDbMaster = [object], rhExclude = [hash], strFilter = [TS_PATH-1], strLevel = pg_tblspc/1, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts1
|
||||
P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/tablespace/ts1
|
||||
P00 DEBUG: Storage::Local->manifest(): strFilter = [TS_PATH-1], strPathExp = [TEST_PATH]/db-master/db/tablespace/ts1
|
||||
P00 DEBUG: Backup::Backup->process: create backup path [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]
|
||||
P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = <false>, bIgnoreExists = <false>, strMode = <0750>, strPathExp = <REPO:BACKUP>/[BACKUP-INCR-1]
|
||||
P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-1]/backup.manifest
|
||||
@ -2409,22 +2409,22 @@ P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/db-master/db/
|
||||
P00 DEBUG: Storage::Local->exists=>: bExists = false
|
||||
P00 WARN: incr backup cannot alter 'checksum-page' option to 'false', reset to 'true' from [BACKUP-FULL-2]
|
||||
P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], iLevel = <0>, oLastManifest = [object], oStorageDbMaster = [object], rhExclude = [hash], strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base
|
||||
P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc
|
||||
P00 DEBUG: Storage::Local->manifest(): strFilter = [undef], strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc
|
||||
P00 DEBUG: Manifest->build: found tablespace 1 in offline mode
|
||||
P00 DEBUG: Manifest->build: found tablespace 11 in offline mode
|
||||
P00 DEBUG: Manifest->build: found tablespace 2 in offline mode
|
||||
P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base
|
||||
P00 DEBUG: Storage::Local->manifest(): strFilter = [undef], strPathExp = [TEST_PATH]/db-master/db/base
|
||||
P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], iLevel = 1, oLastManifest = [undef], oStorageDbMaster = [object], rhExclude = [hash], strFilter = [TS_PATH-1], strLevel = pg_tblspc/1, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts1
|
||||
P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/tablespace/ts1
|
||||
P00 DEBUG: Storage::Local->manifest(): strFilter = [TS_PATH-1], strPathExp = [TEST_PATH]/db-master/db/tablespace/ts1
|
||||
P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], iLevel = 1, oLastManifest = [undef], oStorageDbMaster = [object], rhExclude = [hash], strFilter = [TS_PATH-1], strLevel = pg_tblspc/11, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts11
|
||||
P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/tablespace/ts11
|
||||
P00 DEBUG: Storage::Local->manifest(): strFilter = [TS_PATH-1], strPathExp = [TEST_PATH]/db-master/db/tablespace/ts11
|
||||
P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], iLevel = 1, oLastManifest = [undef], oStorageDbMaster = [object], rhExclude = [hash], strFilter = [TS_PATH-1], strLevel = pg_tblspc/2, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts2
|
||||
P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/tablespace/ts2
|
||||
P00 DEBUG: Storage::Local->manifest(): strFilter = [TS_PATH-1], strPathExp = [TEST_PATH]/db-master/db/tablespace/ts2
|
||||
P00 WARN: aborted backup [BACKUP-INCR-2] of same type exists, will be cleaned to remove invalid files and resumed
|
||||
P00 TEST: PgBaCkReStTeSt-BACKUP-RESUME-PgBaCkReStTeSt
|
||||
P00 DEBUG: Backup::Backup->resumeClean(): oAbortedManifest = [object], oManifest = [object], oStorageRepo = [object], strBackupLabel = [BACKUP-INCR-2]
|
||||
P00 DETAIL: clean resumed backup path: [TEST_PATH]/db-master/repo/backup/db/[BACKUP-INCR-2]
|
||||
P00 DEBUG: Storage::Local->manifest(): strPathExp = <REPO:BACKUP>/[BACKUP-INCR-2]
|
||||
P00 DEBUG: Storage::Local->manifest(): strFilter = [undef], strPathExp = <REPO:BACKUP>/[BACKUP-INCR-2]
|
||||
P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/changesize.txt
|
||||
P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/zerosize.txt
|
||||
P00 DEBUG: Backup::Backup->resumeClean: remove file pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt
|
||||
@ -3185,7 +3185,7 @@ P00 DEBUG: Restore->clean(): oManifest = [object]
|
||||
P00 DETAIL: check [TEST_PATH]/db-master/db/base-2 exists
|
||||
P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base-2
|
||||
P00 DEBUG: Storage::Local->pathExists=>: bExists = true
|
||||
P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base-2
|
||||
P00 DEBUG: Storage::Local->manifest(): strFilter = [undef], strPathExp = [TEST_PATH]/db-master/db/base-2
|
||||
P00 DETAIL: check [TEST_PATH]/db-master/db/tablespace/ts1-2 exists
|
||||
P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/tablespace/ts1-2
|
||||
P00 DEBUG: Storage::Local->pathExists=>: bExists = true
|
||||
|
@ -127,13 +127,13 @@ P00 DEBUG: Protocol::Storage::Remote->exists(): strPathExp = [TEST_PATH]/db
|
||||
P00 DEBUG: Protocol::Storage::Remote->exists=>: bExists = false
|
||||
P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], iLevel = <0>, oLastManifest = [undef], oStorageDbMaster = [object], rhExclude = [undef], strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base
|
||||
P00 DEBUG: Protocol::Storage::Remote->manifest(): rhParam = [undef], strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc
|
||||
P00 DEBUG: Protocol::Storage::Remote->manifest(): rhParam = [undef], strPathExp = [TEST_PATH]/db-master/db/base
|
||||
P00 DEBUG: Protocol::Storage::Remote->manifest(): rhParam = [hash], strPathExp = [TEST_PATH]/db-master/db/base
|
||||
P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], iLevel = 1, oLastManifest = [undef], oStorageDbMaster = [object], rhExclude = [undef], strFilter = [undef], strLevel = pg_data/pg_hba.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/pg_hba.conf
|
||||
P00 DEBUG: Protocol::Storage::Remote->manifest(): rhParam = [undef], strPathExp = [TEST_PATH]/db-master/db/pg_config/pg_hba.conf
|
||||
P00 DEBUG: Protocol::Storage::Remote->manifest(): rhParam = [hash], strPathExp = [TEST_PATH]/db-master/db/pg_config/pg_hba.conf
|
||||
P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], iLevel = 1, oLastManifest = [undef], oStorageDbMaster = [object], rhExclude = [undef], strFilter = [undef], strLevel = pg_data/pg_stat, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_stat
|
||||
P00 DEBUG: Protocol::Storage::Remote->manifest(): rhParam = [undef], strPathExp = [TEST_PATH]/db-master/db/pg_stat
|
||||
P00 DEBUG: Protocol::Storage::Remote->manifest(): rhParam = [hash], strPathExp = [TEST_PATH]/db-master/db/pg_stat
|
||||
P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], iLevel = 1, oLastManifest = [undef], oStorageDbMaster = [object], rhExclude = [undef], strFilter = [undef], strLevel = pg_data/postgresql.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/postgresql.conf
|
||||
P00 DEBUG: Protocol::Storage::Remote->manifest(): rhParam = [undef], strPathExp = [TEST_PATH]/db-master/db/pg_config/postgresql.conf
|
||||
P00 DEBUG: Protocol::Storage::Remote->manifest(): rhParam = [hash], strPathExp = [TEST_PATH]/db-master/db/pg_config/postgresql.conf
|
||||
P00 DEBUG: Backup::Backup->process: create backup path [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]
|
||||
P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = <false>, bIgnoreExists = <false>, strMode = <0750>, strPathExp = <REPO:BACKUP>/[BACKUP-FULL-1]
|
||||
P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-1]/backup.manifest
|
||||
@ -596,17 +596,17 @@ P00 DEBUG: Protocol::Storage::Remote->exists(): strPathExp = [TEST_PATH]/db
|
||||
P00 DEBUG: Protocol::Storage::Remote->exists=>: bExists = false
|
||||
P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], iLevel = <0>, oLastManifest = [undef], oStorageDbMaster = [object], rhExclude = [undef], strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base
|
||||
P00 DEBUG: Protocol::Storage::Remote->manifest(): rhParam = [undef], strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc
|
||||
P00 DEBUG: Protocol::Storage::Remote->manifest(): rhParam = [undef], strPathExp = [TEST_PATH]/db-master/db/base
|
||||
P00 DEBUG: Protocol::Storage::Remote->manifest(): rhParam = [hash], strPathExp = [TEST_PATH]/db-master/db/base
|
||||
P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], iLevel = 1, oLastManifest = [undef], oStorageDbMaster = [object], rhExclude = [undef], strFilter = [undef], strLevel = pg_data/pg_hba.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/pg_hba.conf
|
||||
P00 DEBUG: Protocol::Storage::Remote->manifest(): rhParam = [undef], strPathExp = [TEST_PATH]/db-master/db/pg_config/pg_hba.conf
|
||||
P00 DEBUG: Protocol::Storage::Remote->manifest(): rhParam = [hash], strPathExp = [TEST_PATH]/db-master/db/pg_config/pg_hba.conf
|
||||
P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], iLevel = 1, oLastManifest = [undef], oStorageDbMaster = [object], rhExclude = [undef], strFilter = [undef], strLevel = pg_data/pg_stat, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_stat
|
||||
P00 DEBUG: Protocol::Storage::Remote->manifest(): rhParam = [undef], strPathExp = [TEST_PATH]/db-master/db/pg_stat
|
||||
P00 DEBUG: Protocol::Storage::Remote->manifest(): rhParam = [hash], strPathExp = [TEST_PATH]/db-master/db/pg_stat
|
||||
P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], iLevel = 1, oLastManifest = [undef], oStorageDbMaster = [object], rhExclude = [undef], strFilter = [undef], strLevel = pg_data/postgresql.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/postgresql.conf
|
||||
P00 DEBUG: Protocol::Storage::Remote->manifest(): rhParam = [undef], strPathExp = [TEST_PATH]/db-master/db/pg_config/postgresql.conf
|
||||
P00 DEBUG: Protocol::Storage::Remote->manifest(): rhParam = [hash], strPathExp = [TEST_PATH]/db-master/db/pg_config/postgresql.conf
|
||||
P00 WARN: aborted backup [BACKUP-FULL-2] of same type exists, will be cleaned to remove invalid files and resumed
|
||||
P00 DEBUG: Backup::Backup->resumeClean(): oAbortedManifest = [object], oManifest = [object], oStorageRepo = [object], strBackupLabel = [BACKUP-FULL-2]
|
||||
P00 DETAIL: clean resumed backup path: [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]
|
||||
P00 DEBUG: Storage::Local->manifest(): strPathExp = <REPO:BACKUP>/[BACKUP-FULL-2]
|
||||
P00 DEBUG: Storage::Local->manifest(): strFilter = [undef], strPathExp = <REPO:BACKUP>/[BACKUP-FULL-2]
|
||||
P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest
|
||||
P00 DEBUG: Storage::Local->exists=>: bExists = false
|
||||
P00 DEBUG: Storage::Local->openWrite(): bAtomic = <false>, bPathCreate = <false>, lTimestamp = [undef], rhyFilter = [undef], strCipherPass = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest.copy
|
||||
@ -945,17 +945,17 @@ P00 DEBUG: Protocol::Storage::Remote->exists(): strPathExp = [TEST_PATH]/db
|
||||
P00 DEBUG: Protocol::Storage::Remote->exists=>: bExists = false
|
||||
P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], iLevel = <0>, oLastManifest = [undef], oStorageDbMaster = [object], rhExclude = [undef], strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base
|
||||
P00 DEBUG: Protocol::Storage::Remote->manifest(): rhParam = [undef], strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc
|
||||
P00 DEBUG: Protocol::Storage::Remote->manifest(): rhParam = [undef], strPathExp = [TEST_PATH]/db-master/db/base
|
||||
P00 DEBUG: Protocol::Storage::Remote->manifest(): rhParam = [hash], strPathExp = [TEST_PATH]/db-master/db/base
|
||||
P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], iLevel = 1, oLastManifest = [undef], oStorageDbMaster = [object], rhExclude = [undef], strFilter = [undef], strLevel = pg_data/pg_hba.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/pg_hba.conf
|
||||
P00 DEBUG: Protocol::Storage::Remote->manifest(): rhParam = [undef], strPathExp = [TEST_PATH]/db-master/db/pg_config/pg_hba.conf
|
||||
P00 DEBUG: Protocol::Storage::Remote->manifest(): rhParam = [hash], strPathExp = [TEST_PATH]/db-master/db/pg_config/pg_hba.conf
|
||||
P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], iLevel = 1, oLastManifest = [undef], oStorageDbMaster = [object], rhExclude = [undef], strFilter = [undef], strLevel = pg_data/pg_stat, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_stat
|
||||
P00 DEBUG: Protocol::Storage::Remote->manifest(): rhParam = [undef], strPathExp = [TEST_PATH]/db-master/db/pg_stat
|
||||
P00 DEBUG: Protocol::Storage::Remote->manifest(): rhParam = [hash], strPathExp = [TEST_PATH]/db-master/db/pg_stat
|
||||
P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], iLevel = 1, oLastManifest = [undef], oStorageDbMaster = [object], rhExclude = [undef], strFilter = [undef], strLevel = pg_data/postgresql.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/postgresql.conf
|
||||
P00 DEBUG: Protocol::Storage::Remote->manifest(): rhParam = [undef], strPathExp = [TEST_PATH]/db-master/db/pg_config/postgresql.conf
|
||||
P00 DEBUG: Protocol::Storage::Remote->manifest(): rhParam = [hash], strPathExp = [TEST_PATH]/db-master/db/pg_config/postgresql.conf
|
||||
P00 WARN: aborted backup [BACKUP-FULL-2] of same type exists, will be cleaned to remove invalid files and resumed
|
||||
P00 DEBUG: Backup::Backup->resumeClean(): oAbortedManifest = [object], oManifest = [object], oStorageRepo = [object], strBackupLabel = [BACKUP-FULL-2]
|
||||
P00 DETAIL: clean resumed backup path: [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]
|
||||
P00 DEBUG: Storage::Local->manifest(): strPathExp = <REPO:BACKUP>/[BACKUP-FULL-2]
|
||||
P00 DEBUG: Storage::Local->manifest(): strFilter = [undef], strPathExp = <REPO:BACKUP>/[BACKUP-FULL-2]
|
||||
P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest
|
||||
P00 DEBUG: Storage::Local->exists=>: bExists = false
|
||||
P00 DEBUG: Storage::Local->openWrite(): bAtomic = <false>, bPathCreate = <false>, lTimestamp = [undef], rhyFilter = [undef], strCipherPass = [undef], strGroup = [undef], strMode = <0640>, strUser = [undef], xFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]/backup.manifest.copy
|
||||
@ -1096,18 +1096,18 @@ P00 DEBUG: Protocol::Storage::Remote->exists=>: bExists = true
|
||||
P00 WARN: --no-online passed and postmaster.pid exists but --force was passed so backup will continue though it looks like the postmaster is running and the backup will probably not be consistent
|
||||
P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], iLevel = <0>, oLastManifest = [undef], oStorageDbMaster = [object], rhExclude = [undef], strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base
|
||||
P00 DEBUG: Protocol::Storage::Remote->manifest(): rhParam = [undef], strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc
|
||||
P00 DEBUG: Protocol::Storage::Remote->manifest(): rhParam = [undef], strPathExp = [TEST_PATH]/db-master/db/base
|
||||
P00 DEBUG: Protocol::Storage::Remote->manifest(): rhParam = [hash], strPathExp = [TEST_PATH]/db-master/db/base
|
||||
P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], iLevel = 1, oLastManifest = [undef], oStorageDbMaster = [object], rhExclude = [undef], strFilter = [undef], strLevel = pg_data/pg_hba.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/pg_hba.conf
|
||||
P00 DEBUG: Protocol::Storage::Remote->manifest(): rhParam = [undef], strPathExp = [TEST_PATH]/db-master/db/pg_config/pg_hba.conf
|
||||
P00 DEBUG: Protocol::Storage::Remote->manifest(): rhParam = [hash], strPathExp = [TEST_PATH]/db-master/db/pg_config/pg_hba.conf
|
||||
P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], iLevel = 1, oLastManifest = [undef], oStorageDbMaster = [object], rhExclude = [undef], strFilter = [undef], strLevel = pg_data/pg_stat, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_stat
|
||||
P00 DEBUG: Protocol::Storage::Remote->manifest(): rhParam = [undef], strPathExp = [TEST_PATH]/db-master/db/pg_stat
|
||||
P00 DEBUG: Protocol::Storage::Remote->manifest(): rhParam = [hash], strPathExp = [TEST_PATH]/db-master/db/pg_stat
|
||||
P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = false, hDatabaseMap = [undef], hTablespaceMap = [hash], iLevel = 1, oLastManifest = [undef], oStorageDbMaster = [object], rhExclude = [undef], strFilter = [undef], strLevel = pg_data/postgresql.conf, strParentPath = [TEST_PATH]/db-master/db/base, strPath = ../pg_config/postgresql.conf
|
||||
P00 DEBUG: Protocol::Storage::Remote->manifest(): rhParam = [undef], strPathExp = [TEST_PATH]/db-master/db/pg_config/postgresql.conf
|
||||
P00 DEBUG: Protocol::Storage::Remote->manifest(): rhParam = [hash], strPathExp = [TEST_PATH]/db-master/db/pg_config/postgresql.conf
|
||||
P00 WARN: aborted backup [BACKUP-FULL-2] of same type exists, will be cleaned to remove invalid files and resumed
|
||||
P00 TEST: PgBaCkReStTeSt-BACKUP-RESUME-PgBaCkReStTeSt
|
||||
P00 DEBUG: Backup::Backup->resumeClean(): oAbortedManifest = [object], oManifest = [object], oStorageRepo = [object], strBackupLabel = [BACKUP-FULL-2]
|
||||
P00 DETAIL: clean resumed backup path: [TEST_PATH]/backup/repo/backup/db/[BACKUP-FULL-2]
|
||||
P00 DEBUG: Storage::Local->manifest(): strPathExp = <REPO:BACKUP>/[BACKUP-FULL-2]
|
||||
P00 DEBUG: Storage::Local->manifest(): strFilter = [undef], strPathExp = <REPO:BACKUP>/[BACKUP-FULL-2]
|
||||
P00 DEBUG: Backup::Backup->resumeClean: remove file file.tmp
|
||||
P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/PG_VERSION
|
||||
P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = <true>, bRecurse = <false>, xstryPathFileExp = (<REPO:BACKUP>/[BACKUP-FULL-2]/file.tmp, <REPO:BACKUP>/[BACKUP-FULL-2]/pg_data/PG_VERSION)
|
||||
@ -1498,7 +1498,7 @@ P00 DEBUG: Restore->clean(): oManifest = [object]
|
||||
P00 DETAIL: check [TEST_PATH]/db-master/db/base exists
|
||||
P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base
|
||||
P00 DEBUG: Storage::Local->pathExists=>: bExists = true
|
||||
P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base
|
||||
P00 DEBUG: Storage::Local->manifest(): strFilter = [undef], strPathExp = [TEST_PATH]/db-master/db/base
|
||||
P00 DETAIL: check [TEST_PATH]/db-master/db/pg_config exists
|
||||
P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_config
|
||||
P00 DEBUG: Storage::Local->pathExists=>: bExists = true
|
||||
@ -1507,7 +1507,7 @@ P00 DEBUG: Storage::Local->exists=>: bExists = true
|
||||
P00 DETAIL: check [TEST_PATH]/db-master/db/pg_stat exists
|
||||
P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_stat
|
||||
P00 DEBUG: Storage::Local->pathExists=>: bExists = true
|
||||
P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_stat
|
||||
P00 DEBUG: Storage::Local->manifest(): strFilter = [undef], strPathExp = [TEST_PATH]/db-master/db/pg_stat
|
||||
P00 DETAIL: check [TEST_PATH]/db-master/db/pg_config exists
|
||||
P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_config
|
||||
P00 DEBUG: Storage::Local->pathExists=>: bExists = true
|
||||
@ -1516,19 +1516,19 @@ P00 DEBUG: Storage::Local->exists=>: bExists = true
|
||||
P00 INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/pg_config
|
||||
P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_config
|
||||
P00 DEBUG: Storage::Local->pathExists=>: bExists = true
|
||||
P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_config
|
||||
P00 DEBUG: Storage::Local->manifest(): strFilter = [undef], strPathExp = [TEST_PATH]/db-master/db/pg_config
|
||||
P00 INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/pg_stat
|
||||
P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_stat
|
||||
P00 DEBUG: Storage::Local->pathExists=>: bExists = true
|
||||
P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_stat
|
||||
P00 DEBUG: Storage::Local->manifest(): strFilter = [undef], strPathExp = [TEST_PATH]/db-master/db/pg_stat
|
||||
P00 INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/pg_config
|
||||
P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/pg_config
|
||||
P00 DEBUG: Storage::Local->pathExists=>: bExists = true
|
||||
P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/pg_config
|
||||
P00 DEBUG: Storage::Local->manifest(): strFilter = [undef], strPathExp = [TEST_PATH]/db-master/db/pg_config
|
||||
P00 INFO: remove invalid files/paths/links from [TEST_PATH]/db-master/db/base
|
||||
P00 DEBUG: Storage::Local->pathExists(): strPathExp = [TEST_PATH]/db-master/db/base
|
||||
P00 DEBUG: Storage::Local->pathExists=>: bExists = true
|
||||
P00 DEBUG: Storage::Local->manifest(): strPathExp = [TEST_PATH]/db-master/db/base
|
||||
P00 DEBUG: Storage::Local->manifest(): strFilter = [undef], strPathExp = [TEST_PATH]/db-master/db/base
|
||||
P00 DETAIL: remove file [TEST_PATH]/db-master/db/base/recovery.done
|
||||
P00 DEBUG: Storage::Local->remove(): bIgnoreMissing = <true>, bRecurse = <false>, xstryPathFileExp = [TEST_PATH]/db-master/db/base/recovery.done
|
||||
P00 DEBUG: Storage::Local->remove=>: bRemoved = true
|
||||
@ -1994,9 +1994,9 @@ P00 WARN: incr backup cannot alter 'checksum-page' option to 'false', reset to
|
||||
P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = [undef], hDatabaseMap = [undef], hTablespaceMap = [undef], iLevel = <0>, oLastManifest = [object], oStorageDbMaster = [object], rhExclude = [undef], strFilter = [undef], strLevel = [undef], strParentPath = [undef], strPath = [TEST_PATH]/db-master/db/base
|
||||
P00 DEBUG: Protocol::Storage::Remote->manifest(): rhParam = [undef], strPathExp = [TEST_PATH]/db-master/db/base/pg_tblspc
|
||||
P00 DEBUG: Manifest->build: found tablespace 1 in offline mode
|
||||
P00 DEBUG: Protocol::Storage::Remote->manifest(): rhParam = [undef], strPathExp = [TEST_PATH]/db-master/db/base
|
||||
P00 DEBUG: Protocol::Storage::Remote->manifest(): rhParam = [hash], strPathExp = [TEST_PATH]/db-master/db/base
|
||||
P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], iLevel = 1, oLastManifest = [undef], oStorageDbMaster = [object], rhExclude = [undef], strFilter = [TS_PATH-1], strLevel = pg_tblspc/1, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts1
|
||||
P00 DEBUG: Protocol::Storage::Remote->manifest(): rhParam = [undef], strPathExp = [TEST_PATH]/db-master/db/tablespace/ts1
|
||||
P00 DEBUG: Protocol::Storage::Remote->manifest(): rhParam = [hash], strPathExp = [TEST_PATH]/db-master/db/tablespace/ts1
|
||||
P00 DEBUG: Backup::Backup->process: create backup path [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1]
|
||||
P00 DEBUG: Storage::Local->pathCreate(): bCreateParent = <false>, bIgnoreExists = <false>, strMode = <0750>, strPathExp = <REPO:BACKUP>/[BACKUP-INCR-1]
|
||||
P00 DEBUG: Storage::Local->exists(): strFileExp = [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-1]/backup.manifest
|
||||
@ -2422,18 +2422,18 @@ P00 DEBUG: Protocol::Storage::Remote->manifest(): rhParam = [undef], strPat
|
||||
P00 DEBUG: Manifest->build: found tablespace 1 in offline mode
|
||||
P00 DEBUG: Manifest->build: found tablespace 11 in offline mode
|
||||
P00 DEBUG: Manifest->build: found tablespace 2 in offline mode
|
||||
P00 DEBUG: Protocol::Storage::Remote->manifest(): rhParam = [undef], strPathExp = [TEST_PATH]/db-master/db/base
|
||||
P00 DEBUG: Protocol::Storage::Remote->manifest(): rhParam = [hash], strPathExp = [TEST_PATH]/db-master/db/base
|
||||
P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], iLevel = 1, oLastManifest = [undef], oStorageDbMaster = [object], rhExclude = [undef], strFilter = [TS_PATH-1], strLevel = pg_tblspc/1, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts1
|
||||
P00 DEBUG: Protocol::Storage::Remote->manifest(): rhParam = [undef], strPathExp = [TEST_PATH]/db-master/db/tablespace/ts1
|
||||
P00 DEBUG: Protocol::Storage::Remote->manifest(): rhParam = [hash], strPathExp = [TEST_PATH]/db-master/db/tablespace/ts1
|
||||
P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], iLevel = 1, oLastManifest = [undef], oStorageDbMaster = [object], rhExclude = [undef], strFilter = [TS_PATH-1], strLevel = pg_tblspc/11, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts11
|
||||
P00 DEBUG: Protocol::Storage::Remote->manifest(): rhParam = [undef], strPathExp = [TEST_PATH]/db-master/db/tablespace/ts11
|
||||
P00 DEBUG: Protocol::Storage::Remote->manifest(): rhParam = [hash], strPathExp = [TEST_PATH]/db-master/db/tablespace/ts11
|
||||
P00 DEBUG: Manifest->build(): bOnline = false, bTablespace = true, hDatabaseMap = [undef], hTablespaceMap = [hash], iLevel = 1, oLastManifest = [undef], oStorageDbMaster = [object], rhExclude = [undef], strFilter = [TS_PATH-1], strLevel = pg_tblspc/2, strParentPath = [TEST_PATH]/db-master/db/base/pg_tblspc, strPath = [TEST_PATH]/db-master/db/tablespace/ts2
|
||||
P00 DEBUG: Protocol::Storage::Remote->manifest(): rhParam = [undef], strPathExp = [TEST_PATH]/db-master/db/tablespace/ts2
|
||||
P00 DEBUG: Protocol::Storage::Remote->manifest(): rhParam = [hash], strPathExp = [TEST_PATH]/db-master/db/tablespace/ts2
|
||||
P00 WARN: aborted backup [BACKUP-INCR-2] of same type exists, will be cleaned to remove invalid files and resumed
|
||||
P00 TEST: PgBaCkReStTeSt-BACKUP-RESUME-PgBaCkReStTeSt
|
||||
P00 DEBUG: Backup::Backup->resumeClean(): oAbortedManifest = [object], oManifest = [object], oStorageRepo = [object], strBackupLabel = [BACKUP-INCR-2]
|
||||
P00 DETAIL: clean resumed backup path: [TEST_PATH]/backup/repo/backup/db/[BACKUP-INCR-2]
|
||||
P00 DEBUG: Storage::Local->manifest(): strPathExp = <REPO:BACKUP>/[BACKUP-INCR-2]
|
||||
P00 DEBUG: Storage::Local->manifest(): strFilter = [undef], strPathExp = <REPO:BACKUP>/[BACKUP-INCR-2]
|
||||
P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/changesize.txt
|
||||
P00 DEBUG: Backup::Backup->resumeClean: remove file pg_data/zerosize.txt
|
||||
P00 DEBUG: Backup::Backup->resumeClean: remove file pg_tblspc/1/[TS_PATH-1]/16384/tablespace1.txt
|
||||
|
@ -297,15 +297,15 @@ sub run
|
||||
$oManifest->build(storageDb(), $self->{strDbPath}, undef, true);
|
||||
$self->testResult(sub {$self->manifestCompare($oManifestExpected, $oManifest)}, "", 'master false');
|
||||
|
||||
# Create a pg_config path and file link
|
||||
my $strConfFile = '/pg_config/postgresql.conf';
|
||||
# Create pg_config path and postgresql.conf file
|
||||
my $strConfFile = '/postgresql.conf';
|
||||
my $strConfContent = "listen_addresses = *\n";
|
||||
storageDb()->pathCreate('pg_config');
|
||||
storageDb()->put(storageDb()->openWrite($self->{strDbPath} . $strConfFile,
|
||||
storageTest()->pathCreate('pg_config');
|
||||
storageTest()->put(storageTest()->openWrite($self->testPath() . '/pg_config' . $strConfFile,
|
||||
{strMode => MODE_0600, strUser => TEST_USER, strGroup => TEST_GROUP, lTimestamp => $lTime}), $strConfContent);
|
||||
|
||||
# link db/pg_config/postgresql.conf.link -> ./postgresql.conf
|
||||
testLinkCreate($self->{strDbPath} . $strConfFile . '.link', './postgresql.conf');
|
||||
# link db/postgresql.conf -> pg_config/postgresql.conf
|
||||
testLinkCreate($self->{strDbPath} . $strConfFile, $self->testPath() . '/pg_config' . $strConfFile);
|
||||
|
||||
# INVESTIGATE: on the command line, these links appear to be fine but in the code, a debug line prior to the recursive call to build() produces:
|
||||
# STRPATH BEFORE BUILD: /home/ubuntu/test/test-0/db/base, STRLEVEL PASSED: $VAR1 = 'pg_data/base/pg_config_bad';
|
||||
@ -340,27 +340,33 @@ sub run
|
||||
|
||||
# Update expected manifest
|
||||
$oManifestExpected->set(MANIFEST_SECTION_TARGET_PATH, MANIFEST_PATH_BASE, MANIFEST_SUBKEY_MODE, MODE_0700);
|
||||
$oManifestExpected->set(MANIFEST_SECTION_TARGET_PATH, MANIFEST_TARGET_PGDATA . '/pg_config', undef, $hDefault);
|
||||
|
||||
# Section backup:target
|
||||
$oManifestExpected->set(MANIFEST_SECTION_BACKUP_TARGET, MANIFEST_TARGET_PGDATA . $strConfFile . '.link',
|
||||
MANIFEST_SUBKEY_FILE, 'postgresql.conf');
|
||||
$oManifestExpected->set(MANIFEST_SECTION_BACKUP_TARGET, MANIFEST_TARGET_PGDATA . $strConfFile . '.link',
|
||||
MANIFEST_SUBKEY_PATH, '.');
|
||||
$oManifestExpected->set(MANIFEST_SECTION_BACKUP_TARGET, MANIFEST_TARGET_PGDATA . $strConfFile . '.link',
|
||||
MANIFEST_SUBKEY_TYPE, MANIFEST_VALUE_LINK);
|
||||
$oManifestExpected->set(
|
||||
MANIFEST_SECTION_BACKUP_TARGET, MANIFEST_TARGET_PGDATA . $strConfFile, MANIFEST_SUBKEY_FILE, 'postgresql.conf');
|
||||
$oManifestExpected->set(
|
||||
MANIFEST_SECTION_BACKUP_TARGET, MANIFEST_TARGET_PGDATA . $strConfFile, MANIFEST_SUBKEY_PATH,
|
||||
$self->testPath() . '/pg_config');
|
||||
$oManifestExpected->set(
|
||||
MANIFEST_SECTION_BACKUP_TARGET, MANIFEST_TARGET_PGDATA . $strConfFile, MANIFEST_SUBKEY_TYPE, MANIFEST_VALUE_LINK);
|
||||
# Section target:file
|
||||
$oManifestExpected->set(MANIFEST_SECTION_TARGET_FILE, MANIFEST_TARGET_PGDATA . $strConfFile,
|
||||
MANIFEST_SUBKEY_SIZE, length($strConfContent));
|
||||
$oManifestExpected->set(MANIFEST_SECTION_TARGET_FILE, MANIFEST_TARGET_PGDATA . $strConfFile,
|
||||
MANIFEST_SUBKEY_TIMESTAMP, $lTime);
|
||||
$oManifestExpected->set(
|
||||
MANIFEST_SECTION_TARGET_FILE, MANIFEST_TARGET_PGDATA . $strConfFile, MANIFEST_SUBKEY_SIZE,
|
||||
length($strConfContent));
|
||||
$oManifestExpected->set(
|
||||
MANIFEST_SECTION_TARGET_FILE, MANIFEST_TARGET_PGDATA . '/postgresql.conf', MANIFEST_SUBKEY_TIMESTAMP, $lTime);
|
||||
# Section target:link
|
||||
$oManifestExpected->set(MANIFEST_SECTION_TARGET_LINK, MANIFEST_TARGET_PGDATA . $strConfFile . '.link',
|
||||
MANIFEST_SUBKEY_DESTINATION, './postgresql.conf');
|
||||
$oManifestExpected->set(MANIFEST_SECTION_TARGET_LINK, MANIFEST_TARGET_PGDATA . '/postgresql.conf',
|
||||
MANIFEST_SUBKEY_DESTINATION, $self->testPath() . '/pg_config' . $strConfFile);
|
||||
# Section target:link:default
|
||||
$oManifestExpected->set(MANIFEST_SECTION_TARGET_LINK . ":default", MANIFEST_SUBKEY_GROUP, undef, TEST_GROUP);
|
||||
$oManifestExpected->set(MANIFEST_SECTION_TARGET_LINK . ":default", MANIFEST_SUBKEY_USER, undef, TEST_USER);
|
||||
|
||||
# Create an unreadable file and path in pg_config to test that we are only reading the files we need to
|
||||
executeTest(
|
||||
"sudo touch " . $self->testPath() . "/pg_config/do_not_read.txt" .
|
||||
" && sudo mkdir -m 700 " . $self->testPath() . "/pg_config/do_not_read");
|
||||
|
||||
$oManifest = new pgBackRest::Manifest(
|
||||
$strBackupManifestFile,
|
||||
{bLoad => false, strDbVersion => PG_VERSION_94, iDbCatalogVersion => $self->dbCatalogVersion(PG_VERSION_94)});
|
||||
@ -377,7 +383,7 @@ sub run
|
||||
$self->testException(
|
||||
sub {$oManifest->build(storageDb(), $self->{strDbPath}, undef, true)}, ERROR_FORMAT,
|
||||
'recursion in manifest build exceeds depth of 16: pg_data/pgdata/pgdata/pgdata/pgdata/pgdata/pgdata/pgdata/pgdata/' .
|
||||
"pgdata/pgdata/pgdata/pgdata/pgdata/pgdata/pgdata/pg_config/postgresql.conf.link\n" .
|
||||
"pgdata/pgdata/pgdata/pgdata/pgdata/pgdata/pgdata/pgdata\n" .
|
||||
'HINT: is there a link loop in $PGDATA?');
|
||||
|
||||
testFileRemove($self->{strDbPath} . '/pgdata');
|
||||
@ -829,6 +835,9 @@ sub run
|
||||
my $strTblspcDir = $strTblspcVersion . '/11';
|
||||
storageTest()->pathCreate("$strTablespacePath/$strTblspcDir", {bCreateParent => true});
|
||||
|
||||
# Create a file and path that will error if read
|
||||
executeTest("sudo touch ${strTablespacePath}/do_not_read.txt && sudo mkdir -m 700 ${strTablespacePath}/do_not_read");
|
||||
|
||||
# Create unlogged and temp files
|
||||
storageDb()->put(storageDb()->openWrite($strTablespacePath . '/' . $strTblspcDir . $strUnlogFileOid . '_init',
|
||||
{strMode => MODE_0600, strUser => TEST_USER, strGroup => TEST_GROUP, lTimestamp => $lTime}), '');
|
||||
@ -915,6 +924,9 @@ sub run
|
||||
$self->testResult(sub {$self->manifestCompare($oManifestExpected, $oManifest)}, "",
|
||||
'offline passing tablespace map and database map');
|
||||
|
||||
# Remove the unreadable file and path because they will not work with tests for PG < 9.0
|
||||
executeTest("sudo rm ${strTablespacePath}/do_not_read.txt && sudo rmdir ${strTablespacePath}/do_not_read");
|
||||
|
||||
# Exclusions
|
||||
#---------------------------------------------------------------------------------------------------------------------------
|
||||
# Excluded links
|
||||
|
Loading…
Reference in New Issue
Block a user