Fix numerous typos in incremental backup commits.
Apparently, spell check would have been a really good idea. Alexander Lakhin, with a few additions as per an off-list report from Andres Freund. Discussion: http://postgr.es/m/f08f7c60-1ad3-0b57-d580-54b11f07cddf@gmail.com
This commit is contained in:
parent
ba08c10fcd
commit
49f2194ed5
|
@ -213,7 +213,7 @@ PostgreSQL documentation
|
||||||
|
|
||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term><option>-i <replaceable class="parameter">old_manifest_file</replaceable></option></term>
|
<term><option>-i <replaceable class="parameter">old_manifest_file</replaceable></option></term>
|
||||||
<term><option>--incremental=<replaceable class="parameter">old_meanifest_file</replaceable></option></term>
|
<term><option>--incremental=<replaceable class="parameter">old_manifest_file</replaceable></option></term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Performs an <link linkend="backup-incremental-backup">incremental
|
Performs an <link linkend="backup-incremental-backup">incremental
|
||||||
|
|
|
@ -83,7 +83,7 @@ PostgreSQL documentation
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
The <option>-n</option>/<option>--dry-run</option> option instructs
|
The <option>-n</option>/<option>--dry-run</option> option instructs
|
||||||
<command>pg_cominebackup</command> to figure out what would be done
|
<command>pg_combinebackup</command> to figure out what would be done
|
||||||
without actually creating the target directory or any output files.
|
without actually creating the target directory or any output files.
|
||||||
It is particularly useful in combination with <option>--debug</option>.
|
It is particularly useful in combination with <option>--debug</option>.
|
||||||
</para>
|
</para>
|
||||||
|
|
|
@ -158,7 +158,7 @@ CreateIncrementalBackupInfo(MemoryContext mcxt)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Before taking an incremental backup, the caller must supply the backup
|
* Before taking an incremental backup, the caller must supply the backup
|
||||||
* manifest from a prior backup. Each chunk of manifest data recieved
|
* manifest from a prior backup. Each chunk of manifest data received
|
||||||
* from the client should be passed to this function.
|
* from the client should be passed to this function.
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
|
@ -462,7 +462,7 @@ PrepareForIncrementalBackup(IncrementalBackupInfo *ib,
|
||||||
++deadcycles;
|
++deadcycles;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If we've managed to wait for an entire minute withot the WAL
|
* If we've managed to wait for an entire minute without the WAL
|
||||||
* summarizer absorbing a single WAL record, error out; probably
|
* summarizer absorbing a single WAL record, error out; probably
|
||||||
* something is wrong.
|
* something is wrong.
|
||||||
*
|
*
|
||||||
|
@ -473,7 +473,7 @@ PrepareForIncrementalBackup(IncrementalBackupInfo *ib,
|
||||||
* likely to catch a reasonable number of the things that can go wrong
|
* likely to catch a reasonable number of the things that can go wrong
|
||||||
* in practice (e.g. the summarizer process is completely hung, say
|
* in practice (e.g. the summarizer process is completely hung, say
|
||||||
* because somebody hooked up a debugger to it or something) without
|
* because somebody hooked up a debugger to it or something) without
|
||||||
* giving up too quickly when the sytem is just slow.
|
* giving up too quickly when the system is just slow.
|
||||||
*/
|
*/
|
||||||
if (deadcycles >= 6)
|
if (deadcycles >= 6)
|
||||||
ereport(ERROR,
|
ereport(ERROR,
|
||||||
|
|
|
@ -92,7 +92,7 @@ pg_wal_summary_contents(PG_FUNCTION_ARGS)
|
||||||
errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
errcode(ERRCODE_INVALID_PARAMETER_VALUE),
|
||||||
errmsg("invalid timeline %lld", (long long) raw_tli));
|
errmsg("invalid timeline %lld", (long long) raw_tli));
|
||||||
|
|
||||||
/* Prepare to read the specified WAL summry file. */
|
/* Prepare to read the specified WAL summary file. */
|
||||||
ws.tli = (TimeLineID) raw_tli;
|
ws.tli = (TimeLineID) raw_tli;
|
||||||
ws.start_lsn = PG_GETARG_LSN(1);
|
ws.start_lsn = PG_GETARG_LSN(1);
|
||||||
ws.end_lsn = PG_GETARG_LSN(2);
|
ws.end_lsn = PG_GETARG_LSN(2);
|
||||||
|
@ -143,7 +143,7 @@ pg_wal_summary_contents(PG_FUNCTION_ARGS)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If the limit block is not InvalidBlockNumber, emit an exta row
|
* If the limit block is not InvalidBlockNumber, emit an extra row
|
||||||
* with that block number and limit_block = true.
|
* with that block number and limit_block = true.
|
||||||
*
|
*
|
||||||
* There is no point in doing this when the limit_block is
|
* There is no point in doing this when the limit_block is
|
||||||
|
|
|
@ -87,7 +87,7 @@ typedef struct
|
||||||
XLogRecPtr pending_lsn;
|
XLogRecPtr pending_lsn;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This field handles its own synchronizaton.
|
* This field handles its own synchronization.
|
||||||
*/
|
*/
|
||||||
ConditionVariable summary_file_cv;
|
ConditionVariable summary_file_cv;
|
||||||
} WalSummarizerData;
|
} WalSummarizerData;
|
||||||
|
@ -117,7 +117,7 @@ static long sleep_quanta = 1;
|
||||||
/*
|
/*
|
||||||
* The sleep time will always be a multiple of 200ms and will not exceed
|
* The sleep time will always be a multiple of 200ms and will not exceed
|
||||||
* thirty seconds (150 * 200 = 30 * 1000). Note that the timeout here needs
|
* thirty seconds (150 * 200 = 30 * 1000). Note that the timeout here needs
|
||||||
* to be substntially less than the maximum amount of time for which an
|
* to be substantially less than the maximum amount of time for which an
|
||||||
* incremental backup will wait for this process to catch up. Otherwise, an
|
* incremental backup will wait for this process to catch up. Otherwise, an
|
||||||
* incremental backup might time out on an idle system just because we sleep
|
* incremental backup might time out on an idle system just because we sleep
|
||||||
* for too long.
|
* for too long.
|
||||||
|
@ -212,7 +212,7 @@ WalSummarizerMain(void)
|
||||||
/*
|
/*
|
||||||
* Within this function, 'current_lsn' and 'current_tli' refer to the
|
* Within this function, 'current_lsn' and 'current_tli' refer to the
|
||||||
* point from which the next WAL summary file should start. 'exact' is
|
* point from which the next WAL summary file should start. 'exact' is
|
||||||
* true if 'current_lsn' is known to be the start of a WAL recod or WAL
|
* true if 'current_lsn' is known to be the start of a WAL record or WAL
|
||||||
* segment, and false if it might be in the middle of a record someplace.
|
* segment, and false if it might be in the middle of a record someplace.
|
||||||
*
|
*
|
||||||
* 'switch_lsn' and 'switch_tli', if set, are the LSN at which we need to
|
* 'switch_lsn' and 'switch_tli', if set, are the LSN at which we need to
|
||||||
|
@ -297,7 +297,7 @@ WalSummarizerMain(void)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Sleep for 10 seconds before attempting to resume operations in
|
* Sleep for 10 seconds before attempting to resume operations in
|
||||||
* order to avoid excessing logging.
|
* order to avoid excessive logging.
|
||||||
*
|
*
|
||||||
* Many of the likely error conditions are things that will repeat
|
* Many of the likely error conditions are things that will repeat
|
||||||
* every time. For example, if the WAL can't be read or the summary
|
* every time. For example, if the WAL can't be read or the summary
|
||||||
|
@ -449,7 +449,7 @@ GetOldestUnsummarizedLSN(TimeLineID *tli, bool *lsn_is_exact,
|
||||||
return InvalidXLogRecPtr;
|
return InvalidXLogRecPtr;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Unless we need to reset the pending_lsn, we initally acquire the lock
|
* Unless we need to reset the pending_lsn, we initially acquire the lock
|
||||||
* in shared mode and try to fetch the required information. If we acquire
|
* in shared mode and try to fetch the required information. If we acquire
|
||||||
* in shared mode and find that the data structure hasn't been
|
* in shared mode and find that the data structure hasn't been
|
||||||
* initialized, we reacquire the lock in exclusive mode so that we can
|
* initialized, we reacquire the lock in exclusive mode so that we can
|
||||||
|
@ -699,7 +699,7 @@ HandleWalSummarizerInterrupts(void)
|
||||||
*
|
*
|
||||||
* 'start_lsn' is the point at which we should start summarizing. If this
|
* 'start_lsn' is the point at which we should start summarizing. If this
|
||||||
* value comes from the end LSN of the previous record as returned by the
|
* value comes from the end LSN of the previous record as returned by the
|
||||||
* xlograder machinery, 'exact' should be true; otherwise, 'exact' should
|
* xlogreader machinery, 'exact' should be true; otherwise, 'exact' should
|
||||||
* be false, and this function will search forward for the start of a valid
|
* be false, and this function will search forward for the start of a valid
|
||||||
* WAL record.
|
* WAL record.
|
||||||
*
|
*
|
||||||
|
@ -872,7 +872,7 @@ SummarizeWAL(TimeLineID tli, XLogRecPtr start_lsn, bool exact,
|
||||||
xlogreader->ReadRecPtr >= switch_lsn)
|
xlogreader->ReadRecPtr >= switch_lsn)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* Woops! We've read a record that *starts* after the switch LSN,
|
* Whoops! We've read a record that *starts* after the switch LSN,
|
||||||
* contrary to our goal of reading only until we hit the first
|
* contrary to our goal of reading only until we hit the first
|
||||||
* record that ends at or after the switch LSN. Pretend we didn't
|
* record that ends at or after the switch LSN. Pretend we didn't
|
||||||
* read it after all by bailing out of this loop right here,
|
* read it after all by bailing out of this loop right here,
|
||||||
|
@ -1061,7 +1061,7 @@ SummarizeSmgrRecord(XLogReaderState *xlogreader, BlockRefTable *brtab)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Special handling for WAL recods with RM_XACT_ID.
|
* Special handling for WAL records with RM_XACT_ID.
|
||||||
*/
|
*/
|
||||||
static void
|
static void
|
||||||
SummarizeXactRecord(XLogReaderState *xlogreader, BlockRefTable *brtab)
|
SummarizeXactRecord(XLogReaderState *xlogreader, BlockRefTable *brtab)
|
||||||
|
@ -1116,7 +1116,7 @@ SummarizeXactRecord(XLogReaderState *xlogreader, BlockRefTable *brtab)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Special handling for WAL recods with RM_XLOG_ID.
|
* Special handling for WAL records with RM_XLOG_ID.
|
||||||
*/
|
*/
|
||||||
static bool
|
static bool
|
||||||
SummarizeXlogRecord(XLogReaderState *xlogreader)
|
SummarizeXlogRecord(XLogReaderState *xlogreader)
|
||||||
|
@ -1294,8 +1294,7 @@ summarizer_wait_for_wal(void)
|
||||||
* sleep time to the minimum, but we don't want a handful of extra WAL
|
* sleep time to the minimum, but we don't want a handful of extra WAL
|
||||||
* records to provoke a strong reaction. We choose to reduce the sleep
|
* records to provoke a strong reaction. We choose to reduce the sleep
|
||||||
* time by 1 quantum for each page read beyond the first, which is a
|
* time by 1 quantum for each page read beyond the first, which is a
|
||||||
* fairly arbitrary way of trying to be reactive without
|
* fairly arbitrary way of trying to be reactive without overreacting.
|
||||||
* overrreacting.
|
|
||||||
*/
|
*/
|
||||||
if (pages_read_since_last_sleep > sleep_quanta - 1)
|
if (pages_read_since_last_sleep > sleep_quanta - 1)
|
||||||
sleep_quanta = 1;
|
sleep_quanta = 1;
|
||||||
|
|
|
@ -706,7 +706,7 @@ UploadManifest(void)
|
||||||
pq_endmessage_reuse(&buf);
|
pq_endmessage_reuse(&buf);
|
||||||
pq_flush();
|
pq_flush();
|
||||||
|
|
||||||
/* Recieve packets from client until done. */
|
/* Receive packets from client until done. */
|
||||||
while (HandleUploadManifestPacket(&buf, &offset, ib))
|
while (HandleUploadManifestPacket(&buf, &offset, ib))
|
||||||
;
|
;
|
||||||
|
|
||||||
|
@ -719,7 +719,7 @@ UploadManifest(void)
|
||||||
*
|
*
|
||||||
* We assume that MemoryContextDelete and MemoryContextSetParent won't
|
* We assume that MemoryContextDelete and MemoryContextSetParent won't
|
||||||
* fail, and thus we shouldn't end up bailing out of here in such a way as
|
* fail, and thus we shouldn't end up bailing out of here in such a way as
|
||||||
* to leave dangling pointrs.
|
* to leave dangling pointers.
|
||||||
*/
|
*/
|
||||||
if (uploaded_manifest_mcxt != NULL)
|
if (uploaded_manifest_mcxt != NULL)
|
||||||
MemoryContextDelete(uploaded_manifest_mcxt);
|
MemoryContextDelete(uploaded_manifest_mcxt);
|
||||||
|
|
|
@ -454,7 +454,7 @@ check_backup_label_files(int n_backups, char **backup_dirs)
|
||||||
* The exact size limit that we impose here doesn't really matter --
|
* The exact size limit that we impose here doesn't really matter --
|
||||||
* most of what's supposed to be in the file is fixed size and quite
|
* most of what's supposed to be in the file is fixed size and quite
|
||||||
* short. However, the length of the backup_label is limited (at least
|
* short. However, the length of the backup_label is limited (at least
|
||||||
* by some parts of the code) to MAXGPATH, so include that value in
|
* by some parts of the code) to MAXPGPATH, so include that value in
|
||||||
* the maximum length that we tolerate.
|
* the maximum length that we tolerate.
|
||||||
*/
|
*/
|
||||||
slurp_file(fd, pathbuf, buf, 10000 + MAXPGPATH);
|
slurp_file(fd, pathbuf, buf, 10000 + MAXPGPATH);
|
||||||
|
@ -1192,7 +1192,7 @@ scan_for_existing_tablespaces(char *pathname, cb_options *opt)
|
||||||
if (!is_absolute_path(link_target))
|
if (!is_absolute_path(link_target))
|
||||||
pg_fatal("symbolic link \"%s\" is relative", tblspcdir);
|
pg_fatal("symbolic link \"%s\" is relative", tblspcdir);
|
||||||
|
|
||||||
/* Caonicalize the link target. */
|
/* Canonicalize the link target. */
|
||||||
canonicalize_path(link_target);
|
canonicalize_path(link_target);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -1222,7 +1222,7 @@ scan_for_existing_tablespaces(char *pathname, cb_options *opt)
|
||||||
* we just record the paths within the data directories.
|
* we just record the paths within the data directories.
|
||||||
*/
|
*/
|
||||||
snprintf(ts->old_dir, MAXPGPATH, "%s/%s", pg_tblspc, de->d_name);
|
snprintf(ts->old_dir, MAXPGPATH, "%s/%s", pg_tblspc, de->d_name);
|
||||||
snprintf(ts->new_dir, MAXPGPATH, "%s/pg_tblpc/%s", opt->output,
|
snprintf(ts->new_dir, MAXPGPATH, "%s/pg_tblspc/%s", opt->output,
|
||||||
de->d_name);
|
de->d_name);
|
||||||
ts->in_place = true;
|
ts->in_place = true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -113,7 +113,7 @@ $pitr2->poll_query_until('postgres',
|
||||||
# It would be much nicer if we could physically compare the data files, but
|
# It would be much nicer if we could physically compare the data files, but
|
||||||
# that doesn't really work. The contents of the page hole aren't guaranteed to
|
# that doesn't really work. The contents of the page hole aren't guaranteed to
|
||||||
# be identical, and there can be other discrepancies as well. To make this work
|
# be identical, and there can be other discrepancies as well. To make this work
|
||||||
# we'd need the equivalent of each AM's rm_mask functon written or at least
|
# we'd need the equivalent of each AM's rm_mask function written or at least
|
||||||
# callable from Perl, and that doesn't seem practical.
|
# callable from Perl, and that doesn't seem practical.
|
||||||
#
|
#
|
||||||
# NB: We're just using the primary's backup directory for scratch space here.
|
# NB: We're just using the primary's backup directory for scratch space here.
|
||||||
|
|
|
@ -69,7 +69,7 @@ my $nocsum_manifest =
|
||||||
slurp_file($node->backup_dir . '/csum_none/backup_manifest');
|
slurp_file($node->backup_dir . '/csum_none/backup_manifest');
|
||||||
my $nocsum_count = (() = $nocsum_manifest =~ /Checksum-Algorithm/mig);
|
my $nocsum_count = (() = $nocsum_manifest =~ /Checksum-Algorithm/mig);
|
||||||
is($nocsum_count, 0,
|
is($nocsum_count, 0,
|
||||||
"Checksum_Algorithm is not mentioned in no-checksum manifest");
|
"Checksum-Algorithm is not mentioned in no-checksum manifest");
|
||||||
|
|
||||||
# OK, that's all.
|
# OK, that's all.
|
||||||
done_testing();
|
done_testing();
|
||||||
|
|
|
@ -272,7 +272,7 @@ flush_manifest(manifest_writer *mwriter)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Encode bytes using two hexademical digits for each one.
|
* Encode bytes using two hexadecimal digits for each one.
|
||||||
*/
|
*/
|
||||||
static size_t
|
static size_t
|
||||||
hex_encode(const uint8 *src, size_t len, char *dst)
|
hex_encode(const uint8 *src, size_t len, char *dst)
|
||||||
|
|
|
@ -100,7 +100,7 @@ typedef uint16 *BlockRefTableChunk;
|
||||||
* 'chunk_size' is an array storing the allocated size of each chunk.
|
* 'chunk_size' is an array storing the allocated size of each chunk.
|
||||||
*
|
*
|
||||||
* 'chunk_usage' is an array storing the number of elements used in each
|
* 'chunk_usage' is an array storing the number of elements used in each
|
||||||
* chunk. If that value is less than MAX_ENTRIES_PER_CHUNK, the corresonding
|
* chunk. If that value is less than MAX_ENTRIES_PER_CHUNK, the corresponding
|
||||||
* chunk is used as an array; else the corresponding chunk is used as a bitmap.
|
* chunk is used as an array; else the corresponding chunk is used as a bitmap.
|
||||||
* When used as a bitmap, the least significant bit of the first array element
|
* When used as a bitmap, the least significant bit of the first array element
|
||||||
* is the status of the lowest-numbered block covered by this chunk.
|
* is the status of the lowest-numbered block covered by this chunk.
|
||||||
|
@ -183,7 +183,7 @@ typedef struct BlockRefTableBuffer
|
||||||
* table reference file from disk.
|
* table reference file from disk.
|
||||||
*
|
*
|
||||||
* total_chunks means the number of chunks for the RelFileLocator/ForkNumber
|
* total_chunks means the number of chunks for the RelFileLocator/ForkNumber
|
||||||
* combination that is curently being read, and consumed_chunks is the number
|
* combination that is currently being read, and consumed_chunks is the number
|
||||||
* of those that have been read. (We always read all the information for
|
* of those that have been read. (We always read all the information for
|
||||||
* a single chunk at one time, so we don't need to be able to represent the
|
* a single chunk at one time, so we don't need to be able to represent the
|
||||||
* state where a chunk has been partially read.)
|
* state where a chunk has been partially read.)
|
||||||
|
@ -567,7 +567,7 @@ WriteBlockRefTable(BlockRefTable *brtab,
|
||||||
* malformed. This is not used for I/O errors, which must be handled internally
|
* malformed. This is not used for I/O errors, which must be handled internally
|
||||||
* by read_callback.
|
* by read_callback.
|
||||||
*
|
*
|
||||||
* 'error_callback_arg' is an opaque arguent to be passed to error_callback.
|
* 'error_callback_arg' is an opaque argument to be passed to error_callback.
|
||||||
*/
|
*/
|
||||||
BlockRefTableReader *
|
BlockRefTableReader *
|
||||||
CreateBlockRefTableReader(io_callback_fn read_callback,
|
CreateBlockRefTableReader(io_callback_fn read_callback,
|
||||||
|
@ -922,7 +922,7 @@ BlockRefTableEntrySetLimitBlock(BlockRefTableEntry *entry,
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Next, we need to discard any offsets within the chunk that would
|
* Next, we need to discard any offsets within the chunk that would
|
||||||
* contain the limit_block. We must handle this differenly depending on
|
* contain the limit_block. We must handle this differently depending on
|
||||||
* whether the chunk that would contain limit_block is a bitmap or an
|
* whether the chunk that would contain limit_block is a bitmap or an
|
||||||
* array of offsets.
|
* array of offsets.
|
||||||
*/
|
*/
|
||||||
|
@ -955,7 +955,7 @@ BlockRefTableEntrySetLimitBlock(BlockRefTableEntry *entry,
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Mark a block in a given BlkRefTableEntry as known to have been modified.
|
* Mark a block in a given BlockRefTableEntry as known to have been modified.
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
BlockRefTableEntryMarkBlockModified(BlockRefTableEntry *entry,
|
BlockRefTableEntryMarkBlockModified(BlockRefTableEntry *entry,
|
||||||
|
@ -1112,7 +1112,7 @@ BlockRefTableEntryMarkBlockModified(BlockRefTableEntry *entry,
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Release memory for a BlockRefTablEntry that was created by
|
* Release memory for a BlockRefTableEntry that was created by
|
||||||
* CreateBlockRefTableEntry.
|
* CreateBlockRefTableEntry.
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
|
|
|
@ -57,6 +57,6 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* yyyymmddN */
|
/* yyyymmddN */
|
||||||
#define CATALOG_VERSION_NO 202312071
|
#define CATALOG_VERSION_NO 202312211
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -12109,7 +12109,7 @@
|
||||||
proargnames => '{tli,start_lsn,end_lsn}',
|
proargnames => '{tli,start_lsn,end_lsn}',
|
||||||
prosrc => 'pg_available_wal_summaries' },
|
prosrc => 'pg_available_wal_summaries' },
|
||||||
{ oid => '8437',
|
{ oid => '8437',
|
||||||
descr => 'contents of a WAL sumamry file',
|
descr => 'contents of a WAL summary file',
|
||||||
proname => 'pg_wal_summary_contents', prorows => '100',
|
proname => 'pg_wal_summary_contents', prorows => '100',
|
||||||
proretset => 't', provolatile => 'v', proparallel => 's',
|
proretset => 't', provolatile => 'v', proparallel => 's',
|
||||||
prorettype => 'record', proargtypes => 'int8 pg_lsn pg_lsn',
|
prorettype => 'record', proargtypes => 'int8 pg_lsn pg_lsn',
|
||||||
|
|
Loading…
Reference in New Issue