pgpool2.git / summary / log / commit / refs

commit    e727783e42e34676d91cb5146486794af209d269
Author:   Tatsuo Ishii <ishii at sraoss.co.jp>
Date:     Sat Oct 30 11:12:43 2010 +0000

    Allow to use %P(old primary node id) to failover/failback script.
    This is neccessary for failover script in streaming replication mode.


doc/pgpool-en.html | 17 +++++++++-------- doc/pgpool-ja.html | 4 +++- main.c | 13 +++++++++---- pgpool.conf.sample | 4 ++++ pgpool.conf.sample-master-slave | 4 ++++ pgpool.conf.sample-replication | 4 ++++ pgpool.conf.sample-stream | 4 ++++ 7 files changed, 37 insertions(+), 13 deletions(-) diff --git a/doc/pgpool-en.html b/doc/pgpool-en.html index 71d2fe1a9..2cc23c91a 100644 --- a/doc/pgpool-en.html +++ b/doc/pgpool-en.html @@ -7,7 +7,7 @@ </head> <!-- hhmts start --> -Last modified: Sat Oct 30 12:20:41 JST 2010 +Last modified: Sat Oct 30 20:06:26 JST 2010 <!-- hhmts end --> <body bgcolor="#ffffff"> @@ -568,12 +568,12 @@ pgpool-II replaces special characters to backend information. <tr><td>Special character</td><td>Description</td></tr> <tr><td>%d</td><td>Backend ID of a detached node.</td></tr> <tr><td>%h</td><td>Hostname of a detached node.</td></tr> -<tr><td>%H</td><td>Hostname of the new master node.</td></tr> <tr><td>%p</td><td>Port number of a detached node.</td></tr> -<tr><td>%D</td><td>Database cluster directory of a detached node. -</td></tr> +<tr><td>%D</td><td>Database cluster directory of a detached node.</td></tr> <tr><td>%M</td><td>Old master node ID.</td></tr> <tr><td>%m</td><td>New master node ID.</td></tr> +<tr><td>%H</td><td>Hostname of the new master node.</td></tr> +<tr><td>%P</td><td>Old primary node ID.</td></tr> <tr><td>%%</td><td>'%' character</td></tr> </table> </center> @@ -600,10 +600,11 @@ pgpool-II replaces special characters to backend information. <tr><td>%d</td><td>Backend ID of an attached node.</td></tr> <tr><td>%h</td><td>Hostname of an attached node.</td></tr> <tr><td>%p</td><td>Port number of an attached node.</td></tr> -<tr><td>%D</td><td>Database cluster path of an attached node. -</td></tr> -<tr><td>%M</td><td>Old master node</td></tr> -<tr><td>%m</td><td>New master node</td></tr> +<tr><td>%D</td><td>Database cluster path of an attached node.</td></tr> +<tr><td>%M</td><td>Old master node.</td></tr> +<tr><td>%m</td><td>New master node.</td></tr> +<tr><td>%H</td><td>Hostname of the new master node.</td></tr> +<tr><td>%P</td><td>Old primary node ID.</td></tr> <tr><td>%%</td><td>'%' character</td></tr> </table> </center> diff --git a/doc/pgpool-ja.html b/doc/pgpool-ja.html index 3b0116284..9e5f271c6 100644 --- a/doc/pgpool-ja.html +++ b/doc/pgpool-ja.html @@ -8,7 +8,7 @@ <body> <!-- hhmts start --> -Last modified: Sat Oct 30 12:19:52 JST 2010 +Last modified: Sat Oct 30 20:01:11 JST 2010 <!-- hhmts end --> <body bgcolor="#ffffff"> @@ -577,6 +577,7 @@ max_pool*num_init_children*2 <= (max_connections - superuser_reserved_connection </td></tr> <tr><td>%M</td><td>$B8E$$%^%9%?!<$N%N!<%IHV9f(B</td></tr> <tr><td>%m</td><td>$B?7$7$$%^%9%?!<$N%N!<%IHV9f(B</td></tr> +<tr><td>%P</td><td>$B8E$$%W%i%$%^%j%N!<%IHV9f(B</td></tr> <tr><td>%%</td><td>'%'$BJ8;z(B</td></tr> </table> </center> @@ -604,6 +605,7 @@ pgpool $B$,I,MW$J>pJs$KCV$-49$($F%3%^%s%I$r<B9T$7$^$9!#(B <tr><td>%M</td><td>$B8E$$%^%9%?!<$N%N!<%IHV9f(B</td></tr> <tr><td>%m</td><td>$B?7$7$$%^%9%?!<$N%N!<%IHV9f(B</td></tr> <tr><td>%H</td><td>$B?7$7$$%^%9%?!<$N%[%9%HL>(B</td></tr> +<tr><td>%P</td><td>$B8E$$%W%i%$%^%j%N!<%IHV9f(B</td></tr> <tr><td>%%</td><td>'%'$BJ8;z(B</td></tr> </table> </center> diff --git a/main.c b/main.c index 72945a144..0caf1fbc4 100644 --- a/main.c +++ b/main.c @@ -2189,21 +2189,21 @@ static int trigger_failover_command(int node, const char *command_line) char val = *(command_line + 1); switch (val) { - case 'p': /* port */ + case 'p': /* failed node port */ snprintf(port_buf, sizeof(port_buf), "%d", info->backend_port); string_append_char(exec_cmd, port_buf); break; - case 'D': /* database directory */ + case 'D': /* failed node database directory */ string_append_char(exec_cmd, info->backend_data_directory); break; - case 'd': /* node id */ + case 'd': /* failed node id */ snprintf(port_buf, sizeof(port_buf), "%d", node); string_append_char(exec_cmd, port_buf); break; - case 'h': /* host name */ + case 'h': /* failed host name */ string_append_char(exec_cmd, info->backend_hostname); break; @@ -2222,6 +2222,11 @@ static int trigger_failover_command(int node, const char *command_line) string_append_char(exec_cmd, port_buf); break; + case 'P': /* old primary node id */ + snprintf(port_buf, sizeof(port_buf), "%d", PRIMARY_NODE_ID); + string_append_char(exec_cmd, port_buf); + break; + case '%': /* escape */ string_append_char(exec_cmd, "%"); break; diff --git a/pgpool.conf.sample b/pgpool.conf.sample index a4cb8ec1e..e3ac4f0bd 100644 --- a/pgpool.conf.sample +++ b/pgpool.conf.sample @@ -147,7 +147,9 @@ health_check_user = 'nobody' # %p = port number # %D = database cluster path # %m = new master node id +# %H = hostname of the new master node # %M = old master node id +# %P = old primary node id # %% = '%' character # failover_command = '' @@ -158,7 +160,9 @@ failover_command = '' # %p = port number # %D = database cluster path # %m = new master node id +# %H = hostname of the new master node # %M = old master node id +# %P = old primary node id # %% = '%' character # failback_command = '' diff --git a/pgpool.conf.sample-master-slave b/pgpool.conf.sample-master-slave index 2aeb8e4aa..8c2c4488a 100644 --- a/pgpool.conf.sample-master-slave +++ b/pgpool.conf.sample-master-slave @@ -147,7 +147,9 @@ health_check_user = 'nobody' # %p = port number # %D = database cluster path # %m = new master node id +# %H = hostname of the new master node # %M = old master node id +# %P = old primary node id # %% = '%' character # failover_command = '' @@ -158,7 +160,9 @@ failover_command = '' # %p = port number # %D = database cluster path # %m = new master node id +# %H = hostname of the new master node # %M = old master node id +# %P = old primary node id # %% = '%' character # failback_command = '' diff --git a/pgpool.conf.sample-replication b/pgpool.conf.sample-replication index 89a5f223a..26267a934 100644 --- a/pgpool.conf.sample-replication +++ b/pgpool.conf.sample-replication @@ -147,7 +147,9 @@ health_check_user = 'nobody' # %p = port number # %D = database cluster path # %m = new master node id +# %H = hostname of the new master node # %M = old master node id +# %P = old primary node id # %% = '%' character # failover_command = '' @@ -158,7 +160,9 @@ failover_command = '' # %p = port number # %D = database cluster path # %m = new master node id +# %H = hostname of the new master node # %M = old master node id +# %P = old primary node id # %% = '%' character # failback_command = '' diff --git a/pgpool.conf.sample-stream b/pgpool.conf.sample-stream index 94f6d68f2..c746bf68b 100644 --- a/pgpool.conf.sample-stream +++ b/pgpool.conf.sample-stream @@ -147,7 +147,9 @@ health_check_user = 'nobody' # %p = port number # %D = database cluster path # %m = new master node id +# %H = hostname of the new master node # %M = old master node id +# %P = old primary node id # %% = '%' character # failover_command = '' @@ -158,7 +160,9 @@ failover_command = '' # %p = port number # %D = database cluster path # %m = new master node id +# %H = hostname of the new master node # %M = old master node id +# %P = old primary node id # %% = '%' character # failback_command = '' [parent: 09e960c9823f]