Re: Using copy for WAL archiving on Windows

From: Christian Ullrich <chris(at)chrullrich(dot)net>
To: pgsql-general(at)postgresql(dot)org
Cc: harald(at)2ndQuadrant(dot)com
Subject: Re: Using copy for WAL archiving on Windows
Date: 2011-01-22 17:40:36
Message-ID: 4D3B1694.5050908@chrullrich.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

* Harald Armin Massa wrote:

> Should PostgreSQL maybe provide its own file-copy utility for
> Windows that meets the requirements for safe WAL archiving?
>
> Microsoft does provide an enterprise-ready webscale copy program ... it
> is called robocopy and part of the Windows Server Resource Kit Tools.
> Would you mind trying that utility for copying WAL-files?

I'm not sure I trust _that_:

### archive_wal.bat ###

robocopy pg_xlog c:\wal %1 /r:0 /w:0 /xc
if errorlevel 4 exit 1
if errorlevel 1 exit 0
if errorlevel 0 exit 1

### end ###

archive_command = "archive_wal.bat %f"

robocopy's exit codes make good reading, if you are into horror stories.

Thanks for the tip; I had previously discounted robocopy because I
thought it could not copy individual files, only whole directories (with
exclusion patterns, but not inclusion patterns). It turns out I will not
use it for entirely different reasons.

The perfect archiving utility for Windows is something like this:

### archive_wal.c ###

#define UNICODE 1
#define _UNICODE 1
#include <windows.h>

int wmain(int argc, WCHAR *argv[])
{
return ((argc == 3
&& CopyFile(argv[1], argv[2], TRUE) != 0) ? 0 : 1);
}

### end ###

archive_command = "archive_wal %p c:\wal\%f"

--
Christian

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Greg Smith 2011-01-22 18:18:29 Re: SHMMAX and SHMALL question
Previous Message Andy Colson 2011-01-22 17:06:16 Re: Server stops responding in every week