Обсуждение: Setting up streaming replication w/ a big ole database

Поиск
Список
Период
Сортировка

Setting up streaming replication w/ a big ole database

От
Wells Oliver
Дата:
Hey all, I have a question about streaming replication available in PG 9+

The general configuration I see is along the lines of this:


Where you do the file system backup and restore. However, our current server I wish to make master has a 75GB database. I can't take the server down, and I can't run rsync against the live DB.

What are my options? I don't care if it takes a day or two for the slave to get up to sync w/ the master: is there some way to have an empty DB read an entire log that has everything?

I could also do a pg_restore to the new slave from last night's DB backup, but I understand (at least, I seem to read it) that you can't bring a slave up using pg_restore.

Are there any other options I am missing? Thanks for any tips.

--
Wells Oliver
wellsoliver@gmail.com

Re: Setting up streaming replication w/ a big ole database

От
Scott Marlowe
Дата:
On Tue, Apr 10, 2012 at 12:34 PM, Wells Oliver <wellsoliver@gmail.com> wrote:
> Hey all, I have a question about streaming replication available in PG 9+
>
> The general configuration I see is along the lines of this:
>
> http://brandonkonkle.com/blog/2010/oct/20/postgres-9-streaming-replication-and-django-balanc/
>
> Where you do the file system backup and restore. However, our current server
> I wish to make master has a 75GB database. I can't take the server down, and
> I can't run rsync against the live DB.

You don't need to take the master down.  But you do need to run rsync.
 Note that rsync has a --bwlimit flag to reduce its impact on the
master.

Re: Setting up streaming replication w/ a big ole database

От
Wells Oliver
Дата:
I admit to being scared as crap of rsync'ing a live database to another server. Like chills are running down my spine even typing it. Is this an approved, safe thing?

On Tue, Apr 10, 2012 at 11:38 AM, Scott Marlowe <scott.marlowe@gmail.com> wrote:
On Tue, Apr 10, 2012 at 12:34 PM, Wells Oliver <wellsoliver@gmail.com> wrote:
> Hey all, I have a question about streaming replication available in PG 9+
>
> The general configuration I see is along the lines of this:
>
> http://brandonkonkle.com/blog/2010/oct/20/postgres-9-streaming-replication-and-django-balanc/
>
> Where you do the file system backup and restore. However, our current server
> I wish to make master has a 75GB database. I can't take the server down, and
> I can't run rsync against the live DB.

You don't need to take the master down.  But you do need to run rsync.
 Note that rsync has a --bwlimit flag to reduce its impact on the
master.



--
Wells Oliver
wellsoliver@gmail.com

Re: Setting up streaming replication w/ a big ole database

От
"Kevin Grittner"
Дата:
Wells Oliver <wellsoliver@gmail.com> wrote:

> I admit to being scared as crap of rsync'ing a live database to
> another server. Like chills are running down my spine even typing
> it. Is this an approved, safe thing?

It is fine, as long as you're doing it between the pg_start_backup()
and pg_stop_backup() calls.  We do it on 100 production databases
every week.  It is approved, documented, and safe.

-Kevin

Re: Setting up streaming replication w/ a big ole database

От
Robert Burgholzer
Дата:
I've definitely done this, albeit with a 6-7 GB database.  I had
accomplished previous backups with pg_dump commands, that invariably
had to be restarted and took DAYS to complete.  The rsync method
achieved the backup within hours the first time, and you can do
subsequent backups in minutes (in case something happens to the normal
xlog copying - which for me has happened from time to time).

Fear is the mind killer - let it rip dude!

r.b.

On Tue, Apr 10, 2012 at 2:43 PM, Wells Oliver <wellsoliver@gmail.com> wrote:
> I admit to being scared as crap of rsync'ing a live database to another
> server. Like chills are running down my spine even typing it. Is this an
> approved, safe thing?
>
>
> On Tue, Apr 10, 2012 at 11:38 AM, Scott Marlowe <scott.marlowe@gmail.com>
> wrote:
>>
>> On Tue, Apr 10, 2012 at 12:34 PM, Wells Oliver <wellsoliver@gmail.com>
>> wrote:
>> > Hey all, I have a question about streaming replication available in PG
>> > 9+
>> >
>> > The general configuration I see is along the lines of this:
>> >
>> >
>> > http://brandonkonkle.com/blog/2010/oct/20/postgres-9-streaming-replication-and-django-balanc/
>> >
>> > Where you do the file system backup and restore. However, our current
>> > server
>> > I wish to make master has a 75GB database. I can't take the server down,
>> > and
>> > I can't run rsync against the live DB.
>>
>> You don't need to take the master down.  But you do need to run rsync.
>>  Note that rsync has a --bwlimit flag to reduce its impact on the
>> master.
>
>
>
>
> --
> Wells Oliver
> wellsoliver@gmail.com



--
--
Robert W. Burgholzer
http://www.findingfreestyle.com/
On Facebook - http://www.facebook.com/pages/Finding-Freestyle/151918511505970
Twitter - http://www.twitter.com/findfreestyle
What's a tweeted swim set? A Sweet? No, a #swaiku!  Get them by
following http://twitter.com/findfreestyle

Re: Setting up streaming replication w/ a big ole database

От
Tom Lane
Дата:
"Kevin Grittner" <Kevin.Grittner@wicourts.gov> writes:
> Wells Oliver <wellsoliver@gmail.com> wrote:
>> I admit to being scared as crap of rsync'ing a live database to
>> another server. Like chills are running down my spine even typing
>> it. Is this an approved, safe thing?

> It is fine, as long as you're doing it between the pg_start_backup()
> and pg_stop_backup() calls.  We do it on 100 production databases
> every week.  It is approved, documented, and safe.

Right.  It is true that the rsync alone will not give you a consistent
copy if the database is actively being modified.  The secret sauce is
in having a copy of all the WAL that was generated while the rsync
happened.  Replaying that against the copied data will apply (or
reapply) any changes that occurred meanwhile, thus fixing the
inconsistencies.

(I find that people are much more likely to believe that this works
once they grasp the principle.)

            regards, tom lane