mirror of
https://github.com/postgres/postgres.git
synced 2025-05-01 01:04:50 +03:00
doc: Add note about re-archiving of same WAL files in docs.
The server may attempt to re-archive a WAL file that was previously archived. This commit adds the note about how an archive library should handle such a re-archiving. Author: Nathan Bossart Reviewed-by: David Steele, Kyotaro Horiguchi Discussion: https://postgr.es/m/CA+TgmoaeTe4oUT39A4nt=8LD6UJ5u0vcmGc5+Aksn-4oKRb8-w@mail.gmail.com
This commit is contained in:
parent
756e221db6
commit
3cabe45a81
@ -681,14 +681,29 @@ test ! -f /mnt/server/archivedir/00000001000000A900000065 && cp pg_wal/0
|
||||
any pre-existing archive file. This is an important safety feature to
|
||||
preserve the integrity of your archive in case of administrator error
|
||||
(such as sending the output of two different servers to the same archive
|
||||
directory).
|
||||
directory). It is advisable to test your proposed archive library to ensure
|
||||
that it does not overwrite an existing file.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
It is advisable to test your proposed archive library to ensure that it
|
||||
indeed does not overwrite an existing file, <emphasis>and that it returns
|
||||
<literal>false</literal> in this case</emphasis>.
|
||||
The example command above for Unix ensures this by including a separate
|
||||
In rare cases, <productname>PostgreSQL</productname> may attempt to
|
||||
re-archive a WAL file that was previously archived. For example, if the
|
||||
system crashes before the server makes a durable record of archival success,
|
||||
the server will attempt to archive the file again after restarting (provided
|
||||
archiving is still enabled). When an archive library encounters a
|
||||
pre-existing file, it may return <literal>true</literal> if the WAL file has
|
||||
identical contents to the pre-existing archive and the pre-existing archive
|
||||
is fully persisted to storage. Alternatively, the archive library may
|
||||
return <literal>false</literal> anytime a pre-existing file is encountered,
|
||||
but this will require manual action by an administrator to resolve. If a
|
||||
pre-existing file contains different contents than the WAL file being
|
||||
archived, the archive library <emphasis>must</emphasis> return
|
||||
<literal>false</literal>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The example command above for Unix avoids overwriting a pre-existing archive
|
||||
by including a separate
|
||||
<command>test</command> step. On some Unix platforms, <command>cp</command> has
|
||||
switches such as <option>-i</option> that can be used to do the same thing
|
||||
less verbosely, but you should not rely on these without verifying that
|
||||
|
Loading…
x
Reference in New Issue
Block a user