<html><head><style type='text/css'>p { margin: 0; }</style></head><body><div style='font-family: Verdana; font-size: 12pt; color: #000000'>Hi again.<br><br>Sorry I don't explained wery well my case.<br><br>Initially I have two nodes, A (master) and B (slave).<br><br>If B fails and I recover it there is no problem, clients stay connected and A is still the master node.<br><br>But if then A fails, B promotes to master, trigger file is created ... If I recover A then clients are disconnected.<br><br>Then<span style="white-space:pre"></span> if B fails (so A becomes master), when I recover B clients stay connected.<br><span style="white-space:pre"></span><span style="white-space:pre"><br>So the problem only occurs when A fails.<br><br>Thans again<br><br>Regards<br></span><br><br><hr id="zwchr"><div style="color:#000;font-weight:normal;font-style:normal;text-decoration:none;font-family:Helvetica,Arial,sans-serif;font-size:12pt;"><b>De: </b>"Tatsuo Ishii" <ishii@postgresql.org><br><b>Para: </b>"joaquin llano" <joaquin.llano@cpxextremadura.com><br><b>CC: </b>pgpool-general@pgpool.net<br><b>Enviados: </b>Viernes, 9 de Diciembre 2011 13:53:47<br><b>Asunto: </b>Re: [pgpool-general: 78] Re: Pgpool disconnect clients when recovery nodes.<br><br>By definition of streaming replication, you can only recover slave.<br><br>Suppose we have a master (node A) and a slave (node B).<br><br>1) A fails and B becomes master.<br>2) A is recovered and now A is slave.<br><br>So clients are never disconnected when a node is recovered in<br>streaming replication.<br>--<br>Tatsuo Ishii<br>SRA OSS, Inc. Japan<br>English: http://www.sraoss.co.jp/index_en.php<br>Japanese: http://www.sraoss.co.jp<br><br>> Hi again. <br>> <br>> I have one more question. <br>> <br>> If the node that fails is the master, when I recover it, clients are disconnected. It is ok? <br>> <br>> When I recover slave node, clients aren't disconnected. <br>> <br>> Thanks again. <br>> <br>> ----- Mensaje original -----<br>> <br>> De: "Tatsuo Ishii" <ishii@postgresql.org> <br>> Para: "joaquin llano" <joaquin.llano@cpxextremadura.com> <br>> CC: pgpool-general@pgpool.net <br>> Enviados: Miércoles, 7 de Diciembre 2011 14:48:03 <br>> Asunto: Re: [pgpool-general: 51] Re: Pgpool disconnect clients when recovery nodes. <br>> <br>>> Hi again. <br>>> <br>>> First of all thanks for your advice Tatsuo. <br>> <br>> You are welcome! <br>> <br>>> I've compiled and installed Pgpool 3.1.1. <br>>> <br>>> Now when recovery a node clients aren't disconnected. But they are disconnected when a node fails (not matter if the node is primary or slave). <br>>> <br>>> Is there any way to no disconnect clients when a node fails? <br>>> <br>>> PostgreSQL version is 9.1.1. <br>>> <br>>> Thanks again. <br>> <br>> Sorry but currently there's no way to prevent it. <br>> -- <br>> Tatsuo Ishii <br>> SRA OSS, Inc. Japan <br>> English: http://www.sraoss.co.jp/index_en.php <br>> Japanese: http://www.sraoss.co.jp <br>> <br>>> ----- Mensaje original ----- <br>>> <br>>> De: "Tatsuo Ishii" <ishii@postgresql.org> <br>>> Para: "joaquin llano" <joaquin.llano@cpxextremadura.com> <br>>> CC: pgpool-general@pgpool.net <br>>> Enviados: Martes, 29 de Noviembre 2011 13:00:16 <br>>> Asunto: Re: [pgpool-general: 10] Pgpool disconnect clients when recovery nodes. <br>>> <br>>> With pgpool's native replication mode, there's no way to avoid <br>>> disconnection to clients at recovery. <br>>> <br>>> In pgpool-II 3.1 or later, with streaming replication mode and <br>>> recovery does not disconnect existing client connections. <br>>> <br>>>>From pgpool-II 3.1's "Enhancements" in NEWS: <br>>> <br>>> - Enhance online recovery in streaming replication mode. <br>>> Now restarting pgpool-II children is avoided when recovery finished. So <br>>> existing sessions can be continued while doing online recovery(Tatsuo) <br>>> -- <br>>> Tatsuo Ishii <br>>> SRA OSS, Inc. Japan <br>>> English: http://www.sraoss.co.jp/index_en.php <br>>> Japanese: http://www.sraoss.co.jp <br>>> <br>>>> I have a cluster with 2 postgresql 8.4 backends and 1 pgpool2 3.0.3 version. They are running on Debian Squeeze using backports repository. <br>>>> <br>>>> When I try to recovery one of the backends using pcp_recovery_node its fails to recover until all clients connected to pgpool are disconnected. <br>>>> <br>>>> Also I tried streaming replication in other machines with PostgreSQL 9.1 but when recover a backend Pgpool drops all clients connected to it. <br>>>> <br>>>> Is there ant way to Pgpool maintain clients connected when I recover a dead node? <br>>>> <br>>>> This is my pgpool.conf for PostgreSQL 8.4 nodes. <br>>>> <br>>>> listen_addresses = '*' <br>>>> port = 5432 <br>>>> pcp_port = 9898 <br>>>> socket_dir = '/var/run/postgresql' <br>>>> pcp_socket_dir = '/var/run/postgresql' <br>>>> backend_socket_dir = '/var/run/postgresql' <br>>>> pcp_timeout = 10 <br>>>> num_init_children = 32 <br>>>> max_pool = 4 <br>>>> child_life_time = 300 <br>>>> connection_life_time = 0 <br>>>> child_max_connections = 0 <br>>>> client_idle_limit = 0 <br>>>> authentication_timeout = 60 <br>>>> logdir = '/var/run/postgresql' <br>>>> pid_file_name = '/var/run/postgresql/pgpool.pid' <br>>>> replication_mode = true <br>>>> load_balance_mode = true <br>>>> replication_stop_on_mismatch = true <br>>>> replicate_select = false <br>>>> reset_query_list = 'ABORT; RESET ALL; SET SESSION AUTHORIZATION DEFAULT' <br>>>> print_timestamp = true <br>>>> master_slave_mode = false <br>>>> connection_cache = true <br>>>> health_check_timeout = 3 <br>>>> health_check_period = 5 <br>>>> health_check_user = 'pgpool2' <br>>>> failover_command = 'pgpool-failover %d %h %p %D %m %M' <br>>>> failback_command = 'pgpool-failback %d %h %p %D %m %M' <br>>>> insert_lock = true <br>>>> ignore_leading_white_space = true <br>>>> log_statement = false <br>>>> log_connections = false <br>>>> log_hostname = false <br>>>> parallel_mode = false <br>>>> enable_query_cache = false <br>>>> pgpool2_hostname = 'ppsqlft1' <br>>>> system_db_hostname = 'localhost' <br>>>> system_db_port = 5432 <br>>>> system_db_dbname = 'pgpool' <br>>>> system_db_schema = 'pgpool_catalog' <br>>>> system_db_user = 'pgpool' <br>>>> system_db_password = '' <br>>>> backend_hostname0 = 'PPSQLBK1' <br>>>> backend_port0 = 5432 <br>>>> backend_weight0 = 1 <br>>>> backend_data_directory0 = '/var/lib/postgresql/8.4/main' <br>>>> backend_hostname1 = 'PPSQLBK2' <br>>>> backend_port1 = 5432 <br>>>> backend_weight1 = 1 <br>>>> backend_data_directory1 = '/var/lib/postgresql/8.4/main' <br>>>> enable_pool_hba = true <br>>>> recovery_user = 'pgpool2' <br>>>> recovery_password = '' <br>>>> recovery_1st_stage_command = 'base-backup' <br>>>> recovery_2nd_stage_command = 'pgpool-recovery-pitr' <br>>>> recovery_timeout = 90 <br>>>> client_idle_limit_in_recovery = 10 <br>>>> <br>>>> <br>>>> Thanks for your help <br>>>> <br>>>> -- <br>>>> <br>>>> Joaquín Manuel Llano Montero <br>>>> <br>>>> ________________________________________ <br>>>> <br>>>> C O MPAREX España S.A. <br>>>> C/ Severo Ochoa, 20 <br>>>> 06800 Mérida (Badajoz) España <br>>>> phone: +34 924 373 573 <br>>>> fax: +34 924 374 518 <br>>>> mobile: +34 615 848 019 <br>>>> email : joaquin.llano@comparex.es <br>>>> web: www.comparex.es <br>> <br></div><br></div></body></html>