Thread: Cascade Standby Configuration in 9.2.4
Greetings!
I am setting up cascade standby (primary->slave1->slave2)
Everything is working as expected but I am not sure why it is working though….
Primary: archive = on and archive_command is enabled to send logs to slave1
I can see in pg_log that logs are being rsynced to slave1
Slave1: archive = on (I am not sure what this does in case of standby) archive_command is enabled to send logs to slave2
Problem: I don’t see logs going to slave2 though
Slave2:archive and archive_command are commented out
I don’t see anywhere logs being shipped from slave1 to slave2 but when I stop slave2 and do some activity on primary and later restart slave2 I see the data in slave2. This means somehow logs are getting to slave2 and eventually streaming is catching up….
Can you tell what I am missing here????
Thanks for reading this.
Murthy
Sounds like you're confused regarding the difference between WAL-shipping replication and streaming replication. In streamingreplication, you don't have to ship WAL files. (You need to be sure that the WALs are preserved on master long enoughfor the slave to stream them, but you don't have to ship them.) On Apr 1, 2014, at 4:17 PM, Murthy Nunna <mnunna@fnal.gov> wrote: > Greetings! > > I am setting up cascade standby (primary->slave1->slave2) > > Everything is working as expected but I am not sure why it is working though…. > > Primary: archive = on and archive_command is enabled to send logs to slave1 > I can see in pg_log that logs are being rsynced to slave1 > > Slave1: archive = on (I am not sure what this does in case of standby) archive_command is enabled to send logs to slave2 > Problem: I don’t see logs going to slave2 though > > Slave2:archive and archive_command are commented out > > I don’t see anywhere logs being shipped from slave1 to slave2 but when I stop slave2 and do some activity on primary andlater restart slave2 I see the data in slave2. This means somehow logs are getting to slave2 and eventually streamingis catching up…. > > Can you tell what I am missing here???? > > Thanks for reading this. > Murthy -- Scott Ribe scott_ribe@elevated-dev.com http://www.elevated-dev.com/ (303) 722-0567 voice
Thanks for the clarification Scott... What is the restore_command in recovery.conf does in case of streaming replicationif it doesn't need logs available locally on the slave machine. Do you think if the streaming falls behind, thenslave will request master to ship logs?????? Recovery.conf from slave: # Required for archive recovery if streaming replication falls behind too far. restore_command = 'cp /data/postgres/archive/rep_poc/remote/%f %p' -----Original Message----- From: Scott Ribe [mailto:scott_ribe@elevated-dev.com] Sent: Tuesday, April 01, 2014 5:35 PM To: Murthy Nunna Cc: pgsql-admin@postgresql.org Subject: Re: [ADMIN] Cascade Standby Configuration in 9.2.4 Sounds like you're confused regarding the difference between WAL-shipping replication and streaming replication. In streamingreplication, you don't have to ship WAL files. (You need to be sure that the WALs are preserved on master long enoughfor the slave to stream them, but you don't have to ship them.) On Apr 1, 2014, at 4:17 PM, Murthy Nunna <mnunna@fnal.gov> wrote: > Greetings! > > I am setting up cascade standby (primary->slave1->slave2) > > Everything is working as expected but I am not sure why it is working though.... > > Primary: archive = on and archive_command is enabled to send logs to > slave1 I can see in pg_log that logs are being rsynced to slave1 > > Slave1: archive = on (I am not sure what this does in case of standby) > archive_command is enabled to send logs to slave2 > Problem: I don't see logs going to slave2 though > > Slave2:archive and archive_command are commented out > > I don't see anywhere logs being shipped from slave1 to slave2 but when I stop slave2 and do some activity on primary andlater restart slave2 I see the data in slave2. This means somehow logs are getting to slave2 and eventually streamingis catching up.... > > Can you tell what I am missing here???? > > Thanks for reading this. > Murthy -- Scott Ribe scott_ribe@elevated-dev.com http://www.elevated-dev.com/ (303) 722-0567 voice
On Apr 1, 2014, at 5:20 PM, Murthy Nunna <mnunna@fnal.gov> wrote: > Thanks for the clarification Scott... What is the restore_command in recovery.conf does in case of streaming replicationif it doesn't need logs available locally on the slave machine. It copies the files. It has no way of knowing whether or not there's a WAL-shipping replica out there somewhere which needsthem. > Do you think if the streaming falls behind, then slave will request master to ship logs?????? The slave does not request the master to ship logs. The slave, when started uses the WAL files it finds in its locally-availableWAL archive, then starts streaming from the master, which requires that there not be a gap between its localcopies and what's still available on the master. This is all covered in the documentation: <http://www.postgresql.org/docs/9.2/static/high-availability.html> -- Scott Ribe scott_ribe@elevated-dev.com http://www.elevated-dev.com/ (303) 722-0567 voice