Re: Remote On-line Backup

From: "Thomas F(dot) O'Connell" <tfo(at)sitening(dot)com>
To: PgSQL Admin <pgsql-admin(at)postgresql(dot)org>
Subject: Re: Remote On-line Backup
Date: 2006-03-29 21:17:45
Message-ID: C03A4087-3A01-49E9-8D8A-1EC457BDD7E8@sitening.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin


On Mar 29, 2006, at 1:43 PM, Simon Riggs wrote:

> On Tue, 2006-03-28 at 14:31 -0600, Thomas F. O'Connell wrote:
>
>> Here are the steps I'm proposing:
>>
>> 1. Set up archive_command in postgresql.conf on oldhost to archive to
>> remote repository on newhost.
>> 2. Perform base backup on oldhost. (I'll probably just use rsync to
>> backup directly to newhost.)
>> 3. On newhost, remove postmaster.pid from $PGDATA, disable
>> archive_command in postgresql.conf, and create clean pg_xlog tree.
>> 4. Stop the postmaster on oldhost.
>> 5. If the WAL file referenced by the backup file in my archive
>> directory on newhost is not archived when the postmaster is stopped,
>> copy it from oldhost to pg_xlog on newhost.
>> 6. Create recovery.conf on newhost.
>> 7. Start the postmaster on newhost.
>> 8. Rejoice when recovery.done appears.
>>
>> The part I most want to make sure I understand well enough is step 5,
>> which I'm understanding to be a modification of steps 2 and 6 from
>> section 23.3.3 in the docs. As I understand it, there's a pretty good
>> possibility that the WAL file referenced by stop_backup() will not be
>> archived by the time I stop the postmaster on oldhost. In which case,
>> I should be in good shape to recover if I have a base backup, the
>> archived WAL files up to that final file referenced by stop_backup(),
>> and the partial segment file referenced by stop_backup(), which
>> should be the only unarchived WAL segment file and just needs to
>> exist in pg_xlog on newhost for things to run smoothly.
>>
>> Does this seem right? Or will I rather want to copy all the contents
>> of pg_xlog from oldhost as they represent current (as of stopping the
>> postmaster) unarchived WAL activity?
>
> The steps above show a one-time migration. If that is what you want
> then
> I suggest that the steps are:
>
> 1. Shutdown oldhost cleanly.
> 2. Copy all data directory and all files to newhost.
> 3. Edit any configuration file changes required
> 4. Startup on newhost
> 5. Delete files on oldhost so it is not started up again.
>
> This will be slower, but has less risk if you are unsure of the
> process.
>
> I'd suggest you follow your own procedure on a test box without step
> (4), so you can check you've done it right before you stop oldhost for
> good. Once you are happy with that, go for it in live.
>
> Best Regards, Simon Riggs

For now, all I need is the one-time migration. The reason I was
hoping to include the additional steps that you roll into step 2 is
to minimize the downtime. I could leave the postmaster on oldhost
running while I perform the base backup.

I'm looking to avoid being unsure of the process, which is why I
posted. :)

Is there any potential for data loss in the original scenario I
proposed?

--
Thomas F. O'Connell
Database Architecture and Programming
Co-Founder
Sitening, LLC

http://www.sitening.com/
3004 B Poston Avenue
Nashville, TN 37203-1314
615-260-0005 (cell)
615-469-5150 (office)
615-469-5151 (fax)

In response to

Browse pgsql-admin by date

  From Date Subject
Next Message Salem Berhanu 2006-03-29 21:56:59 Re: postgres and persistant connections (using Apache::DBI)
Previous Message Mark Liberman 2006-03-29 21:11:38 Release plans for improvements to partitioning