mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-01-12 18:34:36 +08:00
Exclude pg_internal.init from BASE_BACKUP
Add docs to explain this for other backup mechanisms Author: David Steele <david@pgmasters.net> Reviewed-by: Petr Jelinek <petr.jelinek@2ndQuadrant.com> et al
This commit is contained in:
parent
d0c80c17f1
commit
98267ee83e
@ -1129,6 +1129,12 @@ SELECT pg_stop_backup();
|
|||||||
the directories will be recreated as needed.
|
the directories will be recreated as needed.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
<filename>pg_internal.init</filename> files can be omitted from the
|
||||||
|
backup whenever a file of that name is found. These files contain
|
||||||
|
relation cache data that is always rebuilt when recovering.
|
||||||
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
The backup label
|
The backup label
|
||||||
file includes the label string you gave to <function>pg_start_backup</function>,
|
file includes the label string you gave to <function>pg_start_backup</function>,
|
||||||
|
@ -2499,6 +2499,11 @@ The commands accepted in walsender mode are:
|
|||||||
<filename>postmaster.opts</filename>
|
<filename>postmaster.opts</filename>
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
<filename>pg_internal.init (found in multiple directories)</>
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Various temporary files and directories created during the operation
|
Various temporary files and directories created during the operation
|
||||||
|
@ -36,6 +36,7 @@
|
|||||||
#include "utils/builtins.h"
|
#include "utils/builtins.h"
|
||||||
#include "utils/elog.h"
|
#include "utils/elog.h"
|
||||||
#include "utils/ps_status.h"
|
#include "utils/ps_status.h"
|
||||||
|
#include "utils/relcache.h"
|
||||||
#include "utils/timestamp.h"
|
#include "utils/timestamp.h"
|
||||||
|
|
||||||
|
|
||||||
@ -151,6 +152,9 @@ static const char *excludeFiles[] =
|
|||||||
/* Skip current log file temporary file */
|
/* Skip current log file temporary file */
|
||||||
LOG_METAINFO_DATAFILE_TMP,
|
LOG_METAINFO_DATAFILE_TMP,
|
||||||
|
|
||||||
|
/* Skip relation cache because it is rebuilt on startup */
|
||||||
|
RELCACHE_INIT_FILENAME,
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If there's a backup_label or tablespace_map file, it belongs to a
|
* If there's a backup_label or tablespace_map file, it belongs to a
|
||||||
* backup started by the user with pg_start_backup(). It is *not* correct
|
* backup started by the user with pg_start_backup(). It is *not* correct
|
||||||
|
5
src/backend/utils/cache/relcache.c
vendored
5
src/backend/utils/cache/relcache.c
vendored
@ -87,11 +87,6 @@
|
|||||||
#include "utils/tqual.h"
|
#include "utils/tqual.h"
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* name of relcache init file(s), used to speed up backend startup
|
|
||||||
*/
|
|
||||||
#define RELCACHE_INIT_FILENAME "pg_internal.init"
|
|
||||||
|
|
||||||
#define RELCACHE_INIT_FILEMAGIC 0x573266 /* version ID value */
|
#define RELCACHE_INIT_FILEMAGIC 0x573266 /* version ID value */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -4,7 +4,7 @@ use Cwd;
|
|||||||
use Config;
|
use Config;
|
||||||
use PostgresNode;
|
use PostgresNode;
|
||||||
use TestLib;
|
use TestLib;
|
||||||
use Test::More tests => 78;
|
use Test::More tests => 79;
|
||||||
|
|
||||||
program_help_ok('pg_basebackup');
|
program_help_ok('pg_basebackup');
|
||||||
program_version_ok('pg_basebackup');
|
program_version_ok('pg_basebackup');
|
||||||
@ -61,6 +61,11 @@ foreach my $filename (
|
|||||||
close $file;
|
close $file;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Connect to a database to create global/pg_internal.init. If this is removed
|
||||||
|
# the test to ensure global/pg_internal.init is not copied will return a false
|
||||||
|
# positive.
|
||||||
|
$node->safe_psql('postgres', 'SELECT 1;');
|
||||||
|
|
||||||
$node->command_ok([ 'pg_basebackup', '-D', "$tempdir/backup", '-X', 'none' ],
|
$node->command_ok([ 'pg_basebackup', '-D', "$tempdir/backup", '-X', 'none' ],
|
||||||
'pg_basebackup runs');
|
'pg_basebackup runs');
|
||||||
ok(-f "$tempdir/backup/PG_VERSION", 'backup was created');
|
ok(-f "$tempdir/backup/PG_VERSION", 'backup was created');
|
||||||
@ -84,7 +89,8 @@ foreach my $dirname (
|
|||||||
|
|
||||||
# These files should not be copied.
|
# These files should not be copied.
|
||||||
foreach my $filename (
|
foreach my $filename (
|
||||||
qw(postgresql.auto.conf.tmp postmaster.opts postmaster.pid tablespace_map current_logfiles.tmp)
|
qw(postgresql.auto.conf.tmp postmaster.opts postmaster.pid tablespace_map current_logfiles.tmp
|
||||||
|
global/pg_internal.init)
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
ok(!-f "$tempdir/backup/$filename", "$filename not copied");
|
ok(!-f "$tempdir/backup/$filename", "$filename not copied");
|
||||||
|
@ -18,6 +18,11 @@
|
|||||||
#include "nodes/bitmapset.h"
|
#include "nodes/bitmapset.h"
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Name of relcache init file(s), used to speed up backend startup
|
||||||
|
*/
|
||||||
|
#define RELCACHE_INIT_FILENAME "pg_internal.init"
|
||||||
|
|
||||||
typedef struct RelationData *Relation;
|
typedef struct RelationData *Relation;
|
||||||
|
|
||||||
/* ----------------
|
/* ----------------
|
||||||
|
Loading…
Reference in New Issue
Block a user