[Pgpool-general] Confusing... pgpool starts on both nodes, but don't replicate.

» Ruben Alves rubenalves at fm.ul.pt
Fri Jul 3 16:13:42 UTC 2009


Thanks to all. Now I understand better how pgpool works.
Now I've been able to made some successful test. Replication Mode is 
working perfectly.
The problem now is a little bit diferrent... I've just made a backup 
from the postgres production database, and freshly imported in two new 
databases in docsys and docsys2.
The problem is when I try any kind of connection to pgpool (in 9999 
port) I have the "kind mismatch error".

ex:
docsys:/home/rubenalves# /usr/lib/postgresql/8.3/bin/pgbench -i -h 
docsys -p 9999 imm_dbv12 -U postgres
ERROR:  kind mismatch among backends. Possible last query was: "SET 
search_path = public" kind details are: 0[C] 1[N]
HINT:  check data consistency among db nodes
server closed the connection unexpectedly
    This probably means the server terminated abnormally
    before or while processing the request.
docsys:/home/rubenalves#

I really can't understand because the both databases are IDENTICAL, how 
pgpool may find some differences?

Someone got an idea about this error?


//Ruben

J. Carlos Muro wrote:
> As Gerd already pointed, you need to activate just one pgpool, then 
> connect to it from your sql client. (I leave here the question for 
> experts: what happens if I set up two or more pgpool all of them 
> accessing to the same backends at the same time?)
>
> As a guideline to find the problem to your setup, you can enable debug 
> mode and try to find kind of these lines in your logs:
>
> [....]
> 2009-06-30 16:29:15 DEBUG: pid 11297: backend 0 weight: 1073741823.500000
> 2009-06-30 16:29:15 DEBUG: pid 11297: backend 1 weight: 1073741823.500000
> [....]
> 2009-06-30 16:29:15 LOG:   pid 11297: pgpool successfully started
>
> From then an on, when you try to connect pgpool in order to execute 
> queries you can check netstat as to see if pgpool child opened 
> connection to both of your backends:
>
> $ sudo netstat -puta | grep pool
> [....]
> tcp        0      0 pgpoolserver:51190          
> backend0:postgresql     ESTABLISHED 11319/pgpool
> tcp        0      0 pgpoolserver:36816          
> backend1:postgresql     ESTABLISHED 11319/pgpool
>
> Also in your logs you should find something like this:
>
> 2009-06-30 16:30:47 DEBUG: pid 11319: new_connection: connecting 0 backend
> 2009-06-30 16:30:47 DEBUG: pid 11319: new_connection: connecting 1 backend
> [....]
> 2009-06-30 16:30:47 DEBUG: pid 11319: select_load_balancing_node: 
> selected backend id is 0
> 2009-06-30 16:30:47 DEBUG: pid 11319: read_kind_from_backend: read 
> kind from 0 th backend Z NUM_BACKENDS: 2
> 2009-06-30 16:30:47 DEBUG: pid 11319: read_kind_from_backend: read 
> kind from 1 th backend Z NUM_BACKENDS: 2
>
> Hope it helps!
> J. Carlos Muro
>
> 2009/7/2 » Ruben Alves <rubenalves at fm.ul.pt <mailto:rubenalves at fm.ul.pt>>
>
>     Hi everyone,
>     I installed pgpool with postgreSQL on Monday. I've been busy since
>     yesterday morning, and in the afternoon I've tried to configure
>     following those instructions:
>
>       *
>     http://pgpool.projects.postgresql.org/pgpool-II/doc/pgpool-en.html#start
>       *
>     http://pgpool.projects.postgresql.org/pgpool-II/doc/tutorial-en.html#replication
>
>     Everything is running fine, pgptool is running, listening for news
>     connections etc.. But NOTHING happens. If I change something in
>     node1 (docsys) nothing is replicated on node2 (docsys2).
>
>     I have this king of configuration (exactly the same file for node1
>     and node2):
>
>     [....]
>     # Replication mode
>     replication_mode = true
>
>     # Load balancing mode, i.e., all SELECTs are load balanced.
>     load_balance_mode = true
>
>     # if there's a data mismatch between master and secondary
>     replication_stop_on_mismatch = false
>     [...]
>
>     [...]
>     #set pgpool2 hostname
>     pgpool2_hostname = 'docsys'
>
>     # system DB info
>     system_db_hostname = 'docsys'
>     system_db_port = 5432
>     system_db_dbname = 'pgbench'
>     system_db_schema = 'pgbench_public'
>     system_db_user = 'pgpool_001'
>     system_db_password = 'pass'
>
>     # backend_hostname, backend_port, backend_weight
>     # here are examples
>     backend_hostname0 = 'docsys'
>     backend_port0 = 5432
>     backend_weight0 = 1
>     backend_data_directory0 = '/backup/postgres/data_001/'
>
>     backend_hostname1 = 'docsys2'
>     backend_port1 = 5433
>     backend_weight1 = 1
>     backend_data_directory1 = '/backup/postgres/data_002/'
>     [...]
>
>
>     (I've just paste parts of the config file in order to not flood
>     this ML)
>
>     I don't really understand how pgpool initialize the replication
>     system. I've build a MySQL replication system (master-slaves) and
>     maybe i'm too focused on this past experience.
>
>     Can somebody give me a hand ?
>
>
>
>
>     -- 
>     Ruben Alves
>     System Analyst USI @ Instituto de Medicina Molecular
>
>     _______________________________________________
>     Pgpool-general mailing list
>     Pgpool-general at pgfoundry.org <mailto:Pgpool-general at pgfoundry.org>
>     http://pgfoundry.org/mailman/listinfo/pgpool-general
>
>


-- 
Ruben Alves 

System Analyst 
USI @ Instituto de Medicina Molecular




More information about the Pgpool-general mailing list