On Sun, 2005-03-20 at 17:02 +0100, Magnus Hagander wrote:
> >I'm looking into copying partially filled xlogs with the Archiver
> >process, to allow a more rounded warm standby database option.
> >
> >My understanding is that on win32, when an xlog file is still being
> >written to by a backend it will be locked and unable to be copied away
> >by another process.
>
> No, that shouldn't be a problem.
OK, good. That makes it a lot simpler.
I'll post a design that explains that soon.
> We open all our files with
> FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE (see port/open.c). It
> should work fine as the other process that reads it also opens it with
> at least FILE_SHARE_READ.
...but its the implications that count!
> To verify, I started up a backend and did a begin transaction;create
> table foo(bar int);
> Then I copied the xlog file, and it copied without any errors.
>
> AFAIK, it shuold also contain the actual data, as long as it's been
> synced (which would be the same on unix, right?). (or if the file is
> opened with o_dsync). I haven't verified it myself, though.
I was hoping to verify by theory - but I'll go for it then we can test.
Best Regards, Simon Riggs