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