Обсуждение: Cascade Standby Configuration in 9.2.4

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

Cascade Standby Configuration in 9.2.4

От
Murthy Nunna
Дата:

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

Re: Cascade Standby Configuration in 9.2.4

От
Scott Ribe
Дата:
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






Re: Cascade Standby Configuration in 9.2.4

От
Murthy Nunna
Дата:
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






Re: Cascade Standby Configuration in 9.2.4

От
Scott Ribe
Дата:
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