mirror of
https://github.com/postgres/postgres.git
synced 2025-07-27 12:41:57 +03:00
Document restrictions regarding incremental backups and standbys.
If you try to take an incremental backup on a standby and there hasn't been much system activity, it might fail. Document why this happens. Also add a hint to the error message you get, to make it more likely that users will understand what has gone wrong. Laurenz Albe and Robert Haas Discussion: https://postgr.es/m/5468641ad821dad7aa3b2d65bf843146443a1b68.camel@cybertec.at
This commit is contained in:
@ -925,6 +925,17 @@ test ! -f /mnt/server/archivedir/00000001000000A900000065 && cp pg_wal/0
|
|||||||
to manage. For a large database all of which is heavily modified,
|
to manage. For a large database all of which is heavily modified,
|
||||||
incremental backups won't be much smaller than full backups.
|
incremental backups won't be much smaller than full backups.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
An incremental backup is only possible if replay would begin from a later
|
||||||
|
checkpoint than for the previous backup upon which it depends. If you
|
||||||
|
take the incremental backup on the primary, this condition is always
|
||||||
|
satisfied, because each backup triggers a new checkpoint. On a standby,
|
||||||
|
replay begins from the most recent restartpoint. Therefore, an
|
||||||
|
incremental backup of a standby server can fail if there has been very
|
||||||
|
little activity since the previous backup, since no new restartpoint might
|
||||||
|
have been created.
|
||||||
|
</para>
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
||||||
<sect2 id="backup-lowlevel-base-backup">
|
<sect2 id="backup-lowlevel-base-backup">
|
||||||
|
@ -441,7 +441,8 @@ PrepareForIncrementalBackup(IncrementalBackupInfo *ib,
|
|||||||
errmsg("manifest requires WAL from final timeline %u ending at %X/%X, but this backup starts at %X/%X",
|
errmsg("manifest requires WAL from final timeline %u ending at %X/%X, but this backup starts at %X/%X",
|
||||||
range->tli,
|
range->tli,
|
||||||
LSN_FORMAT_ARGS(range->end_lsn),
|
LSN_FORMAT_ARGS(range->end_lsn),
|
||||||
LSN_FORMAT_ARGS(backup_state->startpoint))));
|
LSN_FORMAT_ARGS(backup_state->startpoint)),
|
||||||
|
errhint("This can happen for incremental backups on a standby if there was little activity since the previous backup.")));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user