Hi ,

Yes, It is possible to execute backups on the slave server instead of
master.

Below are the steps we run for one of our past customer every day to
refresh his Dev/test environments using slave backups.

*On Slave:*

1. Pause the replication

postgres=# select pg_xlog_replay_pause();

 pg_xlog_replay_pause

----------------------

(1 row)

2. Make sure wheather Replication paused or not.

postgres =# select pg_is_xlog_replay_paused();

 pg_is_xlog_replay_paused

--------------------------

* t*

(1 row)

3. Copy the data directory using any one rsync,tar,scp or cp..etc

4. Resume the replication to continue the replication process.

postgres=# select pg_xlog_replay_resume();

 pg_xlog_replay_resume

-----------------------

(1 row)

5. Verify the weather replication is resumed or not.

postgres=# select pg_is_xlog_replay_paused();

 pg_is_xlog_replay_paused

--------------------------

 *f*

(1 row)

--Chiru


On Fri, May 16, 2014 at 10:06 AM, bricklen <brick...@gmail.com> wrote:

>
> On Thu, May 15, 2014 at 1:55 PM, Bruce Momjian <br...@momjian.us> wrote:
>
>> On Thu, May  1, 2014 at 12:39:44PM -0700, bricklen wrote:
>> > Or alternatively, if "backup" = pg_dump, then backups can taken from
>> the slave
>> > too. Have a look at pg_xlog_replay_pause() + pg_dump +
>> pg_xlog_replay_resume().
>> > http://www.postgresql.org/docs/current/static/functions-admin.html#
>> > FUNCTIONS-RECOVERY-CONTROL-TABLE
>>
>> Uh, what is the pause for?  So the transaction will not be cancelled?
>>
>>
> Yes.
>
>

Reply via email to