[pgpool-general: 2934] Re: pool members are reporting different backend states

Attila Heidrich attila.heidrich at gmail.com
Fri Jun 20 16:08:44 JST 2014


Yep, "service pgpool2 force-reload" has corrected this, but I am not happy
at all.

I thought that the pool status is consistent among the members. If pgpool
does the replication, it is a disaster to have different backend sets in
the pool members!
No way to keep databases consistent... One pool will write just one
backend, the other will write both.

Attila


2014-06-19 12:08 GMT+02:00 Yugo Nagata <nagata at sraoss.co.jp>:

> Hi,
>
> On Thu, 19 Jun 2014 11:05:32 +0200
> Attila Heidrich <attila.heidrich at gmail.com> wrote:
>
> > Dear Guys,
> >
> > How on earth it is possible, that the pool members reports different
> > backend status? It will cause problems very soon I guess.
>
> It is possible if pgpool reads old backend status info when this starts up.
> pgpool will discard the old backend info when starts with -D option.
>
> However, it would be better pgpools can detect the status mismatch
> between them in some way.
>
> >
> >     Node: 1
> >     Host: 10.100.1.11
> >     Port: 5433
> >     Weight: 0.500000
> >     Status: Up, in pool (1)
> >     WD status: Standby (2)
> >
> >     Node: 2
> >     Host: 10.100.1.10
> >     Port: 5433
> >     Weight: 0.500000
> >     Status: Up, in pool (1)
> >
> > ---
> >
> >     Node: 1
> >     Host: 10.100.1.11
> >     Port: 5433
> >     Weight: 0.500000
> >     Status: Up, detached from pool (3)
> >     WD status: Standby (2)
> >
> >     Node: 2
> >     Host: 10.100.1.10
> >     Port: 5433
> >     Weight: 0.500000
> >     Status: Up, in pool (1)
> >     WD status: Standby (2)
> >
> > ---
> >
> >     Node: 1
> >     Host: 10.100.1.11
> >     Port: 5433
> >     Weight: 0.500000
> >     Status: Up, in pool (1)
> >     WD status: Standby (2)
> >
> >     Node: 2
> >     Host: 10.100.1.10
> >     Port: 5433
> >     Weight: 0.500000
> >     Status: Up, in pool (1)
> >     WD status: Active (3)
> >
> > ---
> >
> >     Node: 1
> >     Host: 10.100.1.11
> >     Port: 5433
> >     Weight: 0.500000
> >     Status: Up, in pool (1)
> >     WD status: Standby (2)
> >
> >     Node: 2
> >     Host: 10.100.1.10
> >     Port: 5433
> >     Weight: 0.500000
> >     Status: Up, in pool (1)
> >     WD status: Standby (2)
> >
> > ---
> >
> >     Node: 1
> >     Host: 10.100.1.11
> >     Port: 5433
> >     Weight: 0.500000
> >     Status: Up, detached from pool (3)
> >     WD status: Standby (2)
> >
> >     Node: 2
> >     Host: 10.100.1.10
> >     Port: 5433
> >     Weight: 0.500000
> >     Status: Up, in pool (1)
> >     WD status: Active (3)
> >
> > I have got five pool members, two of them are the backends themselves.
> >
> > Every pool member has the other 4 as other_pgpool, and
> > heartbeat_destination, and the same two backend servers, here is the
> > relevant part of the config for all pool members:
> >
> >
> > nor-openfire-1:
> >     backend_hostname1 = '10.100.1.11'
> >     backend_port1 = 5433
> >     backend_weight1 = 1
> >     backend_data_directory1 = '/var/lib/postgresql/9.3'
> >     backend_flag1 = 'ALLOW_TO_FAILOVER'
> >     backend_hostname2 = '10.100.1.10'
> >     backend_port2 = 5433
> >     backend_weight2 = 1
> >     backend_data_directory2 = '/var/lib/postgresql/9.3'
> >     backend_flag2 = 'ALLOW_TO_FAILOVER'
> >     fail_over_on_backend_error = on
> >     heartbeat_destination0 = 'nor-postgres-2'
> >     heartbeat_destination_port0 = 9694
> >     other_pgpool_hostname0 = 'nor-postgres-2'
> >     other_pgpool_port0 = 5432
> >     heartbeat_destination1 = 'nor-jboss-2'
> >     heartbeat_destination_port1 = 9694
> >     other_pgpool_hostname1 = 'nor-jboss-2'
> >     other_pgpool_port1 = 5432
> >     heartbeat_destination2 = 'nor-postgres-1'
> >     heartbeat_destination_port2 = 9694
> >     other_pgpool_hostname2 = 'nor-postgres-1'
> >     other_pgpool_port2 = 5432
> >     heartbeat_destination3 = 'nor-jboss-1'
> >     heartbeat_destination_port3 = 9694
> >     other_pgpool_hostname3 = 'nor-jboss-1'
> >     other_pgpool_port3 = 5432
> > nor-postgres-1:
> >     backend_hostname1 = '10.100.1.11'
> >     backend_port1 = 5433
> >     backend_weight1 = 1
> >     backend_data_directory1 = '/var/lib/postgresql/9.3'
> >     backend_flag1 = 'ALLOW_TO_FAILOVER'
> >     backend_hostname2 = '10.100.1.10'
> >     backend_port2 = 5433
> >     backend_weight2 = 1
> >     backend_data_directory2 = '/var/lib/postgresql/9.3'
> >     backend_flag2 = 'ALLOW_TO_FAILOVER'
> >     fail_over_on_backend_error = on
> >     heartbeat_destination0 = 'nor-postgres-2'
> >     heartbeat_destination_port0 = 9694
> >     other_pgpool_hostname0 = 'nor-postgres-2'
> >     other_pgpool_port0 = 5432
> >     heartbeat_destination1 = 'nor-jboss-2'
> >     heartbeat_destination_port1 = 9694
> >     other_pgpool_hostname1 = 'nor-jboss-2'
> >     other_pgpool_port1 = 5432
> >     heartbeat_destination2 = 'nor-openfire-1'
> >     heartbeat_destination_port2 = 9694
> >     other_pgpool_hostname2 = 'nor-openfire-1'
> >     other_pgpool_port2 = 5432
> >     heartbeat_destination3 = 'nor-jboss-1'
> >     heartbeat_destination_port3 = 9694
> >     other_pgpool_hostname3 = 'nor-jboss-1'
> >     other_pgpool_port3 = 5432
> > nor-postgres-2:
> >     backend_hostname1 = '10.100.1.11'
> >     backend_port1 = 5433
> >     backend_weight1 = 1
> >     backend_data_directory1 = '/var/lib/postgresql/9.3'
> >     backend_flag1 = 'ALLOW_TO_FAILOVER'
> >     backend_hostname2 = '10.100.1.10'
> >     backend_port2 = 5433
> >     backend_weight2 = 1
> >     backend_data_directory2 = '/var/lib/postgresql/9.3'
> >     backend_flag2 = 'ALLOW_TO_FAILOVER'
> >     fail_over_on_backend_error = on
> >     heartbeat_destination0 = 'nor-jboss-2'
> >     heartbeat_destination_port0 = 9694
> >     other_pgpool_hostname0 = 'nor-jboss-2'
> >     other_pgpool_port0 = 5432
> >     heartbeat_destination1 = 'nor-openfire-1'
> >     heartbeat_destination_port1 = 9694
> >     other_pgpool_hostname1 = 'nor-openfire-1'
> >     other_pgpool_port1 = 5432
> >     heartbeat_destination2 = 'nor-postgres-1'
> >     heartbeat_destination_port2 = 9694
> >     other_pgpool_hostname2 = 'nor-postgres-1'
> >     other_pgpool_port2 = 5432
> >     heartbeat_destination3 = 'nor-jboss-1'
> >     heartbeat_destination_port3 = 9694
> >     other_pgpool_hostname3 = 'nor-jboss-1'
> >     other_pgpool_port3 = 5432
> > nor-jboss-1:
> >     backend_hostname1 = '10.100.1.11'
> >     backend_port1 = 5433
> >     backend_weight1 = 1
> >     backend_data_directory1 = '/var/lib/postgresql/9.3'
> >     backend_flag1 = 'ALLOW_TO_FAILOVER'
> >     backend_hostname2 = '10.100.1.10'
> >     backend_port2 = 5433
> >     backend_weight2 = 1
> >     backend_data_directory2 = '/var/lib/postgresql/9.3'
> >     backend_flag2 = 'ALLOW_TO_FAILOVER'
> >     fail_over_on_backend_error = on
> >     heartbeat_destination0 = 'nor-postgres-2'
> >     heartbeat_destination_port0 = 9694
> >     other_pgpool_hostname0 = 'nor-postgres-2'
> >     other_pgpool_port0 = 5432
> >     heartbeat_destination1 = 'nor-jboss-2'
> >     heartbeat_destination_port1 = 9694
> >     other_pgpool_hostname1 = 'nor-jboss-2'
> >     other_pgpool_port1 = 5432
> >     heartbeat_destination2 = 'nor-openfire-1'
> >     heartbeat_destination_port2 = 9694
> >     other_pgpool_hostname2 = 'nor-openfire-1'
> >     other_pgpool_port2 = 5432
> >     heartbeat_destination3 = 'nor-postgres-1'
> >     heartbeat_destination_port3 = 9694
> >     other_pgpool_hostname3 = 'nor-postgres-1'
> >     other_pgpool_port3 = 5432
> > nor-jboss-2:
> >     backend_hostname1 = '10.100.1.11'
> >     backend_port1 = 5433
> >     backend_weight1 = 1
> >     backend_data_directory1 = '/var/lib/postgresql/9.3'
> >     backend_flag1 = 'ALLOW_TO_FAILOVER'
> >     backend_hostname2 = '10.100.1.10'
> >     backend_port2 = 5433
> >     backend_weight2 = 1
> >     backend_data_directory2 = '/var/lib/postgresql/9.3'
> >     backend_flag2 = 'ALLOW_TO_FAILOVER'
> >     fail_over_on_backend_error = on
> >     heartbeat_destination0 = 'nor-postgres-2'
> >     heartbeat_destination_port0 = 9694
> >     other_pgpool_hostname0 = 'nor-postgres-2'
> >     other_pgpool_port0 = 5432
> >     heartbeat_destination1 = 'nor-openfire-1'
> >     heartbeat_destination_port1 = 9694
> >     other_pgpool_hostname1 = 'nor-openfire-1'
> >     other_pgpool_port1 = 5432
> >     heartbeat_destination2 = 'nor-postgres-1'
> >     heartbeat_destination_port2 = 9694
> >     other_pgpool_hostname2 = 'nor-postgres-1'
> >     other_pgpool_port2 = 5432
> >     heartbeat_destination3 = 'nor-jboss-1'
> >     heartbeat_destination_port3 = 9694
> >     other_pgpool_hostname3 = 'nor-jboss-1'
> >     other_pgpool_port3 = 5432
> >
> > Other question:
> >
> > Our servers are connected via two networks. Is it possible to specify a
> > pool member with both IP interfaces?
>
> One other pgpool must be specified by single IP or hostname. You can use
> either
> of them. The exception is heartbeat destination; you can specify both IP
> as heartbeat_destinationX.
>
> >
> >
> ----------------------------------------------------------------------------------------
> > Network #1
> >              |                |                  |             |
> >         |
> >              S1           S2               S3          S4
> S5
> >              |               |                    |            |
> >         |
> >
> ----------------------------------------------------------------------------------------
> > Network #2
> >
> > none of the networks are connected with failover connections, both use
> > different IP subnets.
> >
> > Regards,
> >
> > Attila
>
>
> --
> Yugo Nagata <nagata at sraoss.co.jp>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.sraoss.jp/pipermail/pgpool-general/attachments/20140620/997d6b8d/attachment.html>


More information about the pgpool-general mailing list