On Sat, Dec 18, 2010 at 10:23 PM, vvoody <wxj.g.sh@gmail.com> wrote:
> I have two servers, one primary and one standby, which doing warm
> standby. Every thing works fine at the beginning. The primary
> generates the archive WAL log files and the standby fetchs them to
> merge.
>
> Then, I want to let the standby become primary. So I stop the
> postgresql(service postgresql stop) manually, copy the last WAL file
> and files under pg_xlog/ to the standby. The former standby now
> becomes primary and the data is ok. BTW, it still started as archive
> mode.
I follow you up to here. Presumably, you instantiated the standby
using the steps outlined here:
http://wiki.postgresql.org/wiki/Warm_Standby
> Not end yet. After the standby running for a while and generating some
> data, I want to switch back to the former primary. And I repeat the
> above steps: stop the postgresql service manuall, copy WAL log files
> and files under pg_xlog/ to the former primary. I delete the pg_xlog/
> and files under archive directory. Then the postgresql starts, but the
> data generated after last switching do not come over.
From this description, it sounds like you're trying to shortcut the
process of bringing your old primary server (server A) up-to-date with
the currently-running server (server B). In order to bring server A
up-to-date with B, you'll need to follow *all* the steps on that wiki
page to set server A up as a warm standby of B, particularly the
pg_start_backup(); rsync'ing of PGDATA over to A, etc.
Josh