Cleanup Win32 COPY handling, and move archive examples to SGML.
This commit is contained in:
parent
43ea65a0dc
commit
10249abfa1
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$PostgreSQL: pgsql/doc/src/sgml/runtime.sgml,v 1.275 2004/08/08 20:17:33 tgl Exp $
|
||||
$PostgreSQL: pgsql/doc/src/sgml/runtime.sgml,v 1.276 2004/08/12 19:03:17 momjian Exp $
|
||||
-->
|
||||
|
||||
<Chapter Id="runtime">
|
||||
@ -1435,16 +1435,24 @@ SET ENABLE_SEQSCAN TO OFF;
|
||||
<term><varname>archive_command</varname> (<type>string</type>)</term>
|
||||
<listitem>
|
||||
<para>
|
||||
The shell command to execute to archive a completed segment of the
|
||||
WAL file series. If this is an empty string (which is the default),
|
||||
WAL archiving is disabled. Any <literal>%p</> in the string is
|
||||
replaced
|
||||
by the absolute path of the file to archive, while any <literal>%f</>
|
||||
is replaced by the file name only. Write <literal>%%</> if you need
|
||||
to embed an actual <literal>%</> character in the command. For more
|
||||
information see <xref linkend="backup-archiving-wal">. This option
|
||||
can only be set at server start or in the
|
||||
<filename>postgresql.conf</filename> file.
|
||||
The shell command to execute to archive a completed segment of
|
||||
the WAL file series. If this is an empty string (the default),
|
||||
WAL archiving is disabled. Any <literal>%p</> in the string is
|
||||
replaced by the absolute path of the file to archive, and any
|
||||
<literal>%f</> is replaced by the file name only. Use
|
||||
<literal>%%</> to embed an actual <literal>%</> character in the
|
||||
command. For more information see <xref
|
||||
linkend="backup-archiving-wal">. This option can only be set at
|
||||
server start or in the <filename>postgresql.conf</filename>
|
||||
file.
|
||||
</para>
|
||||
<para>
|
||||
It is important for the command to return a zero exit status only if
|
||||
it succeeds. Examples:
|
||||
<programlisting>
|
||||
archive_command = 'cp "%p" /mnt/server/archivedir/"%f"'
|
||||
archive_command = 'copy "%p" /mnt/server/archivedir/"%f"' # Win32
|
||||
</programlisting>
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
@ -7,7 +7,7 @@
|
||||
* Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $PostgreSQL: pgsql/src/backend/access/transam/xlog.c,v 1.161 2004/08/12 18:34:45 momjian Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/access/transam/xlog.c,v 1.162 2004/08/12 19:03:23 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -1962,18 +1962,6 @@ RestoreArchivedFile(char *path, const char *xlogfname,
|
||||
/* %p: full path of target file */
|
||||
sp++;
|
||||
StrNCpy(dp, xlogpath, endp-dp);
|
||||
/*
|
||||
* make_native_path() is required because WIN32 COPY is
|
||||
* an internal CMD.EXE command and doesn't process
|
||||
* forward slashes in the same way as external commands.
|
||||
* Quoting the first argument to COPY does not convert
|
||||
* forward to backward slashes, but COPY does properly
|
||||
* process quoted forward slashes in the second argument.
|
||||
*
|
||||
* COPY works with quoted forward slashes in the first argument
|
||||
* only if the current directory is the same as the directory
|
||||
* of the first argument.
|
||||
*/
|
||||
make_native_path(dp);
|
||||
dp += strlen(dp);
|
||||
break;
|
||||
|
@ -19,7 +19,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/backend/postmaster/pgarch.c,v 1.6 2004/08/09 16:26:06 tgl Exp $
|
||||
* $PostgreSQL: pgsql/src/backend/postmaster/pgarch.c,v 1.7 2004/08/12 19:03:34 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -436,17 +436,8 @@ pgarch_archiveXlog(char *xlog)
|
||||
/* %p: full path of source file */
|
||||
sp++;
|
||||
StrNCpy(dp, pathname, endp-dp);
|
||||
#ifndef WIN32
|
||||
make_native_path(dp);
|
||||
dp += strlen(dp);
|
||||
#else
|
||||
/* On Windows, change / to \ in the substituted path */
|
||||
while (*dp)
|
||||
{
|
||||
if (*dp == '/')
|
||||
*dp = '\\';
|
||||
dp++;
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
case 'f':
|
||||
/* %f: filename of source file */
|
||||
|
@ -117,16 +117,6 @@
|
||||
# - Archiving -
|
||||
|
||||
#archive_command = '' # command to use to archive a logfile segment
|
||||
#
|
||||
# If archive_command is '' then archiving is disabled. Otherwise, set it
|
||||
# to a command to copy a file to the proper place. Any %p in the string
|
||||
# is replaced by the absolute path of the file to archive, while any %f is
|
||||
# replaced by the file name only. NOTE: it is important for the command to
|
||||
# return zero exit status only if it succeeds.
|
||||
#
|
||||
# Examples:
|
||||
# archive_command = 'cp "%p" /mnt/server/archivedir/"%f"'
|
||||
# archive_command = 'copy "%p" /mnt/server/archivedir/"%f"' # Win32
|
||||
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
|
@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/port/path.c,v 1.28 2004/08/12 18:32:52 momjian Exp $
|
||||
* $PostgreSQL: pgsql/src/port/path.c,v 1.29 2004/08/12 19:03:44 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -88,8 +88,17 @@ last_dir_separator(const char *filename)
|
||||
|
||||
|
||||
/*
|
||||
* make_native_path
|
||||
* On WIN32, change / to \ in the path.
|
||||
* make_native_path - on WIN32, change / to \ in the path
|
||||
*
|
||||
* This is required because WIN32 COPY is an internal CMD.EXE
|
||||
* command and doesn't process forward slashes in the same way
|
||||
* as external commands. Quoting the first argument to COPY
|
||||
* does not convert forward to backward slashes, but COPY does
|
||||
* properly process quoted forward slashes in the second argument.
|
||||
*
|
||||
* COPY works with quoted forward slashes in the first argument
|
||||
* only if the current directory is the same as the directory
|
||||
* of the first argument.
|
||||
*/
|
||||
void
|
||||
make_native_path(char *filename)
|
||||
|
Loading…
x
Reference in New Issue
Block a user