Sophie

Sophie

distrib > Mandriva > 2010.1 > i586 > by-pkgid > 9238952a3334eba77c7691696483b160 > files > 29

postgresql-pgpool-II-2.3.3-1mdv2010.1.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=iso-2022-jp">
<link rel="stylesheet" href="./pgpool-ja.css" type="text/css">
<title>pgpool-II $B%f!<%6%^%K%e%"%k(B</title>
</head>
<body>

<!-- hhmts start -->
Last modified: Mon Feb 22 14:03:07 JST 2010
<!-- hhmts end -->

<body bgcolor="#ffffff">
<a name="top"></a>
<table border="0" cellpadding="2" cellspacing="1">
  <tr>

    <td colspan="2" valign="top"><div class="header_text">Welcome to pgpool -II page</div></td>
  </tr>
  <tr>
    <td valign="top" style="border-right:1px dotted #cccccc;">
	<br />

	<div id="navcontainer">
      <ul id="navlist">
        <li id="active"><a href="#Whatis" id="current">pgpool-II$B$H$O(B</a></li>
        <li><a href="#platform">pgpool-II$B$N2TF/4D6-(B</a></li>
        <li><a href="#install">pgpool-II$B$N%$%s%9%H!<%k(B</a></li>
        <li><a href="#config">pgpool-II$B$N@_Dj(B</a></li>
        <li><a href="#start">pgpool-II$B$N5/F0$HDd;_(B</a></li>
        <li><a href="#reload">pgpool-II$B$N@_Dj%U%!%$%k$N:FFI$_9~$_(B</a></li>
	<li><a href="#online-recovery">$B%*%s%i%$%s%j%+%P%j(B</a></li>
        <li><a href="#restriction">$B@)8B;v9`(B</a></li>
        <li><a href="#reference">$B%j%U%!%l%s%9(B</a></li>
        <li><a href="#internal">$BFbIt>pJs(B</a></li>
        <li><a href="#release">$B%j%j!<%9%N!<%H(B</a></li>
      </ul>
    </div>
	<br />

		<div class="header_small" align="center">

			[<a href="pgpool-en.html">English page</a>]		</div>	</td>
    <td valign="top" style="border-left:1px dotted #cccccc;">
	


<h1>pgpool-II$B$H$O(B<a name="whatis"></a></h1>
<p>
pgpool-II$B$O(BPostgreSQL$B@lMQ$N%_%I%k%&%'%"$G!"(BPostgreSQL$B$N%G!<%?%Y!<%9%/%i%$%"%s%H$H(BPostgreSQL$B%5!<%P$N4V$K3d$j9~$`7A$GF0:n$7!"(BPostgrSQL$B$K0J2<$N$h$&$J5!G=$rDI2C$7$^$9!#(B
</p>

<p>
<ul>

<li>$B%3%M%/%7%g%s%W!<%j%s%0(B
<p>
PostgreSQL$B$X$N@\B3$rJ]B8$7$F$*$-!":FMxMQ$9$k$3$H$K$h$C$F(BPostgreSQL$B$X$N@\B3%*!<%P%X%C%I$rDc8:$G$-!"%7%9%F%`A4BN$N%9%k!<%W%C%H$r8~>e$5$;$k$3$H$,$G$-$^$9!#(B
</p>

<li>$B%l%W%j%1!<%7%g%s(B
<p>
pgpool-II$B$OJ#?t$N(BPostgreSQL$B%5!<%P$r4IM}$9$k$3$H$,$G$-$^$9!#%l%W%j%1!<%7%g%s$r;HMQ$9$k$3$H$K$h$j!"J*M}E*$K(B2$BBf0J>e$N%G%#%9%/$K%j%"%k%?%$%`$G%O!<%I%G%#%9%/$N%P%C%/%"%C%W$r<h$k$3$H$,$G$-!"K|$,0l$I$l$+$N%G%#%9%/$K>c32$,H/@8$7$F$b1?MQ$r7QB3$9$k$3$H$,$G$-$^$9!#(B
</p>

<li>$BIi2YJ,;6(B
<p>
$B%l%W%j%1!<%7%g%s$r1?MQ$7$F$$$k>l9g!"$9$Y$F$N(BPostgreSQL$B%G!<%?%Y!<%9$NFbMF$,0lCW$7$F$$$k$N$G!"$I$N%5!<%P$KLd$$9g$o$;$F$bF1$87k2L$,JV$C$F$-$^$9!#$3$N$3$H$rMxMQ$7$F!"B??t$N%j%/%(%9%H$r$=$l$>$l$N%5!<%P$GJ,C4$7$FIi2Y$r7Z8:$5$;!"%7%9%F%`A4BN$N@-G=$r8~>e$5$;$k$3$H$,$G$-$^$9!#:GNI$N>l9g$K$O%5!<%PBf?t$KHfNc$7$?@-G=8~>e$,8+9~$a$^$9!#FC$KB??t$N%f!<%6$,BgNL$NLd$$9g$o$;$rEj$2$k$h$&$J4D6-$G0RNO$rH/4x$7$^$9!#(B
</p>

<li>$B@\B3?t$N@)8B(B
<p>
PostgreSQL$B$K@\B32DG=$J%;%C%7%g%s?t$K$O8B3&$,$"$j!"$=$l$rD6$($F@\B3$9$k$3$H$O$G$-$^$;$s!#$+$H8@$C$F!"F1;~%;%C%7%g%s?t$r$`$d$_$KB?$/@_Dj$9$k$H!"%a%b%j!<$J$I$N%j%=!<%9$,B?$/>CHq$5$l$F%Q%U%)!<%^%s%9$K1F6A$,$"$j$^$9!#(Bpgpool-II$B$G$b%/%i%$%"%s%H$+$i$N@\B3?t$K$O>e8B$,$"$j$^$9$,!"$=$l$rD6$($F$b$?$@$A$K%(%i!<$K$J$k$3$H$O$J$/!"0lDj$N4VBT$?$5$l$k$h$&$K$J$C$F$$$^$9!#$7$?$,$C$F!"(Bpgpool-II$B$O(BPostgreSQL$B$X$N@\B3MW5a$r<B<AE*$K%-%e!<%$%s%0$7!"(BPostgreSQL$B$X$N2aBg$J@\B3?t$r@)8B$9$k$3$H$,2DG=$G$9!#(B
</p>

<li>$B%Q%i%l%k%/%(%j(B
<p>
$BJ#?t$N%5!<%P$K%G!<%?$rJ,3d$7$F<u$1;}$?$;!"$=$l$>$l$N%5!<%P$KF1;~$K8!:wLd$$9g$o$;$rEj$2$F!"Ld$$9g$o$;$N=hM};~4V$rC;=L$9$k%Q%i%l%k%/%(%j$,MxMQ$G$-$^$9!#FC$KBg5,LO$J%G!<%?$r8!:w$9$k$H$-$K0RNO$rH/4x$7$^$9!#(B
</p>

</ul>
</p>

<p>
pgpool-II$B$O(BPostgreSQL$B%P%C%/%(%s%I$H%U%m%s%H%(%s%I$NDL?.%W%m%H%3%k$rM}2r$7$F$=$N4V$rCf7Q$7$^$9!#$9$J$o$A!"(BPostgreSQL$B$N%G!<%?%Y!<%9%"%W%j%1!<%7%g%s$+$i$O(BPostgreSQL$B%5!<%P$K!"(BPostgreSQL$B$+$i$O%G!<%?%Y!<%9%"%W%j%1!<%7%g%s$K8+$($k$h$&$K@_7W$5$l$F$$$^$9!#$=$N$?$a!"(BPostgreSQL$B$=$N$b$N$O$b$A$m$s!"%"%W%j%1!<%7%g%s$N3+H/8@8l$K$h$i$:!"(BPostgreSQL$B$N%G!<%?%Y!<%9%"%W%j%1!<%7%g%s$K$[$H$s$I<j$r2C$($k$3$H$J$/!"(Bpgpool-II$B$N5!G=$,MxMQ$G$-$^$9!#(B
</p>

<h1>pgpool-II$B$N2TF/4D6-(B<a name="platform"></a></h1>
<p>
pgpool-II$B$O!"(BLinux$B$r$O$8$a!"(BSolaris$B$d(BFreeBSD$B$J$I$N$[$H$s$I$N(BUNIX$B4D6-$GF0:n$7$^$9!#(BWindows$B$G$OF0$-$^$;$s!#BP1~$9$k(BPostgreSQL$B$N%P!<%8%g%s$O!"(BPostgreSQL$B$N(B6.4$B0J9_$G$9!#$?$@$7%Q%i%l%k%/%(%j%b!<%I$r;HMQ$9$k$H$-$O(BPostgreSQL 7.4$B0J9_$r$*;H$$$/$@$5$$!#(B
</p>

<h1>pgpool-II$B$N%$%s%9%H!<%k(B<a name="install"></a></h1>

<p>
Linux$BMQ$N(BRPM$B%Q%C%1!<%8$O!"(BCentOS$B!"(BFedora$BMQ$J$I$,Ds6!$5$l$F$$$^$9!#(B
$B3:Ev%j%]%8%H%j$r%A%'%C%/$7$F$_$F$/$@$5$$!#(B
</p>

<p>
pgpool-II $B$N%=!<%9%3!<%I$O(B<a
href="http://pgfoundry.org/projects/pgpool/">pgpool$B3+H/%Z!<%8(B</a>
$B$+$i%@%&%s%m!<%I$G$-$^$9!#(B
</p>

<p>
pgpool-II$B$N%=!<%9%3!<%I$+$i$N%$%s%9%H!<%k$K$O!"(Bgcc 2.9$B0J>e!"$*$h$S(BGNU make$B$,I,MW$G$9!#(B
$B$^$?!"(Bpgpool-II$B$O(Blibpq(PostgreSQL$BIUB0$N%/%i%$%"%s%H%i%$%V%i%j(B)$B$r;HMQ$9$k$N$G!"%S%k%I$r9T$&%^%7%s>e$K(Blibpq$B$,%$%s%9%H!<%k$5$l$F$$$k$3$H$,I,MW$G$9!#(B
</p>

<dl>
<dt>configure$B$N<B9T(B
<dd>
<p>
$B%=!<%9%3!<%I$N(Btar ball$B$rE83+$7$?$i!"(Bconfigure$B$r<B9T$7$^$9!#(B
<pre>
./configure
</pre>

configure$B$K;XDj$G$-$k%*%W%7%g%s$O0J2<$G$9!#(B

<ul>
<li><code>--prefix=path</code><br/>
pgpool-II$BK\BN$d4XO"%U%!%$%k$r%$%s%9%H!<%k$9$k%H%C%W%G%#%l%/%H%j$r;XDj$7$^$9!#(B
$B%G%U%)%k%H$O(B/usr/local$B$G$9!#(B</li>
<li><code>--with-pgsql=path</code><br/>
PostgreSQL$B$N%/%i%$%"%s%H%i%$%V%i%j$J$I$,%$%s%9%H!<%k$5$l$F$$$k%H%C%W%G%#(B
$B%l%/%H%j$r;XDj$7$^$9!#%G%U%)%k%H$O(B<code>pg_config</code>$B%3%^%s%I$G<hF@$G$-$k%Q%9$G$9!#(B</li>
  <li><code>--with-openssl</code><br/>
	 pgpool-II$B$r(BOpenSSL$B%5%]!<%HIU$G:n@.$7$^$9!#(B
	 $B%G%U%)%k%H$G$O(BOpenSSL$B%5%]!<%H$OL58z$G$9!#(B</li>

</ul>
</p>

<dt>make$B$N<B9T(B
<dd>
<p>

<pre>
make
make install
</pre>
$B$G%$%s%9%H!<%k$,40N;$7$^$9(B(GNU make$B$,I,MW$J$N$G!"(BFreeBSD$B$J$I$G$O(B
make$B$r(Bgmake$B$KFI$_BX$($F$/$@$5$$(B)$B!#(B
</dl>

<h1>pgpool-II$B$N@_Dj(B<a name="config"></a></h1>
<p>
pgpool-II$B$N@_Dj%U%!%$%k$O%G%U%)%k%H$G$O(B/usr/local/etc/pgpool.conf$B$*$h$S(B
/usr/local/etc/pcp.conf$B$G$9!#(Bpgpool-II$B$OF0:n%b!<%I$K$h$C$F;HMQ$G$-$k5!G=$H!"(B
$BI,MW$J@_Dj9`L\$,0[$J$j$^$9!#(B
</p>
<table border width="800">

<tr>
<th>$B;HMQ$G$-$k5!G=(B/$B%b!<%I(B</th>
<th>raw$B%b!<%I(B</th>
<th>$B%3%M%/%7%g%s%W!<%k%b!<%I(B</th>
<th>$B%l%W%j%1!<%7%g%s%b!<%I(B</th>
<th>$B%^%9%?%9%l!<%V%b!<%I(B</th>
<th>$B%Q%i%l%k%/%(%j%b!<%I(B</th>
</tr>

<tr>
<td>$B%3%M%/%7%g%s%W!<%j%s%0(B</td>
<td align="center">$B!_(B</td>
<td align="center">$B!{(B</td>
<td align="center">$B!{(B</td>
<td align="center">$B!{(B</td>
<td align="center">$B!{(B</td>
</tr>

<tr>
<td>$B%l%W%j%1!<%7%g%s(B</td>
<td align="center">$B!_(B</td>
<td align="center">$B!_(B</td>
<td align="center">$B!{(B</td>
<td align="center">$B!_(B</td>
<td align="center">$B"$(B(*)</td>
</tr>

<tr>
<td>$BIi2YJ,;6(B</td>
<td align="center">$B!_(B</td>
<td align="center">$B!_(B</td>
<td align="center">$B!{(B</td>
<td align="center">$B!{(B</td>
<td align="center">$B"$(B(*)</td>
</tr>

<tr>
<td>$B%U%'%$%k%*!<%P(B</td>
<td align="center">$B!{(B</td>
<td align="center">$B!{(B</td>
<td align="center">$B!{(B</td>
<td align="center">$B!{(B</td>
<td align="center">$B!_(B</td>
</tr>

<tr>
<td>$B%Q%i%l%k%/%(%j(B</td>
<td align="center">$B!_(B</td>
<td align="center">$B!_(B</td>
<td align="center">$B!_(B</td>
<td align="center">$B!_(B</td>
<td align="center">$B!{(B</td>
</tr>

<tr>
<td>$B%5!<%PBf?t(B</td>
<td align="center">1$B0J>e(B</td>
<td align="center">1$B0J>e(B</td>
<td align="center">2$B0J>e(B</td>
<td align="center">2$B0J>e(B</td>
<td align="center">2$B0J>e(B</td>
</tr>

<tr>
<td>$B%7%9%F%`(BDB</td>
<td align="center">$BITMW(B</td>
<td align="center">$BITMW(B</td>
<td align="center">$BITMW(B</td>
<td align="center">$BITMW(B</td>
<td align="center">$BI,MW(B</td>
</tr>

</table>

(*)$B%Q%i%l%k%/%(%j%b!<%I$G$O!"%l%W%j%1!<%7%g%s$^$?$OIi2YJ,;6$rM-8z$K$9$kI,MW$,$"$j$^$9!#(B
$B$?$@$7!"J,3d$7$FJ]B8$7$F$$$k%F!<%V%k$KBP$7$F$O!"%l%W%j%1!<%7%g%s$J$i$S$KIi2YJ,;6$N5!G=$O;HMQ$5$l$^$;$s!#(B

<h2>pcp.conf$B$N@_Dj(B</h2>
<p>
$B$I$NF0:n%b!<%I$G$b!"(Bpcp.conf$B$N@_Dj$OI,MW$G$9!#(Bpgpool-II$B$K$O4IM}<T$,(Bpgpool-II$B$N(B
$BDd;_$d>pJs<hF@$J$I$N4IM}A`:n$r9T$&$?$a$N%$%s%?!<%U%'%$%9$,MQ0U$5$l$F$$$^(B
$B$9!#$=$N%$%s%?!<%U%'%$%9$rMxMQ$9$k$?$a$K$O%f!<%6G'>Z$,I,MW$K$J$k$N$G!"$=(B
$B$N%f!<%6L>$H%Q%9%o!<%I$r(Bpcp.conf$B$KEPO?$7$^$9!#(B
pgpool-II$B$r%$%s%9%H!<%k$9$k$H!"(B$prefix/etc/pcp.conf.sample$B$,$G$-$k$N$G!"$=$l$r(B
$prefix/etc/pcp.conf$B$H$$$&L>A0$G%3%T!<$7$^$9!#(B
</p>
<pre>
cp $prefix/etc/pcp.conf.sample $prefix/etc/pcp.conf
</pre>
<p>
pcp.conf$B$G$O6uGr9T$d(B#$B$G;O$^$k9T$O%3%a%s%H$H8+$J$5$l$^$9!#(B
$B%f!<%6$H%Q%9%o!<%I$O!"(B
</p>
<pre>
$B%f!<%6L>(B:[md5$B0E9f2=$7$?%Q%9%o!<%I(B]
</pre>
<p>
$B$N$h$&$K;XDj$7$^$9!#(B
[md5$B0E9f2=$7$?%Q%9%o!<%I(B]$B$O!"(B$prefix/bin/pg_md5$B%3%^%s%I$G:n@.$G$-$^$9!#(B
</p>
<pre>
./pg_md5 foo
acbd18db4cc2f85cedef654fccc4a4d8
</pre>
$B%Q%9%o!<%I$r0z?t$KEO$7$?$/$J$$>l9g$O(B pg_md5 -p $B$r<B9T$7$F$/$@$5$$!#(B
<pre>
./pg_md5 -p
password: &lt;$B%Q%9%o!<%I$rF~NO(B&gt;
</pre>
<p>
pcp.conf$B$O!"(Bpgpool-II$B$rF0:n$5$;$k%f!<%6(BID$B$GFI$_<h$j2DG=$K$J$C$F$$$J$1$l$P(B
$B$J$j$^$;$s!#(B
</p>

<h2>pgpool.conf$B$N@_Dj(B</h2>
<p>
$BA0=R$N$h$&$K!"F0:n%b!<%I$K$h$C$F!"(Bpgpool.conf$B$N@_Dj9`L\$,0[$J$j$^$9!#(B
pgpool-II$B$r%$%s%9%H!<%k$9$k$H!"(B$prefix/etc/pgpool.conf.sample$B$,$G$-$k$N$G!"$=$l$r(B
$prefix/etc/pgpool.conf$B$H$$$&L>A0$G%3%T!<$7$^$9!#(B
</p>
<pre>
cp $prefix/etc/pgpool.conf.sample $prefix/etc/pgpool.conf
</pre>
<p>
pgpool.conf$B$G$O6uGr9T$d(B#$B$G;O$^$k9T$O%3%a%s%H$H8+$J$5$l$^$9!#(B
</p>

<h3>raw$B%b!<%I(B</h3>
<p>
$BC1$K(Bpgpool-II$B$r7PM3$7$F@\B3$9$k$@$1$N%b!<%I$G$9!#(BPostgreSQL$B%5!<%P$X$N@\(B
$BB3%;%C%7%g%s?t$r@)8B$7$?$j!"(B2$BBf0J>e$N(BPostgreSQL$B%5!<%P$rMQ0U$7$F%U%'%$%k(B
$B%*!<%PF0:n$r$5$;$?$$$H$-$KMxMQ$7$^$9!#(B
</p>

<dl>
<dt>listen_addresses
<dd>
<p>
pgpool-II$B$,(BTCP/IP$B%3%M%/%7%g%s$r<u$1IU$1$k%"%I%l%9$r%[%9%HL>$^$?$O(BIP$B%"%I%l%9$G(B
$B;XDj$7$^$9!#!V(B*$B!W$r;XDj$9$k$H$9$Y$F$N(BIP$B%$%s%?%U%'!<%9$+$i$N%3%M%/%7%g(B
$B%s$r<u$1IU$1$^$9!#!V(B''$B!W$r;XDj$9$k$H(BTCP/IP$B%3%M%/%7%g%s$r<u$1IU$1$^(B
$B$;$s!#%G%U%)%k%HCM$O!V(Blocalhost$B!W$G$9!#(B
UNIX$B%I%a%$%s%=%1%C%H7PM3$N%3%M%/%7%g%s$O>o$K<u$1IU$1$^$9!#$3$N%Q%i%a!<(B
$B%?$rJQ99$7$?;~$K$O(B pgpool-II $B$r:F5/F0$7$F$/$@$5$$!#(B
</p>

<dt>port
<dd>
<p>
pgpool-II$B$,%3%M%/%7%g%s$r<u$1IU$1$k%]!<%HHV9f$G$9!#%G%U%)%k%HCM$O(B9999
$B$G$9!#(B
$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O(B pgpool-II $B$r:F5/F0$7$F$/$@$5$$!#(B
</p>

<dt>socket_dir
<dd>
<p>
pgpool-II$B$,%3%M%/%7%g%s$r<u$1IU$1$k(BUNIX$B%I%a%$%s%=%1%C%H$rCV$/%G%#%l%/%H%j$G$9!#(B
$B%G%U%)%k%HCM$O(B'/tmp'$B$G$9!#(B
$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O(B pgpool-II $B$r:F5/F0$7$F$/$@$5$$!#(B
</p>

<dt>pcp_port
<dd>
<p>
pcp$B$,;HMQ$9$k%]!<%HHV9f$G$9!#(B
$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O(B pgpool-II $B$r:F5/F0$7$F$/$@$5$$!#(B
</p>

<dt>pcp_socket_dir
<dd>
<p>
pcp$B$,%3%M%/%7%g%s$r<u$1IU$1$k(BUNIX$B%I%a%$%s%=%1%C%H$rCV$/%G%#%l%/%H%j$G$9!#(B
$B%G%U%)%k%HCM$O(B'/tmp'$B$G$9!#(B
$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O(B pgpool-II $B$r:F5/F0$7$F$/$@$5$$!#(B
</p>

<dt>backend_socket_dir
<dd>
<p>
UNIX$B%I%a%$%s%=%1%C%H7PM3$G(Bpgpool-II$B$,(BPostgreSQL$B$H@\B3$9$k:]$K;HMQ$9$k(B
PostgreSQL$B$N(BUNIX$B%I%a%$%s%=%1%C%H$,CV$+$l$F$$$k%G%#%l%/%H%j!#%G%U%)%k%HCM(B
$B$O(B/tmp$B$G$9!#(B
$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O(B pgpool-II $B$r:F5/F0$7$F$/$@$5$$!#(B
</p>

<dt>pcp_timeout
<dd>
<p>
pcp$B$,(Bpgppool$B$H@\B3$9$k:]$N%?%$%`%"%&%HCM!#(B0$B$K$9$k$H%?%$%`%"%&%H$7$^$;$s!#(B
$B%G%U%)%k%HCM$O(B10($BIC(B)$B$G$9!#(B
$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O@_Dj%U%!%$%k$r:FFI$_9~$_$7$F$/$@$5$$!#(B
</p>

<dt>num_init_children
<dd>
<p>
prefork$B$9$k(Bpgpool-II$B$N%5!<%P%W%m%;%9$N?t$G$9!#%G%U%)%k%HCM$O(B32$B$K$J$C$F(B
$B$$$^$9!#(B
   $B$J$*!"Ld$$9g$o$;$N%-%c%s%;%k$r9T$&$HDL>o$N%3%M%/%7%g%s$H$OJL$K?7$?(B
   $B$J%3%M%/%7%g%s$,D%$i$l$^$9!#$7$?$,$C$F!"$9$Y$F$N%3%M%/%7%g%s$,;HMQ(B
   $BCf$N>l9g$OLd$$9g$o$;$N%-%c%s%;%k$,$G$-$J$/$C$F$7$^$&$N$G!"$4Cm0U2<(B
   $B$5$$!#Ld$$9g$o$;$N%-%c%s%;%k$rI,$:J]>Z$7$?$$>l9g$O!"A[Dj$5$l$k%3%M(B
   $B%/%7%g%s?t$NG\$NCM$r@_Dj$9$k$3$H$r$*$9$9$a$7$^$9!#(B
$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O(B pgpool-II $B$r:F5/F0$7$F$/$@$5$$!#(B
</p>

<dt>child_life_time
<dd>
<p>
   pgpool-II$B$N;R%W%m%;%9$N<wL?$G$9!#%"%$%I%k>uBV$K$J$C$F$+$i(B
   child_life_time$BIC7P2a$9$k$H!"0lC6=*N;$7$F?7$7$$%W%m%;%9$r5/F0$7$^$9!#(B
   $B%a%b%j!<%j!<%/$=$NB>$N>c32$KHw$($?M=KIA<CV$G$9!#(Bchild_life_time$B$N%G(B
   $B%U%)%k%HCM$O(B300$BIC!"$9$J$o$A(B5$BJ,$G$9!#(B0$B$r;XDj$9$k$H$3$N5!G=$OF/$-$^$;(B
   $B$s!J$9$J$o$A5/F0$7$CJ|$7!K!#$J$*!"$^$@0lEY$b%3%M%/%7%g%s$r(B
   $B<u$1IU$1$F$$$J$$%W%m%;%9$K$O(Bchild_life_time$B$OE,MQ$5$l$^$;$s!#(B
$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O@_Dj%U%!%$%k$r:FFI$_9~$_$7$F$/$@$5$$!#(B
</p>

<dt>child_max_connections
<dd>
<p>
   $B3F(Bpgpool-II$B;R%W%m%;%9$X$N@\B32s?t$,$3$N@_DjCM$rD6$($k$H!"$=$N;R%W%m(B
   $B%;%9$r=*N;$7$^$9!#(Bchild_life_time$B$d(Bconnection_life_time$B$,8z$+$J$$$/(B
   $B$i$$K;$7$$%5!<%P$G!"(BPostgreSQL$B%P%C%/%(%s%I$,HnBg2=$9$k$N$rKI$0$N$K(B
   $BM-8z$G$9!#(B
$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O@_Dj%U%!%$%k$r:FFI$_9~$_$7$F$/$@$5$$!#(B
</p>

<dt>client_idle_limit
<dd>
<p>
  $BA02s%/%i%$%"%s%H$+$iMh$?%/%(%j$+$i!"(Bclient_idle_limit $BIC1[$($F$b<!$N(B
  $B%/%(%j$,FO$+$J$$>l9g$O!"%/%i%$%"%s%H$X$N@\B3$r6/@)E*$K@ZCG$7!"%/%i%$(B
  $B%"%s%H$+$i$N<!$N%3%M%/%7%g%s$rBT$D$h$&$K$7$^$9!#%G%U%)%k%HCM$O(B 0($BL5(B
  $B8z(B)$B$G$9!#$3$N%Q%i%a!<%?$O!"%*%s%i%$%s%j%+%P%j$N%;%+%s%I%9%F!<%8$G$O(B
  $BL5;k$5$l$^$9!#(B
$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O@_Dj%U%!%$%k$r:FFI$_9~$_$7$F$/$@$5$$!#(B
</p>

<dt>authentication_timeout
<dd>
<p>
   $BG'>Z=hM}$N%?%$%`%"%&%H;~4V$rICC10L$G;XDj$7$^$9!#(B0 $B$r;XDj$9$k$H%?%$(B
   $B%`%"%&%H$rL58z$K$7$^$9!#(Bauthentication_timeout $B$N%G%U%)%k%HCM$O(B 60
   $B$G$9!#(B
$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O@_Dj%U%!%$%k$r:FFI$_9~$_$7$F$/$@$5$$!#(B
</p>

<dt>logdir
<dd>
<p>
   pgpool-II$B$N3F<o%m%0%U%!%$%k$r3JG<$9$k%G%#%l%/%H%j$G$9!#(B
   $B$3$N2<$K(BDB$B%N!<%I$N>uBV$r5-O?$9$k(Bpgpool_status$B%U%!%$%k$,=q$+$l$^$9!#(B
</p>

<dt>pid_file_name
<dd>
<p>
   pgpool-II$B$N(Bpid file($B%W%m%;%9(BID$B$r3JG<$7$?%U%!%$%k(B)$B$N%U%k%Q%9L>$G$9!#(B
   $B%G%U%)%k%HCM$O(B'/var/run/pgpool/pgpool.pid'$B$G$9!#(B
   $B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O(B pgpool-II $B$r:F5/F0$7$F$/$@$5$$!#(B
</p>

<dt>print_timestamp
<dd>
<p>
   true$B$J$i$P(Bpgpool-II$B$N%m%0$K%?%$%`%9%?%s%W$rDI2C$7$^$9!#%G%U%)%k%H$O(B
   true$B$G$9!#(B
$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O@_Dj%U%!%$%k$r:FFI$_9~$_$7$F$/$@$5$$!#(B
</p>

<dt>connection_cache
<dd>
<p>
   true$B$J$i(BPostgreSQL$B$X$N%3%M%/%7%g%s$r%-%c%C%7%e$7$^$9!#%G%U%)%k%H$O(Btrue$B$G$9!#(B
$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O(B pgpool-II $B$r:F5/F0$7$F$/$@$5$$!#(B
</p>

<dt>health_check_timeout
<dd>
<p>
   pgpool-II$B$O%5!<%P>c32$d%M%C%H%o!<%/>c32$r8!CN$9$k$?$a$K!"Dj4|E*$K%P%C(B
   $B%/%(%s%I$K@\B3$r;n$_$^$9!#$3$l$r!V%X%k%9%A%'%C%/!W$H8@$$$^$9!#>c32(B
   $B$,8!CN$5$l$k$H!"%U%'%$%k%*!<%P$d=LB`1?E>$r;n$_$^$9!#(B

   $B$3$N(B $B%Q%i%a!<%?$O!"%M%C%H%o!<%/%1!<%V%k$,H4$1$?:]$J$I$K%X%k%9%A%'%C(B
   $B%/$,D9;~4VBT$?$5$l$k$N$rKI$0$?$a$N%?%$%`%"%&%HCM$rICC10L$G;XDj$7$^(B
   $B$9!#%G%U%)%k%H$O(B20$BIC$G$9!#(B0$B$r;XDj$9$k$H%?%$%`%"%&%H=hM}$r$7$^$;$s!#(B

   $B$J$*!"%X%k%9%A%'%C%/$rM-8z$K$9$k$H!"%X%k%9%A%'%C%/$N$?$a$NM>J,$N@\(B
   $BB3$,(B1$B$DI,MW$K$J$j$^$9$N$G!"(BPostgreSQL$B$N(Bpostgresql.conf$B$N@_Dj9`L\$N(B
   max_connections$B$r>/$/$H$b(B1$BA}$d$9$h$&$K$7$F$/$@$5$$!#(B

$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O@_Dj%U%!%$%k$r:FFI$_9~$_$7$F$/$@$5$$!#(B
</p>

<dt>health_check_period
<dd>
<p>
   $B%X%k%9%A%'%C%/$r9T$&4V3V$rICC10L$G;XDj$7$^$9!#(B0$B$r;XDj$9$k$H%X%k%9(B
   $B%A%'%C%/$r9T$$$^$;$s!#%G%U%)%k%H$O(B0$B$G$9(B($B$D$^$j%X%k%9%A%'%C%/$r9T$$(B
   $B$^$;$s(B)$B!#(B
$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O@_Dj%U%!%$%k$r:FFI$_9~$_$7$F$/$@$5$$!#(B
</p>

<dt>health_check_user
<dd>
<p>
   $B%X%k%9%A%'%C%/$r9T$&$?$a$N(BPostgreSQL$B%f!<%6L>$G$9!#(B
$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O@_Dj%U%!%$%k$r:FFI$_9~$_$7$F$/$@$5$$!#(B
</p>

<dt>failover_command
<dd>
<p>
$B%N!<%I$,@Z$jN%$5$l$?;~$K<B9T$9$k%3%^%s%I$r;XDj$7$^$9!#FC<lJ8;z$r;XDj$9(B
$B$k$H!"(Bpgpool $B$,I,MW$J>pJs$KCV$-49$($F%3%^%s%I$r<B9T$7$^$9!#(B

<center>
<table border>
<tr><td>$BJ8;z(B</td><td>$B0UL#(B</td></tr>
<tr><td>%d</td><td>$B@Z$jN%$5$l$?%N!<%IHV9f(B</td></tr>
<tr><td>%h</td><td>$B@Z$jN%$5$l$?%N!<%I$N%[%9%HL>(B</td></tr>
<tr><td>%p</td><td>$B@Z$jN%$5$l$?%N!<%I$N%]!<%HHV9f(B</td></tr>
<tr><td>%D</td><td>$B@Z$jN%$5$l$?%N!<%I$N%G!<%?%Y!<%9%/%i%9%?%Q%9(B
</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>%%</td><td>'%'$BJ8;z(B</td></tr>
</table>
</center>
$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O@_Dj%U%!%$%k$r:FFI$_9~$_$7$F$/$@$5$$!#(B
</p>
<p>
$B%U%'%$%k%*!<%P!<;~$K$O!"(Bpgpool$B$O$^$:;R%W%m%;%9$r@ZCG$7$^$9(B($B7k2L$H$7$F!"$9$Y$F$N%;%C%7%g%s$,@ZCG$5$l$^$9(B)$B!#<!$K!"(Bpgpool$B$O%U%'%$%k%*!<%P%3%^%s%I$r<B9T$7!"$=$N40N;$rBT$A$^$9!#(B
$B$=$N$"$H$G?7$7$$(Bpgpool$B$N;R%W%m%;%9$,5/F0$5$l!"%/%i%$%"%s%H$+$i$N@\B3$r<u$1IU$1$i$l$k>uBV$K$J$j$^$9!#(B
</p>

<dt>failback_command
<dd>
<p>
$B%N!<%I$,I|5"$7$?;~$K<B9T$9$k%3%^%s%I$r;XDj$7$^$9!#FC<lJ8;z$r;XDj$9$k$H!"(B
pgpool $B$,I,MW$J>pJs$KCV$-49$($F%3%^%s%I$r<B9T$7$^$9!#(B

<center>
<table border>
<tr><td>$BJ8;z(B</td><td>$B0UL#(B</td></tr>
<tr><td>%d</td><td>$BI|5"$7$?%N!<%IHV9f(B</td></tr>
<tr><td>%h</td><td>$BI|5"$7$?%N!<%I$N%[%9%HL>(B</td></tr>
<tr><td>%p</td><td>$BI|5"$7$?%N!<%I$N%]!<%HHV9f(B</td></tr>
<tr><td>%D</td><td>$BI|5"$7$?%N!<%I$N%G!<%?%Y!<%9%/%i%9%?%Q%9(B
</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>%%</td><td>'%'$BJ8;z(B</td></tr>
</table>
</center>
$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O@_Dj%U%!%$%k$r:FFI$_9~$_$7$F$/$@$5$$!#(B
</p>

<dt>fail_over_on_backend_error
<dd>
<p>
   true$B$J$i$P!"%P%C%/%(%s%I$N%=%1%C%H$X$N=q$-9~$_$K<:GT$9$k$H%U%'%$%k%*!<%P$7$^$9!#(B
   $B$3$l$O(Bpgpool-II 2.2.x$B$^$G$N5sF0$HF1$8$G$9!#(B
false$B$K$9$k$H!"%U%'%$%k%*!<%P$;$:!"C1$K%(%i!<$,%l%]!<%H$5$l$F%;%C%7%g%s$,@ZCG$5$l$^$9!#(B
$B$3$N%Q%i%a!<%?$r(Bfalse$B$K$9$k>l9g$K$O!"(Bhealth check$B$rM-8z$K$9$k$3$H$r$*4+$a$7$^$9!#(B
$B$J$*!"$3$N%Q%i%a!<%?$,(Bfalse$B$N>l9g$G$b!"%/%i%$%"%s%H$,(Bpgpool$B$K@\B3$9$k:]$K%P%C%/%(%s%I$X$N@\B3$K<:GT$7$?>l9g!"$"$k$$$O%P%C%/%(%s%I$,%7%c%C%H%@%&%s$5$l$?$3$H$r(Bpgpool-II$B$,8!CN$7$?>l9g$K$O%U%'%$%k%*!<%P$,5/$-$k$3$H$KCm0U$7$F$/$@$5$$!#(B
$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O@_Dj%U%!%$%k$r:FFI$_9~$_$7$F$/$@$5$$!#(B
</p>

<dt>ignore_leading_white_space
<dd>
<p>
   true$B$J$i$P!"(Bload balance$B$N:]$K(BSQL$BJ89TF,$N6uGr$rL5;k$7$^$9(B($BA43Q%9(B
   $B%Z!<%9$OL5;k$5$l$^$;$s(B)$B!#$3$l$O!"(BDBI/DBD:Pg$B$N$h$&$K!">!<j$K9TF,$K%[(B
   $B%o%$%H%9%Z!<%9$rDI2C$9$k$h$&$J(BAPI$B$r;H$$!"%m!<%I%P%i%s%9$7$?$$$H$-$K(B
   $BM-8z$G$9!#(B
$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O@_Dj%U%!%$%k$r:FFI$_9~$_$7$F$/$@$5$$!#(B
</p>

<dt>log_statement
<dd>
<p>
   true$B$J$i$P(BSQL$BJ8$r%m%0=PNO$7$^$9!#$3$NLrL\$O(BPostgreSQL$B$N(B
   log_statement$B%*%W%7%g%s$H;w$F$$$F!"%G%P%C%0%*%W%7%g%s$,$J$$$H$-$G$b(B
   $BLd$$9g$o$;$r%m%0=PNO$7$FD4$Y$k$3$H$,$G$-$k$N$GJXMx$G$9!#(B
$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O@_Dj%U%!%$%k$r:FFI$_9~$_$7$F$/$@$5$$!#(B
</p>

<dt>log_per_node_statement
<dd>
<p>
   log_statement$B$H;w$F$$$^$9$,!"(BDB$B%N!<%IC10L$G%m%0$,=PNO$5$l$k$N$G!"%l%W%j%1!<%7%g%s$dIi2YJ,;6$N3NG'$,MF0W$G$9!#(B
$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O@_Dj%U%!%$%k$r:FFI$_9~$_$7$F$/$@$5$$!#(B
</p>

<dt>log_hostname
<dd>
<p>
   true$B$J$i$P!"(Bps$B%3%^%s%I$G$N>uBVI=<(;~$K(BIP$B%"%I%l%9$G$O$J$/!"%[%9%HL>(B
   $B$rI=<($7$^$9!#$^$?!"(Blog_connections$B$,M-8z$J>l9g$K$O%m%0$K%[%9%HL>$r(B
   $B=PNO$7$^$9!#(B
$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O@_Dj%U%!%$%k$r:FFI$_9~$_$7$F$/$@$5$$!#(B
</p>

<dt>log_connections
<dd>
<p>
   true$B$J$i$P!"A4$F$N%/%i%$%"%s%H@\B3$r%m%0$X=PNO$7$^$9!#(B
$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O@_Dj%U%!%$%k$r:FFI$_9~$_$7$F$/$@$5$$!#(B
</p>

<dt>enable_pool_hba
<dd>
<p>
   true$B$J$i$P!"(Bpool_hba.conf$B$K=>$C$F%/%i%$%"%s%HG'>Z$r9T$$$^$9!#(B
   $B>\:Y$O(B<a href="#hba">$B%/%i%$%"%s%HG'>Z(B(HBA)$B$N$?$a$N(Bpool_hba.conf$B@_Dj(B
   $BJ}K!(B</a>$B$r;2>H$7$F$/$@$5$$!#(B
$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O(B pgpool-II $B$r:F5/F0$7$F$/$@$5$$!#(B
</p>

<dt>backend_hostname
<dd>
<p>
$B;HMQ$9$k(BPostgreSQL$B%5!<%P$N%[%9%HL>$r;XDj$7$^$9!#6uJ8;z$r;XDj$9$k$H(BUNIX$B%I(B
$B%a%$%s%=%1%C%H$G@\B3$7$^$9!#(B
$B<B:]$K$O!"(B"backend_hostname"$B$N8e$K(B0, 1, 2...$B$H?t;z$rIU2C$7$F;HMQ$9$kJ#?t(B
$B$N(BPostgreSQL$B$r6hJL$7$^$9!#$3$N?t;z$N$3$H$r!V(BDB$B%N!<%I(BID$B!W$H8F$S$^$9!#(B
DB$B%N!<%I(BID == 0$B$N(BPostgreSQL$B$O!"FCJL$K!V%^%9%?!<(BDB$B!W$H8F$P$l$^$9!#(B
$B$J$*!"J#?t$N(BDB$B%N!<%I$r1?MQ$7$F$$$k>l9g!">r7o$K$h$C$F$O%^%9%?!<(BDB$B$,%@%&%s$7$F$b(B
$B1?MQ$rB3$1$k$3$H$,$G$-$^$9!#$3$N>l9g$O!"2TF/Cf$+$D(BDB$B%N!<%I(BID$B$,$b$C$H$b(B
$B<c$$$b$N$,?7$7$$%^%9%?!<(BDB$B$K$J$j$^$9!#(B
</p>
<p>
1$BBf$7$+(BPostgreSQL$B$r;HMQ$7$J$$>l9g$O!"(B"backend_hostname0"$B$H$7$F$/$@$5$$!#(B
</p>
<p>
backend_hostname $B$O?7$7$/DI2C$7$?9T$r@_Dj%U%!%$%k:FFI$_9~$_$GDI2C$9$k(B
$B$3$H$,$G$-$^$9!#$9$G$K$"$k>pJs$rESCf$GJQ99$9$k$3$H$O$G$-$^$;$s!#JQ99$9(B
$B$k>l9g$K$O(B pgpool-II $B$r:F5/F0$7$F$/$@$5$$!#(B
</p>

<dt>backend_port
<dd>
<p>
$B;HMQ$9$k(BPostgreSQL$B%5!<%P$N%]!<%HHV9f$r;XDj$7$^$9!#(B
$B<B:]$K$O!"(B"backend_port"$B$N8e$K(B0, 1, 2...$B$H(BDB$B%N!<%I(BID$B$rIU2C$7$F;HMQ$9$kJ#?t(B
$B$N(BPostgreSQL$B$r6hJL$7$^$9!#(B1$BBf$7$+(BPostgreSQL$B$r;HMQ$7$J$$>l9g$O!"(B
"backend_port0"$B$H$7$F$/$@$5$$!#(B
</p>

<p>
backend_port $B$O?7$7$/DI2C$7$?9T$r@_Dj%U%!%$%k:FFI$_9~$_$GDI2C$9$k(B
$B$3$H$,$G$-$^$9!#$9$G$K$"$k>pJs$rESCf$GJQ99$9$k$3$H$O$G$-$^$;$s!#JQ99$9(B
$B$k>l9g$K$O(B pgpool-II $B$r:F5/F0$7$F$/$@$5$$!#(B
</p>


<dt>backend_weight
<dd>
<p>
$B;HMQ$9$k(BPostgreSQL$B%5!<%P$KBP$9$kIi2YJ,;6$NHfN($r(B0$B0J>e$N@0?t$^$?$OIbF0>.?tE@$G;XDj$7$^$9!#(B
"backend_weight"$B$N8e$K$O!"(BDB$B%N!<%I(BID$B$rIU2C$7$F;HMQ$9$kJ#?t$N(BPostgreSQL$B$r6hJL$7$^$9!#(B
1$BBf$7$+(BPostgreSQL$B$r;HMQ$7$J$$>l9g$O!"(B"backend_weight0"$B$H$7$F$/$@$5$$!#(B
$BIi2YJ,;6$r;HMQ$7$J$$>l9g$O!"!V(B1$B!W$r@_Dj$7$F$/$@$5$$!#(B
</p>

<p>
backend_weight $B$O?7$7$/DI2C$7$?9T$r@_Dj%U%!%$%k:FFI$_9~$_$GDI2C$9$k$3$H$,$G$-$^$9!#(B
pgpool-II 2.2.6/2.3$B0J9_$G$O!"@_Dj%U%!%$%k$N:FFI9~$G(Bbackend_weight$BCM$rJQ99$G$-$^$9!#(B
$B?7$7$/@\B3$7$?%/%i%$%"%s%H%;%C%7%g%s$+$i!"$3$N?7$7$$(Bweight$BCM$,H?1G$5$l$^$9!#(B
</p>

<dt>backend_data_directory
<dd>
<p>
$B;HMQ$9$k(B PostgreSQL $B%5!<%P$N%G!<%?%Y!<%9%/%i%9%?$N%Q%9$r;XDj$7$^$9!#(B
$B<B:]$K$O!"(B"backend_data_directory"$B$N8e$K(BDB$B%N!<%I(BID$B$rIU2C$7$F;HMQ$9$kJ#(B
$B?t$N(BPostgreSQL$B$r6hJL$7$^$9!#(B
$B$3$N%Q%i%a!<%?$O%*%s%i%$%s%j%+%P%j$N:]$K;HMQ$7$^$9!#%*%s%i%$%s%j%+%P%j(B
$B$r;HMQ$7$J$$>l9g$K$O@_Dj$9$kI,MW$O$"$j$^$;$s!#(B
</p>

<p>
backend_data_directory $B$O?7$7$/DI2C$7$?9T$r@_Dj%U%!%$%k:FFI$_9~$_$GDI2C$9$k(B
$B$3$H$,$G$-$^$9!#$9$G$K$"$k>pJs$rESCf$GJQ99$9$k$3$H$O$G$-$^$;$s!#JQ99$9(B
$B$k>l9g$K$O(B pgpool-II $B$r:F5/F0$7$F$/$@$5$$!#(B
</p>

  <dt>ssl</dt>
  <dd>
      <p>
	 true$B$J$i$P(Bpgpool-II$B$H%U%m%s%H%(%s%I!"(Bpgpool-II$B$H%P%C%/%(%s%I$N4V$N(BSSL$B@\B3$,2DG=$K$J$j$^$9!#(B
	 $B$J$*!"(Bpgpool-II$B$H%U%m%s%H%(%s%I$N@\B3$K(BSSL$B$,MxMQ$G$-$k$?$a$K$O!"(B<code>ssl_key</code>$B$H(B<code>ssl_cert</code>$B$,@_Dj$5$l$F$J$1$l$P$J$j$^$;$s!#(B
      </p>

      <p>
	 $B%G%U%)%k%H$G$O(BSSL$B%5%]!<%H$O%*%U$K$J$C$F$$$^$9!#(BSSL$B%5%]!<%H$rM-8z$K$9$k$?$a$K$O!"(Bconfigure$B;~$K(BOpenSSL$B%5%]!<%H$rM-8z$K$9$kI,MW$,$"$j$^$9!#>\:Y$O(B<a href="#install">$B%$%s%9%H!<%k(B</a>$B$N9`L\$r$4Mw2<$5$$!#(B
      </p>

      <p>
	 ssl$B$rM-8z$K@_Dj$7$?$i!"(Bpgpool$B$N:F5/F0$r$7$F$/$@$5$$!#(B
      </p>
  </dd>

  <dt>ssl_key</dt>
  <dd>
      <p>
	 $B%U%m%s%H%(%s%I$H$N@\B3$K;HMQ$9$k%W%i%$%Y!<%H%-!<%U%!%$%k$N%U%k%Q%9$r;XDj$7$^$9!#(B
      </p>

      <p>
	 ssl_key$B$N%G%U%)%k%HCM$O$"$j$^$;$s!#(B
	 ssl_key$B$N@_Dj$,$J$$>l9g$O!"%U%m%s%H%(%s%I$H$N@\B3$G(BSSL$B$,;HMQ$5$l$J$/$J$j$^$9!#(B
      </p>
  </dd>

  <dt>ssl_cert</dt>
  <dd>
      <p>
	 $B%U%m%s%H%(%s%I$H$N@\B3$K;HMQ$9$k8x3+(Bx509$B>ZL@=q$N%U%k%Q%9$r;XDj$7$^$9!#(B
      </p>

      <p>
	 ssl_cert$B$N%G%U%)%k%HCM$O$"$j$^$;$s!#(B
	 ssl_cert$B$N@_Dj$,$J$$>l9g$O!"%U%m%s%H%(%s%I$H$N@\B3$G(BSSL$B$,;HMQ$5$l$J$/$J$j$^$9!#(B
      </p>
  </dd>

</dl>

<h4>SSL$B>ZL@=q$N@8@.(B</h4>
<p>
$B>ZL@=q$N07$$$K$D$$$F$O$3$N%^%K%e%"%k$NHO0O30$G$9!#(B
PostgreSQL$B%I%-%e%a%s%H(B<a href="http://www.postgresql.jp/document/pg842doc/html/ssl-tcp.html">SSL$B$K$h$k0BA4$J(BTCP/IP$B@\B3(B</a>$B$N>O$K<+J,$GG'>Z$9$k>ZL@=q$r:n@.$9$k%3%^%s%I$NNc$,$"$j$^$9!#(B
</p>

<h4><p>raw$B%b!<%I$K$*$1$k%U%'%$%k%*!<%PF0:n$K$D$$$F(B</p></h4>
<p>
raw$B%b!<%I$K$*$$$F!"(B2$BBf0J>e$N(BPostgreSQL$B%5!<%P$r;XDj$9$k$H!"%U%'%$%k%*!<%P(B
$B$,2DG=$G$9!#%U%'%$%k%*!<%P$G$O!"@5>o;~$K$O(Bbackend_hostname0$B$G;XDj$7$?(B
PostgreSQL$B$N$_$r;HMQ$7!"$[$+$N%5!<%P$K$O%"%/%;%9$7$^$;$s!#(B
backend_hostname0$B$N%5!<%P$,%@%&%s$9$k$H!"<!$K(Bbackend_hostname1$B$G;XDj$7$?(B
$B%5!<%P$K%"%/%;%9$r$3$3$m$_!"@.8y$9$l$P$=$l$r;HMQ$7$^$9!#0J2<!"(B
backend_hostname2...$B$G$bF1MM$K$J$j$^$9!#(B

</p>

<h3>$B%3%M%/%7%g%s%W!<%k%b!<%I(B</h3>
<p>
raw$B%b!<%I$K2C$(!"%3%M%/%7%g%s%W!<%j%s%0$,MxMQ$G$-$k$h$&$K$J$j$^$9!#(B
$B@_Dj9`L\$O!"(Braw$B%b!<%I$G$N@_Dj9`L\$NB>$K0J2<$r@_Dj$7$^$9!#(B
</p>

<dl>
<dt>max_pool
<dd>
<p>
   pgpool-II$B$N3F%5!<%P%W%m%;%9$,%-!<%W$9$k(BPostgreSQL$B$X$N:GBg%3%M%/%7%g%s(B
   $B?t$G$9!#(Bpgpool-II$B$O!"%f!<%6L>!"%G!<%?%Y!<%9$,F1$8$J$i$P%3%M%/%7%g%s$r(B
   $B:FMxMQ$7$^$9$,!"$=$&$G$J$1$l$P?7$?$K(BPostgreSQL$B$X$N%3%M%/%7%g%s$r3N(B
   $BN)$7$h$&$H$7$^$9!#$7$?$,$C$F!"$3$3$G$OA[Dj$5$l$k(B[$B%f!<%6L>(B:$B%G!<%?%Y!<(B
   $B%9L>(B]$B$N%Z%"$N<oN`$N?t$@$1$r(Bmax_pool$B$K;XDj$7$F$*$/I,MW$,$"$j$^$9!#$b(B
   $B$7(Bmax_pool$B$r;H$$$-$C$F$7$^$C$?>l9g$O0lHV8E$$%3%M%/%7%g%s$r@ZCG$7!"(B
   $B$=$N%9%m%C%H$,:FMxMQ$5$l$^$9!#(B

   max_pool$B$N%G%U%)%k%HCM$O(B4$B$G$9!#(B

   $B$J$*!"(Bpgpool-II$BA4BN$H$7$F$O!"(Bnum_init_children*max_pool $BJ,$@$1(B
   PostgreSQL$B$X$N%3%M%/%7%g%s$,D%$i$l$kE@$KCm0U$7$F$/$@$5$$!#(B

$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O(B pgpool-II $B$r:F5/F0$7$F$/$@$5$$!#(B
</p>

<dt>connection_life_time
<dd>
<p>
   $B%3%M%/%7%g%s%W!<%kCf$N%3%M%/%7%g%s$NM-8z4|4V$rICC10L$G;XDj$7$^$9!#(B0
   $B$r;XDj$9$k$HM-8z4|4V$OL58B$K$J$j$^$9!#(Bconnection_life_time$B$N%G%U%)(B
   $B%k%HCM$O(B0$B$G$9!#(B
$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O@_Dj%U%!%$%k$r:FFI$_9~$_$7$F$/$@$5$$!#(B
</p>

<dt>reset_query_list
<dd>
<p>
   $B%;%C%7%g%s$,=*N;$9$k$H$-$K%3%M%/%7%g%s$r=i4|2=$9$k$?$a$N(BSQL$B%3%^%s%I(B
   $B$r!V(B;$B!W$G6h@Z$C$FNs5s$7$^$9!#%G%U%)%k%H$O0J2<$N$h$&$K$J$C$F$$$^$9$,!"(B
   $BG$0U$N(BSQL$BJ8$rDI2C$7$F$b9=$$$^$;$s!#(B
<pre>
   reset_query_list = 'ABORT; DISCARD ALL'
</pre>

<p>
   PostgreSQL$B$N%P!<%8%g%s$K$h$C$F;HMQ$G$-$k(BSQL$B%3%^%s%I$,0c$$$^$9!#(B
   $B3F%P!<%8%g%s$4$H$N$*4+$a@_Dj$O0J2<$G$9(B($B$?$@$7!"(B"ABORT"$B$OI,$:%3%^%s%I$K4^$a$F$/$@$5$$(B)$B!#(B
</p>
<p>
<table border>
<tr><th>PostgreSQL$B%P!<%8%g%s(B</th><th>reset_query_list$B$N?d>)@_DjCM(B</th></tr>
<tr><td>7.1$B0JA0(B</td><td>ABORT</td></tr>
<tr><td>7.2$B$+$i(B8.2</td><td>ABORT; RESET ALL; SET SESSION AUTHORIZATION DEFAULT</td></tr>
<tr><td>8.3$B0J9_(B</td><td>ABORT; DISCARD ALL</td></tr>
</table>
</p>
<p>

<ul>
<li>$B!V(BABORT$B!W$O!"(BPostgreSQL 7.4$B0J>e$G$O%H%i%s%6%/%7%g%s%V%m%C%/$NCf$K$$(B
	 $B$J$$>l9g$K$OH/9T$5$l$^$;$s!#(B
</ul>

</p>

<p>
$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O@_Dj%U%!%$%k$r:FFI$_9~$_$7$F$/$@$5$$!#(B
</p>
</dd>

</dl>

<h4><p>$B%3%M%/%7%g%s%W!<%k%b!<%I$K$*$1$k%U%'%$%k%*!<%PF0:n$K$D$$$F(B</p></h4>
<p>
raw$B%b!<%I$HF1MM$NF0:n$r$7$^$9!#(B
</p>

<h3>$B%l%W%j%1!<%7%g%s%b!<%I(B</h3>
<p>
$B%l%W%j%1!<%7%g%s$rM-8z$K$9$k%b!<%I$G$9!#(B
raw$B%b!<%I!"%3%M%/%7%g%s%W!<%k%b!<%I$K2C$(!"0J2<$r@_Dj$7$^$9!#(B
</p>

<dl>
<dt>replication_mode
<dd>
<p>
   $B%l%W%j%1!<%7%g%s%b!<%I$GF0:n$5$;$k>l9g$O(Btrue$B$r;XDj$7$F$/$@$5$$!#%G(B
   $B%U%)%k%HCM$O(Bfalse$B$G$9!#(B
$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O(B pgpool-II $B$r:F5/F0$7$F$/$@$5$$!#(B
</p>

<dt>load_balance_mode
<dd>
<p>
   true$B$r;XDj$9$k$H%l%W%j%1!<%7%g%s%b!<%I$^$?$O%^%9%?!<%9%l!<%V%b!<%I$N:]$K!"(BSELECT$BJ8$r%m!<%I%P%i%s%9$7$F8!:w@-G=$r8~>e$5$;$k$3$H$,$G$-$^$9!#%G%U%)%k%HCM$O(Bfalse$B$G$9!#(B
$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O(B pgpool-II $B$r:F5/F0$7$F$/$@$5$$!#(B
</p>

<dt>replication_stop_on_mismatch
<dd>
<p>
   true$B$r;XDj$9$k$H%^%9%?!<(BDB$B$HB>$N(BDB$B%N!<%I$N4V$G%G!<%?$NIT0lCW$,$"$C$?>l9g(B
   $B$K6/@)E*$K=LB`1?E>$KF~$j$^$9!#$3$N%*%W%7%g%s$,(Bfalse$B$N>l9g$O!"3:Ev$N(B
   $BLd$$9g$o$;$r6/@)E*$K=*N;$9$k$@$1$KN1$a$^$9!#%G%U%)%k%HCM$O(Bfalse$B$G$9!#(B
</p>

<a name="replicate_select">
<dt>replicate_select
<dd>
<p>
   true $B$r@_Dj$9$k$H%m!<%I%P%i%s%9$5$l$J$$(B SELECT $BJ8$r%l%W%j%1!<%7%g%s(B
   $B$5$;$^$9!#$3$l$O(B pgpool-II 1.0 $B$^$G$N5sF0$HF1$8$K$J$j$^$9!#(Bfalse $B$r(B
   $B@_Dj$9$k$H(B SELECT $BJ8$r%^%9%?$N$_$KAw?.$7$^$9!#%G%U%)%k%HCM$O(B false
   $B$G$9!#(B
</p>
<p>
replicate_select$B!"(Bload_balance_mode$B!"(BSELECT$BLd9g$o$;$,L@<(E*$J%H%i%s%6%/%7%g%s%V%m%C%/$NFbB&$K$"$k$+$I$&$+$I$&$+$G!"%l%W%j%1!<%7%g%s%b!<%I$NF0:n$,JQ2=$7$^$9!#>\:Y$rI=$K<($7$^$9!#(B
</p>

<p>
<table border>

<tr>
<td>SELECT$B$,L@<(E*$J%H%i%s%6%/%7%g%s%V%m%C%/$NFbB&$K$"$k(B</td>
<td>Y</td>
<td>Y</td>
<td>Y</td>
<td>N</td>
<td>N</td>
<td>N</td>
<td>Y</td>
<td>N</td>
</tr>

<tr>
<td>replicate_select$B$,(Btrue</td>
<td>Y</td>
<td>Y</td>
<td>N</td>
<td>N</td>
<td>Y</td>
<td>Y</td>
<td>N</td>
<td>N</td>
</tr>

<tr>
<td>load_balance_mode$B$,(Btrue</td>
<td>Y</td>
<td>N</td>
<td>N</td>
<td>N</td>
<td>Y</td>
<td>N</td>
<td>Y</td>
<td>Y</td>
</tr>

<tr>
<td>$B7k2L(B(R:$B%l%W%j%1!<%7%g%s(B, M: $B%^%9%?$N$_$KAw?.!"(BL: $B%m!<%I%P%i%s%9$5$l$k(B</td>
<td>R</td>
<td>R</td>
<td>M</td>
<td>M</td>
<td>L</td>
<td>R</td>
<td>M</td>
<td>L</td>
</tr>
</table>
</p>

<dt>insert_lock
<dd>
<p>
   SERIAL$B7?$r;H$C$F$$$k%F!<%V%k$r%l%W%j%1!<%7%g%s$9$k$H!"(BSERIAL$B7?$NNs(B
   $B$NCM$,(BDB$B%N!<%I$N4V$G0lCW$7$J$/$J$k$3$H$,$"$j$^$9!#$3$NLdBj$O!"(B
   $B3:Ev%F!<%V%k$rL@<(E*$K%m%C%/$9$k$3$H$G2sHr$G$-$^$9(B($B$b$A$m$s%H%i%s%6(B
   $B%/%7%g%s$NJBNs<B9T@-$O5>@7$K$J$j$^$9$,(B)$B!#$7$+$7!"$=$N$?$a$K$O!"(B
</p>
<pre>
   INSERT INTO ...
</pre>

<p>
   $B$r(B
</p>

<pre>
   BEGIN;
   LOCK TABLE ...
   INSERT INTO ...
   COMMIT;
</pre>

<p>
   $B$K=q$-49$($J$1$l$P$J$j$^$;$s!#(Binsert_lock$B$r(Btrue$B$K$9$k$H<+F0E*$K%H%i(B
   $B%s%6%/%7%g%s$N3+;O!"%F!<%V%k%m%C%/!"%H%i%s%6%/%7%g%s$N=*N;$r9T$C$F(B
   $B$/$l$k$N$G!"$3$&$7$?<j4V$r>J$/$3$H$,$G$-$^$9!J$9$G$K%H%i%s%6%/%7%g(B
   $B%s$,3+;O$5$l$F$$$k>l9g$O(BLOCK TABLE...$B$@$1$,<B9T$5$l$^$9!K!#(B
   $B%F!<%V%k$G(BSERIAL$B7?$,;H$o$l$F$$$J$$>l9g$K$O!"%F!<%V%k$N%m%C%/$O9T$J$o$l$^$;$s!#(B
   $B$J$*!"$"$^$jI,MW$J$$$+$bCN$l$^$;$s$,!"%3%a%s%H$rMxMQ$7$F!"$3$N5sF0$r(B
   $B:Y$+$/@)8f$9$k$3$H$b$G$-$^$9!#(B
</p>

<ol>
<li>insert_lock$B$r(Btrue$B$K$7$F!"(BINSERT$BJ8$N@hF,$K(B/*NO INSERT LOCK*/$B%3%a(B
      $B%s%H$rDI2C$9$k!#$3$N%3%a%s%H$,$"$k$H!"%F!<%V%k%m%C%/$O9T$o$l$^$;(B
      $B$s!#(B

<li>insert_lock$B$r(Bfalse$B$K$7$F!"(BINSERT$BJ8$N@hF,$K(B/*INSERT LOCK*/$B%3%a%s(B
      $B%H$rDI2C$9$k!#$3$N%3%a%s%H$,$"$k$H!"$3$N(BINSERT$BJ8$KBP$7$F$N$_%F!<(B
      $B%V%k%m%C%/$,9T$o$l$^$9!#(B
</ol>

<p>
   insert_lock$B$N%G%U%)%k%HCM$O(Btrue$B$G$9!#(B

   $B$J$*!"(Binsert_lock$B$rM-8z$K$7$F(Bregression test$B$r<B9T$9$k$H!">/$/$H$b(B
   PostgreSQL 8.0$B$G$O(Btransactions, privileges, rules, alter_table$B$,(B
   fail$B$7$^$9!#(Brule$B$G$O!"(Bview$B$KBP$7$F(BLOCK$B$r$7$h$&$H$7$F$7$^$&$3$H!"(B
   $B$[$+$N$b$N$O(B
</p>
<pre>
   ! ERROR:  current transaction is aborted, commands ignored until end of transaction block
</pre>

<p>
   $B$H$$$&$h$&$J%a%C%;!<%8$,=P$F$7$^$&$?$a$G$9!#$?$H$($P!"(Btransactions 
   $B$G$O!"B8:_$7$J$$%F!<%V%k$KBP$7$F(BINSERT$B$r9T$&%F%9%H$,4^$^$l$F$*$j!"(B
   pgpool$B$,:G=i$KB8:_$7$J$$%F!<%V%k$KBP$7$F(BLOCK$B$r9T$&7k2L!"%(%i!<$K$J$C(B
   $B$F%H%i%s%6%/%7%g%s$,%"%\!<%H>uBV$K$J$j!"B3$/(BINSERT$B$G>e5-%(%i!<$,=P(B
   $B$F$7$^$$$^$9!#(B
</p>

<p>
$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O@_Dj%U%!%$%k$r:FFI$_9~$_$7$F$/$@$5$$!#(B
</p>


<dt>recovery_user
<dd>
<p>
   $B%*%s%i%$%s%j%+%P%j$r9T$&$?$a$N(B PostgreSQL $B%f!<%6L>$G$9!#(B
$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O@_Dj%U%!%$%k$r:FFI$_9~$_$7$F$/$@$5$$!#(B
</p>

<dt>recovery_password
<dd>
<p>
   $B%*%s%i%$%s%j%+%P%j$r9T$&$?$a$N(B PostgreSQL $B%f!<%6%Q%9%o!<%I$G$9!#(B
$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O@_Dj%U%!%$%k$r:FFI$_9~$_$7$F$/$@$5$$!#(B
</p>

<dt>recovery_1st_stage_command
<dd>
<p>
  $B:G=i$K%*%s%i%$%s%j%+%P%jCf$K5/F0$9$k%3%^%s%IL>$r;XDj$7$^$9!#%3%^%s%I(B
  $B%U%!%$%k$O%;%-%e%j%F%#>e$N4QE@$+$i%G!<%?%Y!<%9%/%i%9%?0J2<$K$"$k%3%^(B
  $B%s%I$d%9%/%j%W%H$N$_$r8F$S=P$7$^$9!#(B

  $BNc$($P!"(Brecovery_1st_stage_command = 'sync-command' $B$H@_Dj$7$F$"$k>l(B
  $B9g!"(B$PGDATA/sync-command $B$r5/F0$7$h$&$H$7$^$9!#(B

  recovery_1st_stage_command $B$r<B9T$7$F$$$k4V$O(B pgpool $B$G$O%/%i%$%"%s(B
  $B%H$+$i$N@\B3$r(B<b>$B@)8B$7$^$;$s(B</b>$B!#;2>H$d99?7$r9T$&$3$H$,$G$-$^$9!#(B
</p>
<p>
$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O@_Dj%U%!%$%k$r:FFI$_9~$_$7$F$/$@$5$$!#(B
</p>

<dt>recovery_2nd_stage_command
<dd>
<p>
  2 $B2sL\$N%*%s%i%$%s%j%+%P%jCf$K5/F0$9$k%3%^%s%IL>$r;XDj$7$^$9!#%3%^%s(B
  $B%I%U%!%$%k$O%;%-%e%j%F%#>e$N4QE@$+$i%G!<%?%Y!<%9%/%i%9%?0J2<$K$"$k%3(B
  $B%^%s%I$d%9%/%j%W%H$N$_$r8F$S=P$7$^$9!#(B

  $BNc$($P!"(Brecovery_2nd_stage_command = 'sync-command' $B$H@_Dj$7$F$"$k>l(B
  $B9g!"(B$PGDATA/sync-command $B$r5/F0$7$h$&$H$7$^$9!#(B

  recovery_2nd_stage_command $B$r<B9T$7$F$$$k4V$O(B pgpool $B$G$O%/%i%$%"%s(B
  $B%H$+$i@\B3!";2>H!"99?7=hM}$r0l@Z(B<b>$B<u$1IU$1$^$;$s(B</b>$B!#$^$?!"%P%C%A(B
  $B=hM}$J$I$K$h$C$F@\B3$7$F$$$k%/%i%$%"%s%H$,D9;~4VB8:_$7$F$$$k>l9g$K$O(B
  $B%3%^%s%I$r5/F0$7$^$;$s!#?7$?$J@\B3$r@)8B$7!"8=:_$N@\B3?t$,(B 0 $B$K$J$C$?;~E@(B
  $B$G%3%^%s%I$r5/F0$7$^$9!#(B
</p>
<p>
$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O@_Dj%U%!%$%k$r:FFI$_9~$_$7$F$/$@$5$$!#(B
</p>

<dt>recovery_timeout
<dd>
<p>
  pgpool$B$O!"%*%s%i%$%s%j%+%P%j$N:]$K$9$Y$F$N%/%i%$%"%s%H$,@\B3$r=*N;$9$k$^$GBT$A$^$9!#(B
  recovery_timeout$B$G$=$N:GBgBT$A;~4V$r;XDj$7$^$9!#C10L$OIC$G$9!#(B
  $BBT$A;~4V$,(Brecovery_timeout$B$r1[$($k$H!"%*%s%i%$%s%j%+%P%j$OCf;_$5$l!"DL>o$N>uBV$KLa$j$^$9!#(B
</p>
<p>
 $B%"%$%I%k>uBV$N%/%i%$%"%s%H$,<+J,$+$i@ZCG$9$k$N$rBT$A$?$/$J$$>l9g$O!"(Bclient_idle_limit_in_recovery$B$rMxMQ$9$k$3$H$b$G$-$^$9!#(B
</p>
</p>
<p>
recovery_timeout$B$O!"$3$NB>!"%*%s%i%$%s%j%+%P%j$N:G8e$K%j%+%P%jBP>]$N(BDB$B%N!<%I$G(Bpostmaster$B$r5/F0$9$k:]$NBT$A;~4V$K$bMxMQ$5$l$^$9!#(B
</p>
<p>
recovery_timeout$B$N%G%U%)%k%HCM$O(B90$BIC$G$9!#(B
recovery_timeout$B$r(B0$B$H$7$F$b%?%$%`%"%&%H$,L58z$K$J$k$o$1$G$O$J$/!"C1$KB(:B$K%?%$%`%"%&%H$9$k$@$1$G$9$N$GCm0U$7$F$/$@$5$$!#(B
$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O@_Dj%U%!%$%k$r:FFI$_9~$_$7$F$/$@$5$$!#(B
</p>

<dt>client_idle_limit_in_recovery
<dd>
<p>
  client_idle_limit$B$H;w$F$$$^$9$,!"$3$N%Q%i%a!<%?$O%j%+%P%j$N%;%+%s%I%9(B
  $B%F!<%8$G$N$_8zNO$,$"$j$^$9!#A02s%/%i%$%"%s%H$+$iMh$?%/%(%j$+$i!"(B
  client_idle_limit_in_recovery $BIC1[$($F$b<!$N%/%(%j$,FO$+$J$$>l9g$O!"%/(B
  $B%i%$%"%s%H$X$N@\B3$r6/@)E*$K@ZCG$7!"(B
  $B%j%+%P%j$N%;%+%s%I%9%F!<%8$N?J9T$,K832$5$l$k$N$rKI$.$^$9!#%G%U%)%k%HCM$O(B 0($BL58z(B)$B$G$9!#(B
$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O@_Dj%U%!%$%k$r:FFI$_9~$_$7$F$/$@$5$$!#(B
</p>

<dt>lobj_lock_table
<dd>
<p>
$B%i!<%8%*%V%8%'%/%H$N%l%W%j%1!<%7%g%s$r9T$$$?$$$H$-$K%m%C%/4IM}$K;H$&$?$a$N%F!<%V%kL>$r;XDj$7$^$9!#(B
$B$3$N%F!<%V%k$,;XDj$5$l$F$$$F!"%i!<%8%*%V%8%'%/%H$N:n@.MW5a$,%/%i%$%"%s%H$+$iAw?.$5$l!"(B
$B$+$D$=$NMW5a$NCf$K%i!<%8%*%V%8%'%/%H$N(BID$B$NL@<(E*$J;XDj$,4^$^$l$F$$$J$$>l9g(B($B$D$^$j!"(Blo_creat$B$G%i!<%8%*%V%8%'%/%H$r:n@.$9$k>l9g(B)$B!"(B
pgpool-II$B$O!"GSB>@)8f$N$?$a$K$3$N%F!<%V%k$r%m%C%/$7$?8e!"(B
$B%i!<%8%*%V%8%'%/%H$r3JG<$9$k%7%9%F%`%+%?%m%0(Bpg_largeobject$B$N%i!<%8%*%V%8%'%/%H$K3JG<$5$l$F$$$k(BID$B$N:GBgCM$r<h$j$@$7!"(B
$B$=$NCM(B+1$B$N(BID$B$r;H$C$F(Blo_create()$B$r8F$S=P$7$F%i!<%8%*%V%8%'%/%H$N:n@.$r9T$$$^$9(B(lo_create()$B$r;}$?$J$$%P!<%8%g%s(B8.1$B$h$jA0$N(BPostgreSQL$B$G$O$3$N=hM}$O9T$o$l$^$;$s(B)$B!#(B
$B$3$NJ}K!$K$h$j!"$9$Y$F$N(BDB$B%N!<%I$GF1$8(BID$B$r;}$D%i!<%8%*%V%8%'%/%H$,:n@.$5$l$k$3$H$,J]>Z$5$l$^$9!#(B
</p>
<p>
$B$3$N$h$&$J=hM}$NBP>]$H$J$k%i!<%8%*%V%8%'%/%H$NA`:n$O!"(BPostgreSQL$B$N(BC$B8@8lMQ$N(BAPI(libpq)$B$G8@$&$H!"(Blo_creat()$B$G$9!#(B
2010$BG/(B2$B7n;~E@$N2f!9$ND4::$G$O!"0J2<$N8@8l$N%i!<%8%*%V%8%'%/%H:n@.(BAPI$B$O!"$9$Y$F(Blo_creat()$B$r8F$S=P$9$+!"(B
$B$^$?$O(Blo_creat()$B$HF1$8DL?.%W%m%H%3%k$r;H$C$F$$$k$N$G!"(Bpgpool-II$B$N>e5-$NA`:n$NBP>]$K$J$j!"%i!<%8%*%V%8%'%/%H$N%l%W%j%1!<%7%g%s$,0BA4$K9T$o$l$k$h$&$K$J$j$^$9!#(B
</p>
<p>
<ul>
<li>Java(JDBC$B%I%i%$%P(B)
<li>PHP(pg_lo_create$B4X?t!"$^$?$O(BPDO$B$J$I$N3:Ev(BAPI)
<li>psql$B$+$i(B\lo_import$B$r8F$S=P$9>l9g(B
</ul>
</p>
<p>
$B>e5-0J30$G$"$C$F$b!"%i!<%8%*%V%8%'%/%H$N:n@.(BAPI$B$G%i!<%8%*%V%8%'%/%H$N(BID$B$r0z?t$H$7$FEO$9$h$&$K$J$C$F$$$J$$$b$N$O4V0c$$$J$/(Blo_creat()$B$r;H$C$F$*$j!"(Bpgpool-II$B$N>e5-$NA`:n$NBP>]$K$J$k$H9M$($FNI$$$G$7$g$&!#(B
</p>

<p>
pgpool-II$B$N>e5-=hM}$NBP>]$H$J$i$J$$$h$&$J%i!<%8%*%V%8%'%/%H$N:n@.=hM}$O0J2<$N$b$N$G$9!#(B
</p>
<p>
<ul>
<li>libpq$B$N(Blo_create()$B$r;HMQ$7$F$$$k(B
<li>C$B8@8l0J30$N(BAPI$B$G!"(Blo_create()$B$r;HMQ$7$F$$$k$b$N(B
<li>$B%P%C%/%(%s%I4X?t$N(Blo_import$B$r(BSELECT$B$G8F$S=P$9>l9g(B
<li>$B%P%C%/%(%s%I4X?t$N(Blo_creat$B$r(BSELECT$B$G8F$S=P$9>l9g(B
</ul>
</p>
<p>
lobj_lock_table$B$G;XDj$9$k%F!<%V%k$O$I$N$h$&$JDj5A$N$b$N$G$b9=$$$^$;$s$,!"(B
$B$"$i$+$8$a:n@.:Q$G$+$D$9$Y$F$N%f!<%6$,=q$-9~$_2DG=$G$J$1$l$P$J$j$^$;$s!#(B
$B$=$N$h$&$J%F!<%V%k$r:n$kNc$r<($7$^$9!#(B
</p>
<p>
<pre>
CREATE TABLE public.my_lock_table ();
GRANT ALL ON public.my_lock_table TO PUBLIC;
</pre>
</p>
<p>
$B$3$NA`:n$O(Bpgpool-II$B7PM3$G@\B3$9$k$9$Y$F$N%G!<%?%Y!<%9$KBP$7$F!"$"$i$+$8$a<B;\$7$F$*$+$J$1$l$P$J$j$^$;$s!#(B
$B$7$+$7!"$3$NA`:n$r(Btemplate1$B%G!<%?%Y!<%9$KBP$7$F0lEY9T$C$F$*$1$P!"0J8e:n@.$5$l$k%G!<%?%Y!<%9$K$O$3$N%F!<%V%k$,4^$^$l$k$h$&$K$J$k$N$G!"4IM}$N<j4V$,>J$1$^$9!#(B
</p>
<p>
lobj_lock_table$B$K;XDj$9$k%F!<%V%kL>$,6uJ8;z$N>l9g$O!"%i!<%8%*%V%8%'%/%H$K4X$9$k>e5-$N=hM}$O9T$$$^$;$s(B
($B$7$?$,$C$F!"%i!<%8%*%V%8%'%/%H$N%l%W%j%1!<%7%g%s$OJ]>Z$5$l$^$;$s(B)$B!#(B
lobj_lock_table$B$N%G%U%)%k%HCM$O6uJ8;z$G$9!#(B
</p>

</dl>

<h4><p>$B%m!<%I%P%i%s%9$N>r7o$K$D$$$F(B</p></h4>
<p>
load_balance_mode = true $B$r@_Dj$7$?>l9g!"0J2<$N>r7o$N$9$Y$F$rK~$?$7$?;~$K(BSELECT$B$J$I$NLd$$9g$o$;$,%m!<%I%P%i%s%9$5$l$^$9!#(B
<ul>
<li>PostgreSQL$B$N%P!<%8%g%s$,(B7.4$B0J9_$G$"$k(B
<li>$BLd$$9g$o$;$,L@<(E*$J%H%i%s%/%6%7%g%s%V%m%C%/$NFbB&$K$J$$(B($B$D$^$j!"(BBEGIN$B$rH/9T$7$F$$$J$$(B)
<li>SELECT$BJ8(B(WITH$BIU$b4^$`!#(BSELECT nextval $B$H(B SELECT setval $B$O=|$/(B)$B$^$?$O(BCOPY TO STDOUT, EXPLAIN, EXPLAIN ANALYZE SELECT... $B$N$$$:$l$+$G$"$k(B
<li>SELECT INTO $BJ8$G$O$J$$(B
<li>SELECT FOR UPDATE/SELECT FOR SHARE$BJ8$G$O$J$$(B
<li>$B%/%(%jJ8;zNs$,(B SELECT$B$^$?$O(BWITH $B$G;O$^$k(B(ignore_leading_white_space = true$B$N>l9g$O6uGr$OL5;k$7$^$9(B)
</ul>
</p>
<p>

(<a href="#replicate_select">replicate_select$B$N9`L\(B</a>$B$b;29M$K$7$F$/$@$5$$(B)
$B$^$?!"(B<a href="load_balance.png">$B>\:Y$JH=Dj>r7o$r%U%m!<%A%c!<%H$K$7$?$b$N(B</a>$B$b$4Mw2<$5$$!#(B

$B$J$*!"(B
<pre>
  /*REPLICATION*/ SELECT ...
</pre>
</p>
<p>
$B$H$9$k$3$H$K$h$C$F!"K\MhIi2YJ,;6$5$l$?$j!"%^%9%?$N$_$KAw?.$5$l$k$Y$-Ld9g$o$;$,$9$Y$F$N%P%C%/%(%s%I$KAw?.$5$l$k!J%l%W%j%1!<%7%g%s$5$l$k!K$h$&$K$J$j$^$9!#I{:nMQ$,$"$k4X?t$r4^$`Ld9g$o$;$KBP$7$F$O$3$N%F%/%K%C%/$,MxMQ$G$-$^$9!#(B
</p>

<p>
<font color="red">
$BCm0U(B: JDBC $B%I%i%$%P$J$I$N$h$&$K!"%I%i%$%PFb$G(B autocommit $B$NM-8z!&L58z$N%*%W%7%g%s$,$"$k>l9g!"(B
autocommit $B$rL58z$K$9$k$H!"(Bpgpool$B$,FbIt$G(B BEGIN $B%3%^%s%I$r<B9T$9$k4X78>e!"@5$7$/%m!<%I%P%i%s%9$5$l$J$$2DG=@-$,$"$j$^$9!#(B
$B%/%(%j$r%m!<%I%P%i%s%9$5$;$?$$>l9g$O(B autocommit $B$rM-8z$K$7$F$/$@$5$$!#(B
$B$?$H$($P(BJDBC$B$G$"$l$P(B setAutoCommit(true) $B$r<B9T$7$F$/$@$5$$!#(B
</font>
</p>

<h4><p>$B%l%W%j%1!<%7%g%s%b!<%I$K$*$1$k=LB`1?E>$K$D$$$F(B</p></h4>
<p>
PostgreSQL$B%5!<%P$N$&$A!"(B1$BBf$,%@%&%s$9$k$H!"$=$N%5!<%P$r@Z$jN%$7$F=LB`1?(B
$BE>$KF~$j$^$9!#(B1$BBf$G$b%5!<%P$,@8$-;D$C$F$$$l$P!"%7%9%F%`$H$7$F$N1?MQ$r7Q(B
$BB3$G$-$^$9!#(B
</p>

<h4><p>$B%l%W%j%1!<%7%g%s%b!<%I8GM-$N%(%i!<$K$D$$$F(B</p></h4>
<p>
$B%G!<%?$N@09g@-$rJ]$D$?$a$K!"(Bpgpool$B$O%l%W%j%1!<%7%g%s;~$K(B INSERT, UPDATE,
DELETE $B$N99?77o?t$,$9$Y$F$N%N!<%I$,F1$8$G$J$$>l9g!"0U?^E*$K9=J8%(%i!<$r5/$9(BSQL$B$rAw?.$9$k$3$H$K$h$C$F!"%H%i%s%6%/%7%g%s$r%"%\!<%H$5$;$^$9(B($B%U%'%$%k%*!<%P$O5/$-$^$;$s(B)$B!#0J2<$N$h$&$J46$8$K$J$j$^$9!#(B
<pre>
   =# UPDATE t SET a = a + 1;
   ERROR: pgpool detected difference of the number of update tuples
   HINT: check data consistency between master and other db node
</pre>

</p>

<h3>$B%^%9%?!<%9%l!<%V%b!<%I(B</h3>
<p>
  master/slave$B%b!<%I$O!"(BSlony-I$B$N$h$&$J!"(Bmaster/slave$B<0$N%l%W%j%1!<%7%g(B
  $B%s%=%U%H$K%l%W%j%1!<%7%g%s$r$^$+$;$k%b!<%I$G$9!#$3$N%b!<%I$G;H$&$?$a$K(B
  $B$O!"%l%W%j%1!<%7%g%s%b!<%I$HF1$8$h$&$K!"(BDB$B%N!<%I$N%[%9%H>pJs(B
  $B$r%;%C%H$7!"(Bmaster_slave_mode$B$H(Bload_balance_mode$B$r(Btrue$B$K$7$^$9!#$3$N$H(B
  $B$-!"Ld$$9g$o$;$K$h$C$F%^%9%?!<(BDB$B$@$1$KLd$$9g$o$;$,Aw$i$l$k>l9g$H!"(BDB
  $B%N!<%I$N4V$G%m!<%I%P%i%s%9$5$l$FLd$$9g$o$;$,Aw$i$l$k>l9g$,$"$j$^$9!#(B
  $B%m!<%I%P%i%s%9$N>r7o$O%l%W%j%1!<%7%g%s%b!<%I$HF1$8$G$9!#(B
</p>

<p>
$B%^%9%?%9%l!<%V%b!<%I$G$O!"0l;~%F!<%V%k$N:n@.!"99?7$O%^%9%?%N!<%I$G$N$_<B9T$5$l$^$9!#(B
$B0l;~%F!<%V%k$X$N8!:w$O!"(BSELECT$BJ8$NA0$K(B/*NO LOAD BALANCE*/$B$H$$$&%3%a%s%H$r=q$/$3$H$K$h$C$F<B9T$G$-$^$9!#(B
</p>
<p>
$B%^%9%?!<%9%l!<%V%b!<%I$G$O!"(Bpgpool.conf$B$N(Breplication_mode$B$r(Bfalse$B$K!"(Bmaster_slave_mode
$B$r(Btrue$B$K$7$^$9!#(B
$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O(B pgpool-II $B$r:F5/F0$7$F$/$@$5$$!#(B
</p>

<h3>$B%Q%i%l%k%b!<%I(B</h3>
<p>
$B%Q%i%l%k%/%(%j5!G=$,MxMQ$G$-$k%b!<%I$G$9!#%F!<%V%k$rJ,3d$5$;!"3F%N!<%I$K%G!<%?(B
$B$r;}$?$;$k$3$H$,$G$-$^$9!#$^$?%l%W%j%1!<%7%g%s$dIi2YJ,;65!G=$bF1;~$K;H$&$3$H$,(B
$B$G$-$^$9!#(B

$B%Q%i%l%k%b!<%I$G$O!"(Bpgpool.conf$B$N(Breplication_mode$B$^$?$O(Bloadbalance_mode$B$K(Btrue
$B$r@_Dj$7!"(Bmaster_slave $B$r(Bfalse$B$K$7!"(Bparallel_mode $B$r(Btrue$B$K$7$^$9!#(B
$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O(B pgpool-II $B$r:F5/F0$7$F$/$@$5$$!#(B
</p>
<p>
<b>$B%7%9%F%`(BDB$B$N@_Dj(B</b>
</p>
<p>
$B%Q%i%l%k%b!<%I$rMxMQ$9$k$?$a$K$O!"%7%9%F%`(BDB$B$r@_Dj$9$kI,MW$,$"$j$^$9!#(B
$B%7%9%F%`(BDB$B$O%G!<%?$r3F(BPostgreSQL$B%5!<%P$GJ,3d$9$k$?$a$N%k!<%k$r(B
PostgreSQL$B$N%F!<%V%k$N7A$GJ];}$7$^$9!#%7%9%F%`(BDB$B$O(Bpgpool$B$,F0:n$9$k%[%9%H(B
$B$HF1$8%[%9%H$KCV$/I,MW$O$"$j$^$;$s!#%7%9%F%`(BDB$B$N@_Dj$O(Bpgpool.conf$B$G9T$$(B
$B$^$9!#(B
</p>

<dl>
<dt>system_db_hostname
<dd>
<p>
$B%7%9%F%`(BDB$B$,F0$$$F$$$k%[%9%HL>$G$9!#6uJ8;z$r;XDj$9$k$H!"(BUNIX$B%I%a%$%s%=%1%C(B
$B%H$G@\B3$7$^$9!#(B
$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O(B pgpool-II $B$r:F5/F0$7$F$/$@$5$$!#(B
</p>

<dt>system_db_port
<dd>
<p>
$B%7%9%F%`(BDB$B$N%]!<%HHV9f$G$9!#$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O(B pgpool-II
$B$r:F5/F0$7$F$/$@$5$$!#(B
</p>

<dt>system_dbname
<dd>
<p>
$B%7%9%F%`(BDB$B$O@lMQ$N%G!<%?%Y!<%9$K@_CV$7$^$9!#$=$N%G!<%?%Y!<%9L>$r;XDj$7$^$9!#(B
$B$3$N%G!<%?%Y!<%9$O$"$i$+$8$aB8:_$7$J$1$l$P$J$j$^$;$s!#$3$3$G$O!"(B
"pgpool"$B$H$$$&%G!<%?%Y!<%9L>$K$9$k$b$N$H$7$^$9!#(B
$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O(B pgpool-II $B$r:F5/F0$7$F$/$@$5$$!#(B
</p>

<dt>system_db_schema
<dd>
<p>
$B%7%9%F%`(BDB$B$O@lMQ$N%9%-!<%^$K@_CV$7$^$9!#$=$N%9%-!<%^L>$r;XDj$7$^$9!#(B
$B$3$N%9%-!<%^$O$"$i$+$8$aB8:_$7$J$1$l$P$J$j$^$;$s!#$3$3$G$O!"(B
"pgpool_catalog"$B$H$$$&%9%-!<%^$K$9$k$b$N$H$7$^$9!#(B
$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O(B pgpool-II $B$r:F5/F0$7$F$/$@$5$$!#(B
</p>

<dt>system_db_user
<dd>
<p>
$B%7%9%F%`(BDB$B$K@\B3$9$k$H$-$N%f!<%6L>$G$9!#(B
$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O(B pgpool-II $B$r:F5/F0$7$F$/$@$5$$!#(B
</p>

<dt>system_db_password
<dd>
<p>
$B%7%9%F%`(BDB$B$K@\B3$9$k$H$-$N%Q%9%o!<%I$G$9!#%Q%9%o!<%I$r@_Dj$7$F$$$J$$>l9g(B
$B$O6uJ8;z$K$7$F$*$-$^$9!#(B
$B$3$N%Q%i%a!<%?$rJQ99$7$?;~$K$O(B pgpool-II $B$r:F5/F0$7$F$/$@$5$$!#(B
</p>

</dl>

<h4><p>$B%7%9%F%`(BDB$B$N=i4|@_Dj(B</p></h4>
<p>
$B%7%9%F%`(BDB$B$K%9%-!<%^$H%F!<%V%k$r:n@.$7$^$9!#=i4|@_DjMQ$N%9%/%j%W%H$,(B
$prefix/share/system_db.sql$B$K$"$k$N$G$=$l$rMxMQ$7$^$9!#$?$@$7!"$3$N%9%/(B
$B%j%W%H$G$O%9%-!<%^L>$,(B"pgpool_catalog"$B$H$J$C$F$$$k$N$G!"0c$&%9%-!<%^$r;H(B
$B$&>l9g$OE,Ev$K=q$-49$($F$/$@$5$$!#$^$?!"%G!<%?%Y!<%9L>$H$7$F(B"pgpool"$B0J30(B
$B$r;H$&>l9g$O0J2<$rE,Ev$KFI$_BX$($F$/$@$5$$!#(B
<p>
psql -f $prefix/share/system_db.sql pgpool
</p>

<h4><p>dblink$B$N%$%s%9%H!<%k(B</p></h4>
<p>
$B%Q%i%l%k%b!<%I$G$O(Bdblink$B$r;H$$$^$9!#(Bdblink$B$O(BPostgreSQL$B%=!<%9%U%!%$%k(B
($POSTGRES_SRC)
</p>
<pre>
$(POSTGRES_SRC)/contrib/dblink
</pre>
<p>
$B$K$"$j$^$9!#(B$POSTGRES_SRC/contrib/dblink/README.dblink$B$r;29M$K%7%9%F%`(B
DB$B$K(Bdblink$B$r%$%s%9%H!<%k$7$F$/$@$5$$!#(B
$B$^$?!"(Bpgpool$B%G!<%?%Y!<%9$K4X?t$NEPO?$,I,MW$G$9!#(B
</p>
<pre>
psql pgpool < $POSTGRES_SRC/contrib/dblink/dblink.sql
</pre>

<h4><p>$B%3%M%/%7%g%s?t$N@_Dj(B</p></h4>
<p>
$B%Q%i%l%k%b!<%I$G$O!"%/%(%j$K$h$j%7%9%F%`(BDB$B$+$i(Bdblink$B7PM3$G(Bpgpool$B$K@\B3(B
$B$9$k$N$G!"A[Dj$5$l$kF1;~@\B3?t0J>e$N%3%M%/%7%g%s$,I,MW$K$J$k>l9g$,$"$j(B
$B$^$9!#$=$N$?$a!"(Bpgpool.conf$B$N(Bnum_init_children$B$K$OF1;~@\B3?t$h$j==J,Bg(B
$B$-$$CM$r@_Dj$7$F2<$5$$!#(B
</p>
<p>
$BL\0B$H$7$F0J2<$N<0$G(Bnum_init_children$B$r@_Dj$7$F$/$@$5$$!#(B
</p>
<pre>
num_init_children = $BA[Dj$5$l$kF1;~@\B3?t(B * ( 1 + $B%/%(%j$NCf$G;H$o$l$F$$$k%F!<%V%k$N:GBg?t(B)
</pre>

<h4><p>$B%G!<%?J,3d%k!<%k$NEPO?(B</p></h4>
<p>
$B%G!<%?J,3d$r9T$&%F!<%V%k$KBP$7$F$O!"%F!<%V%k>pJs$r$"$i$+$8$a(B pgpool_catalog.dist_def 
$B$H$$$&%F!<%V%k$KEPO?$7$F$*$-$^$9!#(B
</p>

<pre>
CREATE TABLE pgpool_catalog.dist_def(
	dbname TEXT,	-- DB$BL>(B
	schema_name TEXT,	--schema$BL>(B
	table_name TEXT,	-- $B%F!<%V%kL>(B
	col_name TEXT NOT NULL CHECK (col_name = ANY (col_list)),	-- $BJ,;6%-!<NsL>(B
	col_list TEXT[] NOT NULL,	-- table$B$NB0@-L>(B
	type_list TEXT[] NOT NULL,	-- $BB0@-$N%?%$%WL>(B
	dist_def_func TEXT NOT NULL,	-- $BJ,;6@h$N(BDB$B%N!<%I$r7hDj$9$k4X?tL>(B
	PRIMARY KEY (dbname,schema_name,table_name)
);
</pre>
<h4><p>$B%l%W%j%1!<%7%g%s%F!<%V%k$N%k!<%kEPO?(B</p></h4>
<p>
$B0l$D$N(BSQL$BJ8$K(BJOIN$BEy$G%G!<%?J,3d%k!<%k$KEPO?$7$?%F!<%V%k$H6&$K(B
$B%l%W%j%1!<%7%g%s$r9T$&%F!<%V%k$r;XDj$9$k>l9g$K$O!"%l%W%j%1!<%7%g%s(B
$B$r9T$&%F!<%V%k$N>pJs$r$"$i$+$8$a!"(Bpgpool_catalog.replicate_def 
$B$H$$$&%F!<%V%k$KEPO?$7$F$*$-$^$9!#(B
</p>

<pre>
CREATE TABLE pgpool_catalog.replicate_def(
	dbname TEXT,	-- DB$BL>(B
	schema_name TEXT,	--schema$BL>(B
	table_name TEXT,	-- $B%F!<%V%kL>(B
	col_list TEXT[] NOT NULL,	-- table$B$NB0@-L>(B
	type_list TEXT[] NOT NULL,	-- $BB0@-$N%?%$%WL>(B
	PRIMARY KEY (dbname,schema_name,table_name)
);
</pre>

</p>

<p>
pgbench$B$N%F!<%V%k$rJ,3d$9$k%k!<%k$NNc$r<($7$^$9!#(B
</p>
<p>
$B$3$NNc$G$O!"(Baccounts$B%F!<%V%k$KBP$7$F$OJ,3d$r9T$$!"(Bbranches$B%F!<%V%k(B
$B$H(Btellers$B%F!<%V%k$KBP$7$F$O%l%W%j%1!<%7%g%s$r9T$&$3$H$K$7$^$9!#(B
$B$^$?!"(Baccounts$B%F!<%V%k$H(Bbanches$B%F!<%V%k$O(Bbid$B$G7k9g$5$l$k$3$H$rA[Dj$7(B
branches$B%F!<%V%k$O%l%W%j%1!<%7%g%s%F!<%V%k$N%k!<%kEPO?$r9T$$$^$9!#(B

$B$b$7!"(Baccounts$B%F!<%V%k!"(Bbranches$B%F!<%V%k$H(Btellers$B%F!<%V%k$N#3$D$N(B
$B%F!<%V%k$N7k9g$,9T$o$l$k>l9g$K$O!"$"$i$+$8$a(Btellers$B%F!<%V%k$KBP$7$F$b(B
$B%l%W%j%1!<%7%g%s%F!<%V%k$N%k!<%kEPO?$r9T$&I,MW$,$"$j$^$9!#!!(B
</p>


<pre>
INSERT INTO pgpool_catalog.dist_def VALUES (
	'pgpool',
	'public',
	'accounts',
	'aid',
	ARRAY['aid','bid','abalance','filler'],
	ARRAY['integer','integer','integer','character(84)'],
	'pgpool_catalog.dist_def_accounts'
);

INSERT INTO pgpool_catalog.replicate_def VALUES (
	'pgpool',
	'public',
	'branches',
	ARRAY['bid','bbalance','filler'],
	ARRAY['integer','integer','character(84)']
);
</pre>

<p>
$B$3$3$G!"(Bpgpool_catalog.dist_def_accounts$B$O!"0z?t$H$7$FJ,3d%-!<$NCM$r<u$1<h$j!"(B
$B$I$N(BPostgreSQL$B%5!<%P(B($B!V(BDB$B%N!<%I!W$H8F$S$^$9(B)$B$r(B0$B$+$i$NHV9f$GJV$94X?t$G$9!#$3(B
$B$3$G$O!"(B3$BBf$N(BDB$B%N!<%I$K%G!<%?$rJ,3d$9$k4X?t$NNc$r<($7$^$9!#(B
</p>
<pre>
CREATE OR REPLACE FUNCTION pgpool_catalog.dist_def_accounts (val ANYELEMENT) RETURNS INTEGER AS '
  SELECT CASE WHEN $1 >= 1 and $1 <= 30000 THEN 0
	      WHEN $1 > 30000 and $1 <= 60000 THEN 1
	      ELSE 2
  END' LANGUAGE SQL;
</pre>

<h2><a name="hba"></a>$B%/%i%$%"%s%HG'>Z(B(HBA)$B$N$?$a$N(B pool_hba.conf $B@_DjJ}K!(B</h2>
<p>
   PostgreSQL$B$N(Bpg_hba.conf$B$HF1$8$h$&$K(Bpgpool$B$G$b(Bpool_config.conf$B%U%!%$(B
   $B%k$r;H$C$?%/%i%$%"%s%HG'>Z$,%5%]!<%H$5$l$F$$$^$9!#(B
</p>
<p>
   pgpool$B$r%$%s%9%H!<%k$9$k$H%G%U%)%k%H%$%s%9%H!<%k@h$N@_Dj%U%!%$%k%G%#(B
   $B%l%/%H%j(B"/usr/local/etc"$B$K(Bpool_hba.conf.sample$B$,0l=o$K%$%s%9%H!<%k(B
   $B$5$l$^$9!#$3$N(Bpool_hba.conf.sample$B%U%!%$%k$r(Bpool_hba.conf$B$H$7$F%3%T!<(B
   $B$7!"I,MW$G$"$l$PJT=8$7$F$/$@$5$$!#%G%U%)%k%H$G$O(Bpool_hba$B$K$h$kG'>Z$OM-(B
   $B8z$K$J$C$F$$$^$9!#(B
</p>
<p>
   pool_hba.conf$B$N%U%)!<%^%C%H$O(Bpg_hba.conf$B$N$b$N$H$[$H$s$IF1$8$G$9!#(B
</p>
<pre>
     local      DATABASE  USER  METHOD  [OPTION]
     host       DATABASE  USER  CIDR-ADDRESS  METHOD  [OPTION]
</pre>
<p>
   $B3F%U%#!<%k%I$G@_Dj$G$-$kCM$N>\:Y$O(B"pool_hba.conf.sample"$B$r;2>H$7$F(B
   $B$/$@$5$$!#(B
</p>
<p>
   $B0J2<$O(Bpool_hba$B$N@)8B;v9`$G$9!#(B

<ul>
<li>"hostssl"$B@\B3%?%$%W$O%5%]!<%H$5$l$^$;$s(B</li>
<p>
     $B8=:_(Bpgpool$B$O(BSSL$B@\B3$r%5%]!<%H$7$F$$$J$$$N$G(B"hostssl"$B$O;XDj$9$k$3(B
     $B$H$,$G$-$^$;$s!#(B
</p>
<li>DATABASE$B%U%#!<%k%ICM$H$7$F(B"samegroup"$B$O%5%]!<%H$5$l$^$;$s(B</li>
<p>
     pgpool$B$O%P%C%/%(%s%I%5!<%P$K$"$k%f!<%6>pJs$r;vA0$KCN$k;v$,$G$-$J(B
     $B$$$?$a!"%G!<%?%Y!<%9L>$O(Bpool_hba.conf$B$K$"$kCM$N$_$HHf3S$5$l$^$9!#(B
     $B$J$N$G%0%k!<%W$K4X$9$kG'>Z$O(Bpool_hba$B$G9T$&$3$H$,$G$-$^$;$s!#(B
</p>
<li>USER$B%U%#!<%k%ICM$H$7$F(B"+"$B$r;H$C$?%0%k!<%W;XDj$O%5%]!<%H$5$l$^$;$s(B</li>
<p>
     $B>e5-$N(B"samegroup"$B$HF1$8M}M3$G!"%f!<%6L>$O(Bpool_hba.conf$B$K$"$kCM$N(B
     $B$_$HHf3S$5$l$^$9!#%0%k!<%W$K4X$9$kG'>Z$O(Bpool_hba$B$G9T$&$3$H$O$G$-(B
     $B$^$;$s!#(B
</p>
<li>IPv6$B%"%I%l%9(B/$B%^%9%/I=5-K!$O%5%]!<%H$5$l$^$;$s(B</li>
<p>
     $B8=:_(Bpgpool$B$O(BIPv6$B$r%5%]!<%H$7$F$$$^$;$s!#(B
</p>
<li>"trust", "reject", "pam"$B0J30$N%a%=%C%I$O%5%]!<%H$5$l$^$;$s(B</li>
<p>
     $B$3$l$b>e5-$N(B"samegroup"$B$HF1$8M}M3$K$h$k$b$N$G$9!#(Bpgpool$B$O%P%C%/%((B
     $B%s%I$N%f!<%6(B/$B%Q%9%o!<%I>pJs$r;}$C$F$$$J$$$N$G!"%P%C%/%(%s%I$KJ]B8(B
     $B$5$l$F$$$k%Q%9%o!<%I$r;H$C$?G'>Z$r9T$&$3$H$,$G$-$^$;$s!#(B
</p>
</ul>
</p>
<p>
   $B$3$3$G@bL@$5$l$?5!G=!"@)8B$O%/%i%$%"%s%H$H(Bpgpool$B4V$G9T$o$l$k%/%i%$(B
   $B%"%s%HG'>Z$K$D$$$F$@$H$$$&$3$H$KCm0U$7$F$/$@$5$$!#%/%i%$%s%"%s%H$O(B
   pgpool$B$N%/%i%$%"%s%HG'>Z$K@.8y$7$?$H$7$F$b!"(BPostgreSQL$B$K$h$k%/%i%$(B
   $B%"%s%HG'>Z$K@.8y$7$J$$$H@\B3>uBV$H$J$j$^$;$s!#(Bpool_hba$B$K$H$C$F$O%/(B
   $B%i%$%"%s%H$K;XDj$5$l$?%f!<%6L>$d%G!<%?%Y!<%9L>(B
   ($BNc(B. psql -U testuser testdb)$B$,<B:]$K%P%C%/%(%s%I>e$KB8:_$9$k$+$I$&(B
   $B$+$OLdBj$G$O$"$j$^$;$s!#$=$l$,(Bpool_hba.conf$B$NCM$H%^%C%A$9$k$+$I$&$+(B
   $B$G%A%'%C%/$,9T$o$l$^$9!#(B
</p>
<p>
   pgpool$B$,2TF/$9$k%[%9%H>e$N%f!<%6>pJs$r;H$C$?(BPAM$BG'>Z$rMxMQ$9$k$3$H$,(B
   $B$G$-$^$9!#(Bpgpool$B$r(BPAM$B%5%]!<%HIU$-$G%S%k%I$9$k$K$O(Bconfigure$B%*%W%7%g(B
   $B%s$K(B"--with-pam"$B$r;XDj$7$F$/$@$5$$!#(B
</p>
<pre>
     ./configure --with-pam
</pre>
<p>
   $B<B:]$K(BPAM$BG'>Z$rM-8z$K$9$k$K$O!"(Bpool_hba.conf$B$G(B"pam"$B%a%=%C%I$r@_Dj$9(B
   $B$k$N$K2C$(!"(Bpgpool$B$N%5!<%S%9@_Dj%U%!%$%k$r%7%9%F%`$N(BPAM$B@_Dj%G%#%l%/%H(B
   $B%j!JDL>o$O(B /etc/pam.d $B$K:n@.$9$kI,MW$,$"$j$^$9!#%5!<%S%9@_Dj%U%!%$(B
   $B%k$NNc$O%$%s%9%H!<%k%G%#%l%/%H%j$N(B"share/pgpool.pam"$B$r;29M$K$7$F$/(B
   $B$@$5$$!#(B
</p>

<h2>$B%/%(%j%-%c%C%7%e$N@_DjJ}K!(B</h2>

<p>
	pgpool-II$B$G$O!"$9$Y$F$N%b!<%I$G%/%(%j%-%c%C%7%e$rMxMQ$9$k$3$H$,$G$-$^$9!#(B
  $BMxMQ$9$k>l9g$K$O!"(Bpgpool.conf$B$N@_Dj$r0J2<$N$h$&$K@_Dj$7$^$9!#(B
<pre>
enable_query_cache = true
</pre>
<p>
$B$^$?!"%7%9%F%`(BDB$B$K0J2<$N%F!<%V%k$r:n@.$7$F$/$@$5$$!#(B
</p>
<pre>
CREATE TABLE pgpool_catalog.query_cache (
  hash TEXT,
  query TEXT,
  value bytea,
  dbname TEXT,
  create_time TIMESTAMP WITH TIME ZONE,
  PRIMARY KEY(hash, dbname)
);
</pre>
<p>
$B$?$@$7!"$3$NNc$G$O%9%-!<%^L>$,(B"pgpool_catalog"$B$H$J$C$F$$$k$N$G!"0c$&%9%-!<%^$r;H$&>l9g$OE,Ev$K=q$-49$($F$/$@$5$$!#(B
</p>


<h1>pgpool-II$B$N5/F0$HDd;_(B<a name="start"></a></h1>
<p>
$B0J>e$G@_Dj$,=*$o$C$?$N$G!"3F(BDB$B%N!<%I$r5/F0$7!"I,MW$J$i$P%7%9%F%`(BDB$B$b5/F0(B
$B$7$F$+$i(Bpgpool-II$B$r5/F0$7$^$9!#(B
<pre>
pgpool [-c][-f config_file][-a hba_file][-F pcp_config_file][-n][-d]
</pre>
</p>
<p>
<table>
<tr><td>-c</td><td>$B%/%(%j%-%c%C%7%e$r>C5n$7$^$9(B</tr>
<tr><td>-f config_file</td><td>pgpool-II$B$N@_Dj%U%!%$%k$r;XDj$7$^$9(B</tr>
<tr><td>-a hba_file</td><td>HBA$BG'>Z@_Dj%U%!%$%k$r;XDj$7$^$9(B</tr>
<tr><td>-F pcp_config_file</td><td>pcp$B$N@_Dj%U%!%$%k$r;XDj$7$^$9(B</tr>
<tr><td>-n</td><td>$B%G!<%b%s%b!<%I$G5/F0$7$^$;$s(B($B@)8fC<Kv$r@Z$jN%$7$^$;$s(B</tr>
<tr><td>-d</td><td>$B%G%P%C%0%b!<%I$G5/F0$7$^$9(B</tr>
</table>
</p>
<p>
pgpool-II$B$NDd;_$O8e=R$N(Bpcp$B%3%^%s%I$G$b$G$-$^$9$,!"(Bpgpool-II$B%3%^%s%I$r;H$&$3$H(B
$B$b$G$-$^$9!#(B
</p>
<pre>
pgpool [-f config_file][-F pcp_config_file] [-m {s[mart]|f[ast]|i[mmediate]}] stop
</pre>

<p>
<table>
<tr><td>-m s[mart]</td><td>$B@\B3Cf$N%/%i%$%"%s%H$,@\B3$r=*$o$k$N$rBT$C$F$+$iDd;_$7$^$9(B($B%G%U%)%k%H(B)</td></tr>
<tr><td>-m f[ast]</td><td>$B@\B3Cf$N%/%i%$%"%s%H$,@\B3$r=*$o$k$N$rBT$?$:$KD>$A$KDd;_$7$^$9(B</td></tr>
<tr><td>-m i[mmediate]</td><td>-m f$B$HF1$8F0:n$G$9(B</td></tr>
</table>
</p>

<p>
pgpool$B$,Dd;_$9$k$H!"(B[logdir]/pgpool_status$B$H$$$&%U%!%$%k$K%P%C%/%(%s%I$N>uBV$r=q$-9~$_$^$9!#(B
$B<!2s(Bpgpool$B$,5/F0$7$?$H$-$K$3$N%U%!%$%k$,B8:_$9$k$H!"%P%C%/%(%s%I$N>uBV$r$=$3$+$iI|85$7$^$9!#(B
$B$3$l$K$h$C$F!"(B
<ol>
<li>$B%P%C%/%(%s%I$,Dd;_$7$F%U%'%$%k%*!<%P(B
<li>pgpool$B7PM3$G@5>o$J(BDB$B$r99?7(B
<li>pgpool$B$rDd;_(B
<li>$BDd;_$7$F$$$?(BDB$B$r:F5/F0(B
<li>pgpool$B$r:F5/F0(B
</ol>
</p>
<p>
$B$H$$$&%7!<%1%s%9$G!"IT@09g$N$"$k(BDB$B$+$i%l%W%j%1!<%7%g%s>uBV$K0\9T$9$k$3$H$rKI$0$3$H$,$G$-$^$9!#(B
</p>
<p>
$B$b$7$b(BDB$B$N>uBV$KIT@09g$,$J$/$J$C$F$$$k!"$"$k$$$O(Bpgpool.conf$B$r=q$-49$($F@_Dj$rJQ$($F$7$^$C$?!"$H$$$&$H$-$O(Bpgpool_status$B$r:o=|$9$l$P%P%C%/%(%s%I$N>uBV$NI|85$r9T$$$^$;$s!#(B
</p>

<h1>pgpool-II$B$N@_Dj%U%!%$%k$N:FFI$_9~$_(B<a name="reload"></a></h1>
<p>
pgpool-II$B$N@_Dj%U%!%$%k$O!"(Bpgpool-II$B$r:F5/F0$9$k$3$H$J$/FI$_D>$9$3$H$,$G$-$^$9!#(B
<pre>
pgpool [-f config_file][-a hba_file][-F pcp_config_file] reload
</pre>
</p>
<p>
<table>
<tr><td>-f config_file</td><td>pgpool-II$B$N@_Dj%U%!%$%k$r;XDj$7$^$9(B</tr>
<tr><td>-a hba_file</td><td>HBA$BG'>Z@_Dj%U%!%$%k$r;XDj$7$^$9(B</tr>
<tr><td>-F pcp_config_file</td><td>pcp$B$N@_Dj%U%!%$%k$r;XDj$7$^$9(B</tr>
</table>
</p>
<p>
$B@_Dj9`L\$K$h$C$F$O!":FFI$_9~$_$r9T$J$C$F$bH?1G$5$l$J$$$b$N$,$"$k$N$G!"$4Cm0U2<$5$$!#(B
$B$^$?!"@_Dj$NJQ99$O$9$G$K@\B3Cf$N%;%C%7%g%s$K$OH?1G$5$l$^$;$s!#<!2s!"%/%i%$%"%s%H$,(Bpgpool-II$B$K@\B3$7$?$H$-$+$iH?1G$5$l$^$9!#(B
</p>

<h1><a name="online-recovery"></a>$B%*%s%i%$%s%j%+%P%j(B</h1>
<h2> $B%*%s%i%$%s%j%+%P%j35MW(B</h2>
<p>
   $B%l%W%j%1!<%7%g%s%b!<%I$G(B pgpool $B$,F0:n$7$F$$$k>l9g!"%@%&%s$7$?%N!<(B
   $B%I$N%G!<%?$r:FF14|$5$;$?>e$G!"%N!<%I$rI|5"$5$;$k$3$H$,$G$-$^$9!#$3(B
   $B$N5!G=$r!V%*%s%i%$%s%j%+%P%j!W$H8F$S$^$9!#(B
</p>

<p>
   $B%*%s%i%$%s%j%+%P%j$r<B;\$9$k$?$a$K$O!"%N!<%I$,@Z$jN%$5$l$F$$$k$H(B
   pgpool $B$,8!CN$7$F$$$kI,MW$,$"$j$^$9!#%N!<%I$rF0E*$KDI2C$7$?$$>l9g$K(B
   $B$O(B pgpool.conf $B$N(B backend_hostname$B$J$I$N%Q%i%a!<%?$rDI2C$7$F$*$-!"@_Dj%U%!%$%k(B
   $B$r:FFI$_9~$_$5$;$k$H!"%N!<%I$,@Z$jN%$5$l$?>uBV$G(B pgpool $B$K%N!<%I>pJs$,EPO?$5$l$^$9!#(B
</p>

<p>
   $B$^$?!"%j%+%P%j$9$k%N!<%I$N(B PostgreSQL $B$,$9$G$KF0:nCf$G$"$l$P!"$"$i(B
   $B$+$8$a(B PostgreSQL $B$r%7%c%C%H%@%&%s$5$;$F$*$$$F$/$@$5$$!#(B
</p>

<!--
<p>
<font color="red">$BCm0U(B: $B%*%s%i%$%s%j%+%P%j$r<B9T$9$kA0$K!"%^%9%?%N!<%I(B
($B2TF/Cf$N%N!<%I$N$&$A!"0lHVHV9f$,<c$$%N!<%I(B)$B>e$G$N(Bautovacuum$B$rDd;_$7$F$/$@$5$$!#(B
$B%*%s%i%$%s%j%+%P%jCf$K(Bautovacuum$B$,F0$/$H!"%G!<%?%Y!<%9$NFbMF$,JQ2=$9$k2DG=@-$,$"$k$?$a!"(B
$B%N!<%I4V$NF14|$,$-$A$s$H<h$l$J$/$J$k2DG=@-$,$"$j$^$9!#(B</font>
</p>
-->

<p>
   pgpool $B$G$O%*%s%i%$%s%j%+%P%j$r(B 2 $BCJ3,$KJ,$1$F<B;\$7$^$9!#(Bpgpool $B$N(B
   $B%/%i%$%"%s%H$+$i$O40A4$J%G!<%?$NF14|$r<h$k$?$a$K<c43$N@\B3BT$A$,H/(B
   $B@8$7$^$9!#%j%+%P%j<j=g$G0J2<$NDL$j$G$9!#(B

  <ol>
    <li> CHECKPOINT $B<B9T(B
    <li> $B%U%!!<%9%H%9%F!<%8$N<B;\(B
    <li> $B@\B3$,$9$Y$F@ZCG$5$l$k$^$GBT5!(B
    <li> CHECKPOINT $B<B9T(B
    <li> $B%;%+%s%I%9%F!<%8$N<B;\(B
    <li> postmaster $B$N5/F0(B(pgpool_remote_start $B$N<B9T(B)
    <li> $B%N!<%I$NI|5"(B
  </ol>
</p>

<p>
   $B%G!<%?F14|$NBh0lCJ3,$r!V%U%!!<%9%H%9%F!<%8!W$H8F$S$^$9!#%U%!!<%9%H(B
   $B%9%F!<%8Cf$K(B1 $B2sL\$N%G!<%?F14|$r9T$$$^$9!#%U%!!<%9%H%9%F!<%8Cf$O%G!<(B
   $B%?$N99?7$d;2>H$rJB9T$7$F9T$&$3$H$,$G$-$^$9!#(B
</p>

<p>
   $B%U%!!<%9%H%9%F!<%8$G=hM}$9$kFbMF$O%f!<%6$,Dj5A$9$k$3$H$,$G$-$^$9!#(B
   $B%9%/%j%W%H$G$O(B 3 $B$D$N0z?t$r<u$1<h$k$3$H$,$G$-$^$9!#(B

  <ol>
    <li> $B%^%9%?$N%G!<%?%Y!<%9%/%i%9%?%Q%9(B
    <li> $B%j%+%P%j%N!<%I$N%[%9%HL>(B
    <li> $B%j%+%P%j%N!<%I$N%G!<%?%Y!<%9%/%i%9%?%Q%9(B
  </ol>
</p>

<p>
   $B<!$K(B 2 $B2sL\$N%G!<%?F14|$r9T$$$^$9!#$3$l$r!V%;%+%s%I%9%F!<%8!W$H8F$S(B
   $B$^$9!#(Bpgpool $B$G$O%;%+%s%I%9%F!<%8$KF~$kA0$K@\B3Cf$N%/%i%$%"%s%H$,$9(B
   $B$Y$F@\B3$,=*N;$5$l$k$^$GBT$A$^$9!#$=$N4V$K@\B3%j%/%(%9%H$,Mh$?>l9g(B
   $B$K$O!"$=$N@\B3$r$9$Y$F%V%m%C%/$7$^$9!#(B
</p>

<p>
   $B%;%+%s%I%9%F!<%8$G=hM}$9$kFbMF$O%f!<%6$,Dj5A$9$k$3$H$,$G$-$^$9!#(B
   $B%9%/%j%W%H$G$O(B 3 $B$D$N0z?t$r<u$1<h$k$3$H$,$G$-$^$9!#(B
</p>
  <ol>
    <li> $B%^%9%?$N%G!<%?%Y!<%9%/%i%9%?%Q%9(B
    <li> $B%j%+%P%j%N!<%I$N%[%9%HL>(B
    <li> $B%j%+%P%j%N!<%I$N%G!<%?%Y!<%9%/%i%9%?%Q%9(B
  </ol>
<p>
   $B$9$Y$F$N@\B3$,=*N;$5$l$k$H!"%U%!!<%9%H%9%F!<%80J9_$K99?7$5$l$?%G!<(B
   $B%?$rF14|$9$k$?$a$N%;%+%s%I%9%F!<%8$,3+;O$5$l$^$9!#$=$3$G:G=*E*$J%G!<(B
   $B%?$NF14|$r9T$$$^$9!#$3$N4V$O%/%i%$%"%s%H$+$i$O(B pgpool $B$X$N@\B3$,BT(B
   $B$?$5$l$k>uBV$K$J$j$^$9!#(B
</p>

<p>
<font color="red">
   $B$J$*!"%*%s%i%$%s%j%+%P%j$N@)8B;v9`$H$7$F!"J#?t$N%[%9%H$K(B pgpool $B$r(B
   $BG[CV$7$F%l%W%j%1!<%7%g%s$5$;$F$$$k>l9g$K$O!"%*%s%i%$%s%j%+%P%j$O@5(B
   $B$7$/F0:n$7$^$;$s!#$I$l$+$N(B pgpool $B$K%j%+%P%j%j%/%(%9%H$r=P$7$?;~$K!"(B
   $BB>$N(B pgpool $B$+$i99?7$,EAHB$9$k$H!"%G!<%?$rF14|$5$;$k$3$H$,$G$-$J$/(B
   $B$J$j$^$9!#(B
</font>
</p>

<h2> pgpool $B$N@_Dj(B</h2>
<p>
   $B%*%s%i%$%s%j%+%P%j$r@_Dj$9$k$?$a$K$O!"(Bpgpool.conf $B$N0J2<$NCM$r@_Dj(B
   $B$7$F$/$@$5$$!#(B

   <ul>
    <li> backend_data_directory
    <li> recovery_user
    <li> recovery_password
    <li> recovery_1st_stage_command
    <li> recovery_2nd_stage_command
   </ul>
</p>


<h2> C $B8@8l4X?t$N%$%s%9%H!<%k(B</h2>
<p>
$B<!$K!"%j%+%P%j$r<B;\$9$k$?$a$N(B PostgreSQL $B$N(B C $B8@8l4X?t$r3F%N!<%I$N(B
template1 $B%G!<%?%Y!<%9$K%$%s%9%H!<%k$7$^$9!#%=!<%9%3!<%I$O(B
</p>

<pre>
  pgpool-II-x.x.x/sql/pgpool-recovery/
</pre>

<p>
$B$K$"$j$^$9!#%G%#%l%/%H%j$r0\F0$7!"(Bmake install $B$7$F$/$@$5$$!#(B
</p>

<pre>
  % cd pgpool-II-x.x.x/sql/pgpool-recovery/
  % make install
</pre>

<p>
C $B8@8l4X?t$N%b%8%e!<%k$r%$%s%9%H!<%k$7$?$i!"B3$$$F(B C $B8@8l4X?t$r8F$S$@(B
$B$9$?$a$N(B SQL $B$r%$%s%9%H!<%k$7$^$9!#(B
</p>

<pre>
  % cd pgpool-II-x.x.x/sql/pgpool-recovery/
  % psql -f pgpool-recovery.sql template1
</pre>


<h2> $B%j%+%P%j%9%/%j%W%H$NG[CV(B</h2>
<p>
$B%G!<%?$rF14|$5$;$k$?$a$N%9%/%j%W%H$H!"%j%b!<%H$+$i(B postmaster $B$r:F5/F0(B
$B$5$;$k$?$a$N%9%/%j%W%H$r3F%N!<%I$N(B $PGDATA $B0J2<$KG[CV$7$^$9!#$"$i$+$8(B
$B$a(Bpgpool-II-x.x.x/sample $B0J2<$K%5%s%W%k%9%/%j%W%H$bMQ0U$7$F$"$j$^$9$N(B
$B$G;29M$K$7$F$/$@$5$$!#$3$3$G$O%5%s%W%k%9%/%j%W%H$r;H$C$F!"(BPITR $B$K$h$k(B
$B%j%+%P%jJ}K!$H!"(Brsync $B$K$h$k%j%+%P%jJ}K!$r@bL@$7$^$9!#(B
</p>

<h3>PITR $B$K$h$k%j%+%P%j(B</h3>
<p>
$B$3$3$G$O(B PostgreSQL $B$N(B PITR $B5!G=$r;H$C$F%j%+%P%j$r$9$k@_DjNc$r@bL@$7$^(B
$B$9!#(BPITR $B$K$h$k%j%+%P%j$r$9$k>l9g$K$O$"$i$+$8$a(B PostgreSQL $B$N@_Dj$G%m(B
$B%0$r%"!<%+%$%V$5$;$k$h$&$K$7$F$*$$$F$/$@$5$$!#(B
</p>

<p>
$B$^$:%U%!!<%9%H%9%F!<%8$G%Y!<%9%P%C%/%"%C%W$r<hF@$7!"%j%+%P%j@h$X%3%T!<(B
$B$9$k%9%/%j%W%H(B($B$3$3$G$O%U%!%$%kL>$r(B copy-base-backup $B$H$7$^$9(B)$B$rMQ0U$7(B
$B$^$9!#Nc$($P0J2<$N$h$&$J%9%/%j%W%H$G<hF@$9$k$3$H$,$G$-$^$9!#(B
</p>

<pre>
  #! /bin/sh

  DATA=$1
  RECOVERY_TARGET=$2
  RECOVERY_DATA=$3

  psql -c "select pg_start_backup('pgpool-recovery')" postgres
  echo "restore_command = 'scp $HOSTNAME:/data/archive_log/%f %p'" > /data/recovery.conf
  tar -C /data -zcf pgsql.tar.gz pgsql
  psql -c 'select pg_stop_backup()' postgres
  scp pgsql.tar.gz $RECOVERY_TARGET:$RECOVERY_DATA
</pre>

<p>
$B%Y!<%9%P%C%/%"%C%W<hF@;~$K(B recovery.conf $B$r@8@.$7$F$*$-$^$9!#(B
</p>
<pre>
restore_command = 'scp master:/data/archive_log/%f %p'
</pre>

</p>

<p>
$B%;%+%s%I%9%F!<%8$G$O:G?7$N>uBV$^$G(B PITR $B$K$h$k%j%+%P%j$r<B;\$G$-$k$h$&(B
$B$K$9$k$?$a$K!"(Bpgpool_recovery_pitr $B%9%/%j%W%H$r(B$PGDATA $B$K%3%T!<$7$^$9!#(B
$B$3$N%9%/%j%W%H$G$O(B XLOG $B$r6/@)E*$K%9%$%C%A$5$;$k$h$&$K$7$^$9!#(B
</p>
<p>
<pre>
#! /bin/sh
# Online recovery 2nd stage script
#
datadir=$1		# master dabatase cluster
DEST=$2			# hostname of the DB node to be recovered
DESTDIR=$3		# database cluster of the DB node to be recovered
port=5432		# PostgreSQL port number

# Force to flush current value of sequences to xlog 
psql -p $port -t -c 'SELECT datname FROM pg_database WHERE NOT datistemplate AND datallowconn' template1|
while read i
do
  if [ "$i" != "" ];then
    psql -p $port -c "SELECT setval(oid, nextval(oid)) FROM pg_class WHERE relkind = 'S'" $i
  fi
done

psql -p $port -c 'SELECT pg_switch_xlog()' postgres
</pre>
</p>

<p>
$B%9%/%j%W%HCf$N(Bwhile$B%k!<%W$O!"A4%G!<%?%Y!<%9Cf$N%7!<%1%s%9CM$r%H%i%s%6%/%7%g%s%m%0$KEG$-=P$7$^$9!#(B
$B$3$l$K$h$C$F!"%7!<%1%s%9$b@5$7$/%j%+%P%j$5$l$k$h$&$K$J$j$^$9!#(B
</p>

<p>
$B%9%/%j%W%H$NG[CV$,40N;$7$?$i(B pgpool.conf $B$K@_Dj$7$^$9!#(B

<pre>
recovery_1st_stage_command = 'copy-base-backup'
recovery_2nd_stage_command = 'pgpool_recovery_pitr'
</pre>

</p>

<p>
$B$3$l$G(B PITR $B$K$h$k%*%s%i%$%s%j%+%P%j$N=`Hw$,40N;$G$9!#(B
</p>

<h4><p>pgpool_remote_start</p></h4>
<p>
$B%G!<%?:FF14|8e$K(B postmaster $B$r5/F0$5$;$k%9%/%j%W%H$G$9!#(B
pgpool $B$+$i$O0J2<$N7A<0$G%9%/%j%W%H$r<B9T$7$^$9!#(B
</p>

<pre>
  % pgpool_remote_start remote_host remote_datadir
  remote_host:    $B%j%+%P%j%N!<%I$N%[%9%HL>(B
  remote_datadir: $B%j%+%P%j%N!<%I$N%G!<%?%Y!<%9%/%i%9%?%Q%9(B 
</pre>

<p>
$B%5%s%W%k%9%/%j%W%H$G$O(B ssh $B7PM3$G(B postmaster $B$r5/F0$7$F$$$^$9!#$3$A$i(B
$B$b$"$i$+$8$a%Q%9%U%l!<%:L5$7$G(B ssh $B7PM3$G%m%0%$%s$G$-$k$h$&$K@_Dj$7$F(B
$B$*$/I,MW$,$"$j$^$9!#(B
</p>

<p>
PITR $B$K$h$k%j%+%P%j$G$"$l$P!"(Bpgpool_remote_start $BFb$G%Y!<%9%P%C%/%"%C(B
$B%W$rE83+$7!"(Brecovery.conf $B$NFbMF$K$7$?$,$C$F%j%+%P%j$7$?8e$K(B
postmaster $B$,@\B32DG=>uBV$K$J$j$^$9!#(B
</p>

<pre>
#! /bin/sh
DEST=$1
DESTDIR=$2
PGCTL=/usr/local/pgsql/bin/pg_ctl

# Expand a base backup
ssh -T $DEST 'cd /data/; tar zxf pgsql.tar.gz' 2>/dev/null 1>/dev/null < /dev/null
# Startup PostgreSQL server
ssh -T $DEST $PGCTL -w -D $DESTDIR start 2>/dev/null 1>/dev/null < /dev/null &
</pre>

<h3>rsync $B$K$h$k%j%+%P%j(B </h3>
<p>
7.4 $B0JA0$N>l9g$O(B PITR $B5!G=$,$"$j$^$;$s!#$=$3$G(B PITR $B$r;H$o$:$K(B rsync
$B$r;H$C$?%j%+%P%jJ}K!$r@bL@$7$^$9!#(Bsample $B%G%#%l%/%H%j$K(B
pgpool_recovery $B$H$$$&%U%!%$%k$,$"$j$^$9!#%^%9%?$+$iI|5"$5$;$k%N!<%I$X(B
$B$N%G!<%?$NJ*M}%3%T!<$r9T$&%9%/%j%W%H$G$9!#(Bpgpool $B$+$i$O0J2<$N7A<0$G%9(B
$B%/%j%W%H$r<B9T$7$^$9!#(B
</p>

<pre>
  % pgpool_recovery datadir remote_host remote_datadir
  datadir:        $B%^%9%?$N%G!<%?%Y!<%9%/%i%9%?%Q%9(B
  remote_host:    $B%j%+%P%j%N!<%I$N%[%9%HL>(B
  remote_datadir: $B%j%+%P%j%N!<%I$N%G!<%?%Y!<%9%/%i%9%?%Q%9(B 
</pre>

<p>
$B%5%s%W%k%9%/%j%W%H$G$O(B rsync $B$r;H$C$FJ*M}%3%T!<$r$7$F$$$^$9!#$b$7(B
rsync $B$r;H$&>l9g$O!"%Q%9%U%l!<%:L5$7$G(B ssh $B7PM3$G%m%0%$%s$G$-$k$h$&$K(B
$B$"$i$+$8$a@_Dj$7$F$*$/I,MW$,$"$j$^$9!#(B
</p>

<p>
rsync$B$K4X$9$kCm5-(B:
<ul>

 <li>-z (or --compress)$B%*%W%7%g%s$ODcB.$J%M%C%H%o!<%/$G$O8z2L$,$"$j$^$9$,!"(B
	  100M$B0J>e$N9bB.$J%M%C%H%o!<%/$G$O$+$($C$F(BCPU$BIi2Y$rA}$d$7!"7k2LE*$KCY$/$J$k$3$H$,$"$j$^$9!#(B
	  $B9bB.%M%C%H%o!<%/$G$O!"$3$N%*%W%7%g%s$r;HMQ$7$J$$$3$H$r$*4+$a$7$^$9!#(B

 <li>rsync $B$N?7$7$$%P!<%8%g%s(B(3.0.5)$B$G$O!"(B50%$B$b@-G=$,NI$/$J$C$?$H$$$&Js9p$,(B
	  pgpool-general$B%a!<%j%s%0%j%9%H$G$"$j$^$7$?!#(B
</ul>
</p>

<p>
pgpool_recovery $B$r;H$&>l9g$O(B pgpool.conf $B$K0J2<$N9T$rDI2C$7$F$/$@$5$$!#(B

<pre>
recovery_1st_stage_command = 'pgpool_recovery'
recovery_2nd_stage_command = 'pgpool_recovery'
</pre>
</p>

<h2>$B%j%+%P%j$N<B9T(B</h2>
<p>
$B0J>e$G%*%s%i%$%s%j%+%P%j$N=`Hw$,@0$$$^$7$?!#(B
$B%*%s%i%$%s%j%+%P%j$r<B9T$9$k$K$O(B pcp_recovery_node $B%3%^%s%I$r;H$&$+!"(B
pgpool $B4IM}%D!<%k$+$i<B9T$7$F$/$@$5$$!#(B
</p>

<p>
$BCm0UE@$H$7$F!"(Bpcp_recovery_node $B$r<B9T$9$k:]$K!"%?%$%`%"%&%H$rD9$/$7$F(B
$B$/$@$5$$!#(BpgpoolAdmin $B$+$i<B9T$9$k>l9g$O(B pgmgt.conf.php $BFb$N(B
_PGPOOL2_PCP_TIMEOUT $B$rBg$-$/$7$F$/$@$5$$!#(B
</p>


<h1>$B@)8B;v9`(B<a name="restriction"></a></h1>
<p>
<h2>$BG'>Z!&%"%/%;%9@)8fJ}<0(B</h2>
<p>
<ul>
<li>$B%l%W%j%1!<%7%g%s%b!<%I$^$?%^%9%?(B/$B%9%l!<%V%b!<%I;~$K$O(Btrust, reject, clear
     text password, pam, $BG'>ZJ}<0$@$1$,MxMQ$G$-$^$9!#(Bmd5$BG'>Z!"(Bcrypt$BG'>Z$J$I$NG'>ZJ}<0$OMxMQ$G$-$^$;$s!#(B
<li>$B$=$l0J30$N%b!<%I$G$O!"(Btrust, reject, clear text password, pam, crypt, md5$BG'>ZJ}<0$@$1$,MxMQ$G$-$^$9!#(B
</ul>
</p>

<h2>$B%l%W%j%1!<%7%g%s%b!<%I$GCm0U$,I,MW$J4X?t$J$I(B</h2>
<p>
pgpool-II$B$G$OF1$8Ld$$9g$o$;$rAw$C$F$b0[$J$k7k(B
   $B2L$rJV$9$h$&$J%G!<%?!"$?$H$($PMp?t$d%H%i%s%6%/%7%g%s(BID$B!"(BOID$B$N$h$&$J$b$N$K4X$7$F$O%l%W%j%1!<%7%g(B
   $B%s$O$7$^$9$,!"(B2$BBf$N%[%9%H$G$^$C$?$/F1$8CM$,%3%T!<$5$l$kJ]>Z$O$"$j$^$;$s!#(B
</p>
<p>
$B%7%j%"%k7?$K4X$7$F$O!"(Binsert_lock$B$rM-8z$K$7$F$*$1$P%F!<%V%k%m%C%/$rMxMQ$7$FF14|$,<h$i$l$^$9!#(B
$B%7!<%1%s%9$r07$&4X?t$r(BSELECT setval()$B!"(BSELECT nextval()$B$G8F$S=P$7$F$$$k>l9g$O<+F0E*$K%l%W%j%1!<%7%g%s$5$l$k$N$GF14|$,<h$l$^$9!#(B
</p>
<p>
pgpool-II 2.3$B0J9_$G$O!"%F!<%V%k$N%G%U%)%k%HCM$G$NMxMQ$b4^$a!"(BCURRENT_TIMESTAMP, CURRENT_DATE, now()$B$O!"<+F0E*$K%^%9%?B&$+$i<hF@$7$?;~9oCM$KCV$-49$($k$3$H$K$h$C$F%l%W%j%1!<%7%g%s$G$-$k$h$&$K$J$C$F$$$^$9!#(B
$B$?$@$7!"0J2<$NE@$KCm0U$7$F$/$@$5$$!#(B
</p>
<p>
<ul>
<li>DEFAULT$B$K%?%$%`%9%?%s%W$rJV$9<0$,4^$^$l$F$$$k$+$I$&$+$NH=Dj$O@53N$G$O$"$j$^$;$s!#Nc$($P(B
<pre>
CREATE TABLE rel1(
  d1 date DEFAULT CURRENT_DATE + 1
)
</pre>
$B$N$h$&$J$b$N$b8=:_$N%?%$%`%9%?%s%W$H$7$F=q$-49$($r9T$$$^$9!#(B
<li>INSERT ... SELECT$B$G$O!"Ns$N(BDEFAULT$B$KBP$9$k=q$-49$($r9T$$$^$;$s!#Nc$($P!"(B
<pre>
CREATE TABLE rel1(
  c1 int,
  c2 timestamp default now()
)
</pre>
$B$N;~!"(B
<pre>
INSERT INTO rel1(c1) VALUES(1)
</pre>
$B$O(B
<pre>
INSERT INTO rel1(c1, c2) VALUES(1, '2009-01-01 23:59:59.123456+09')
</pre>
$B$N$h$&$K=q$-49$($i$l$^$9$,(B
<pre>
INSERT INTO rel1(c1) SELECT 1
</pre>
$B$O=q$-49$($i$l$^$;$s!#(B
</ul>
</p>

<p>
PostgreSQL 8.2$B$+$=$l$h$jA0$N(BPostgreSQL$B$r$*;H$$$N>l9g!"(B
CREATE TEMP TABLE$B$G:n@.$5$l$?%F!<%V%k$O%U%m%s%H%(%s%I$,%;%C%7%g(B
         $B%s$r=*N;$7$F$b:o=|$5$l$^$;$s!#$3$l$O!"%3%M%/%7%g%s%W!<%k$N8z(B
         $B2L$G%P%C%/%(%s%I$+$i8+$k$H%;%C%7%g%s$,7QB3$7$F$$$k$h$&$K8+$((B
         $B$k$+$i$G$9!#%;%C%7%g%s$N=*N;;~$KL@<(E*$K(BDROP TABLE$B$9$k$+!"%H(B
         $B%i%s%6%/%7%g%s%V%m%C%/$NCf$G(BCREATE TEMP TABLE ... ON COMMIT
         DROP$B$r$*;H$$2<$5$$!#(B
</p>
<p>
PostgreSQL 8.3$B0J9_$G$O!"(Breset_query_list$B$K(BDISCARD ALL$B$r;XDj$9$l$P<+F0E*$K:o=|$5$l$k$N$GLdBj$"$j$^$;$s!#(B
</p>

<h2>$B%/%(%j$K$D$$$F(B</h2>
<p>
pgpool-II $B$G$O07$&$3$H$,$G$-$J$$%/%(%j$K$D$$$F@bL@$7$^$9!#(B
</p>

<h3>$B%^%k%A%P%$%HJ8;z$K$D$$$F(B</h3>
<p>
$B@)8BBP>](B:$BA4%b!<%I(B
</p>
<p>
$B8=:_$N<BAu$G$O!"%^%k%A%P%$%HJ8;z$NJQ49=hM}$r9T$$$^$;$s!#%/%i%$%"%s%H%((B
$B%s%3!<%G%#%s%0!"%P%C%/%(%s%I%N!<%I$N%5!<%P%(%s%3!<%G%#%s%0!"%7%9%F%`(B
DB $B$N%5!<%P%(%s%3!<%G%#%s%0$r0lCW$5$;$k$h$&$K$7$F$/$@$5$$!#(B
</p>

<h3>$B%^%k%A%9%F!<%H%a%s%H(B</h3>
<p>
$B@)8BBP>](B:$BA4%b!<%I(B
</p>
<p>
$B%^%k%A%9%F!<%H%a%s%H(B(';' $B$G6h@Z$C$FJ#?t$NJ8$r$^$H$a$?(B SQL)$B$r(B pgpool $B$,(B
$B@5$7$/=hM}$9$k$3$H$,$G$-$^$;$s!#I,$:J8$rJ,$1$FAw?.$7$F$/$@$5$$!#(B
</p>
<p>
$B$J$*!"(Bpsql $B$r;H$C$F(B pgpool $B$K@\B3$7$?>l9g$O!"(Bpsql $BFbIt$G%^%k%A%9%F!<%H(B
$B%a%s%H$rJ,2r$7!"(B1 $B$D$:$DAw?.$7$^$9!#(B
</p>

<h3>$B3HD%Ld$$9g$o$;%W%m%H%3%k(B</h3>
<p>
$B@)8BBP>](B:$B%Q%i%l%k%b!<%I(B
</p>
<p>
JDBC $B%I%i%$%P$J$I$N$h$&$J3HD%Ld$$9g$o$;%W%m%H%3%k$K$OBP1~$7$F$$$^$;$s!#(B
$BI,$:4J0WLd$$9g$o$;%W%m%H%3%k$r;HMQ$7$F$/$@$5$$!#(B
</p>

<h3>SELECT</h3>
<p>
$B@)8BBP>](B:$B%Q%i%l%k%b!<%I(B
</p>
<p>
postgresql.conf $B$N(B add_missing_from$B@_DjCM$r(B off ($B%G%U%)%k%HCM(B)$B$K@_Dj$7$F$/$@$5$$!#(B
add_missing_from $B@_DjCM$,(B on $B$N;~$K;H$($k%/%(%j$O@5$7$/(Bpgpool$B$G=hM}$5$l$J$$2DG=@-(B
$B$,$"$j$^$9!#(B
</p>
<h3>INSERT</h3>
<p>
$B@)8BBP>](B:$B%Q%i%l%k%b!<%I(B
</p>
<p>
$B%G!<%?J,3d$r$7$F$$$k%F!<%V%k$KBP$7$F(BINSERT $B$r9T$&:]$K$O!"J,3d%k!<%k$H$J$kCM$r(B DEFAULT $B$K$O$G$-$^$;$s!#Nc$((B
$B$P%F!<%V%k(B t $B$K(B x $B$H$$$&%+%i%`$,$"$j!"(Bx $B$,J,3d%k!<%k$NBP>]%+%i%`$@$C$?(B
$B>l9g$K$O!"(B
</p>
<pre>
  INSERT INTO t(x) VALUES (DEFAULT);
</pre>
<p>
$B$O$G$-$^$;$s!#$^$?!"J,3d%k!<%k$H$J$kCM$,4X?t8F$S=P$7$N>l9g$b(B
$BBP1~$7$F$$$^$;$s!#(B
</p>
<pre>
  INSERT INTO t(x) VALUES (func());
</pre>
<p>
$BI,$:L@<(E*$KCM$rM?$($kI,MW$,$"$j$^$9!#(B

$B$^$?!"(BSELECT INTO $B$d(B INSERT INTO ... SELECT $B$H$$$&7A<0$b%5%]!<%H$7$F$$(B
$B$^$;$s!#(B
</p>

<h3>UPDATE</h3>
<p>
$B@)8BBP>](B:$B%Q%i%l%k%b!<%I(B
</p>
<p>
$BJ,3d%k!<%k$H$J$k%+%i%`$r99?7$9$k$HJ,3d%k!<%k$K=>$C$?%G!<%?$N@09g@-$,Jx(B
$B$l$k2DG=@-$,$"$j$^$9!#(Bpgpool-II $B$G$OFC$K%G!<%?$N:FG[CV$H$$$&$3$H$O9T$$(B
$B$^$;$s!#(B
</p>
<p>
$B$b$7@)Ls0cH?$J$I$K$h$j0lIt$N%N!<%I$G%(%i!<$K$J$C$?>l9g$K%m!<%k%P%C%/$9(B
$B$k$3$H$O$G$-$^$;$s!#(B
</p>
<p>
WHERE $B6g$K%G!<%?J,3d$r9T$C$?%F!<%V%k$r;2>H$9$k%5%V%/%(%j$d4X?t8F$S=P$7$,$"$k>l9g$K$O@5$7$/F0$+$J$$2DG=@-$,(B
$B$"$j$^$9!#(B
</p>
<pre>
$BNc!'(BUPDATE branches set bid = 100 where bid = (select max(bid) from beances);
</pre>

<h3>SELECT ... FOR UPDATE</h3>
<p>
$B@)8BBP>](B:$B%Q%i%l%k%b!<%I(B
</p>
<p>
WHERE $B6g$K%G!<%?J,3d$r9T$C$?%F!<%V%k$r;2>H$9$k%5%V%/%(%j$d4X?t8F$S=P$7$,$"$k>l9g$K$O@5$7$/F0$+$J$$2DG=@-$,(B
$B$"$j$^$9!#(B
<pre>
$BNc!'(BSELECT * FROM  branches where bid = (select max(bid) from beances) FOR UPDATE;
</pre>
</p>

<h3>COPY</h3>
<p>
$B@)8BBP>](B:$B%Q%i%l%k%b!<%I(B
</p>
<p>
COPY BINARY $B$K$OBP1~$7$F$$$^$;$s!#$^$?!"%U%!%$%k$+$i$N%3%T!<$K$bBP1~$7(B
$B$F$$$^$;$s!#(BCOPY FROM STDIN $B$H(B COPY TO STDOUT $B$N$_BP1~$7$F$$$^$9!#(B
</p>

<h3>ALTER/CREATE TABLE $B$K$D$$$F(B</h3>
<p>
$B@)8BBP>](B:$B%Q%i%l%k%b!<%I(B
</p>
<p>
pgpool $B$K>pJs$r99?7$5$;$k$?$a$K$O!"(Bpgpool $B$r:F5/F0$9$kI,MW$,$"$j$^$9!#(B
</p>

<h3>$B%H%i%s%6%/%7%g%s(B</h3>
<p>
$B@)8BBP>](B:$B%Q%i%l%k%b!<%I(B
</p>
<p>
$B%H%i%s%6%/%7%g%sCf$KH/9T$5$l$k(B SELECT $B$O(B dblink $B$r7PM3$9$k>l9g$K$OJL%H(B
$B%i%s%6%/%7%g%s$K$J$j$^$9!#0J2<$KNc$r<($7$^$9!#(B
</p>
<pre>
  BEGIN;
  INSERT INTO t(a) VALUES (1);
  SELECT * FROM t ORDER BY a; <-- $B>e$N(B INSERT $B$7$?CM$O8+$($J$$(B
  END;
</pre>
<p>
$B$^$?@)Ls0cH?$J$I$K$h$j0lIt$N%N!<%I$G%(%i!<$K$J$C$?>l9g$K%m!<%k%P%C%/$9$k$3$H$O$G$-$^$;$s!#(B
</p>
<h3>View/Rule</h3>
<p>
$B@)8BBP>](B:$B%Q%i%l%k%b!<%I(B
</p>
<p>
View $B$d(B Rule $B$O3F%N!<%I$KF1$8FbMF$,Dj5A$5$l$^$9!#(B
</p>
<pre>
  CREATE VIEW sample AS SELECT * FROM a, b where a.i = b.i
</pre>
<p>
$B>e5-$N$h$&$J(B $B%F!<%V%k7k9g$r4^$s$@(BVIEW$B$O!"(Ba $B$H(B b $B$OF1$8%N!<%IFb$G$N$_7k9g=hM}$r9T$$!"(B
$B3F%N!<%I$+$i$N<B9T7k2L$rE}9g$7$^$9!#%N!<%I$r$^$?$,$C$?(B JOIN $B$r9T$&(B View $B$r:n@.$9$k(B
$B$3$H$O$G$-$^$;$s!#(BRule $B$K$D$$$F$bF1MM$K$J$j$^$9!#$?$@$7!"%G!<%?J,3d$7$?%F!<%V%k$rF1(B
$B$8%N!<%IFb$G$N$_7k9g$7$?$$>l9g$K!"(BVIEW$B$r:n@.$9$k$3$H$O2DG=$G$9!#$3$N>l9g$K$O(BVIEW$B$r(B
pgpool_catalog.dist_def$B%F!<%V%k$K(BVIEW$B$rEPO?$7$F$*$-$^$9!#(B
$B$^$?!"(Bpgpool_catalog.dist_def$B%F!<%V%k$N(Bcol_name$B$H(Bdist_def_func$B$K$O!"(BVIEW$B$GDj5A$7$?(B
$B%+%i%`$H(BVIEW$B$KBP$7$F(BINSERT$B$,H/9T$5$l$?>l9g$K2?=h$N%N!<%I$K%/%(%j$rLd$$9g$o$;$k$N$+$r7hDj(B
$B$9$k4X?t$rEPO?$7$F$/$@$5$$!#(B
</p>

<h3>$B4X?t(B/$B%H%j%,$K$D$$$F(B</h3>
<p>
$B@)8BBP>](B:$B%Q%i%l%k%b!<%I(B
</p>
<p>
$B4X?t$O3F%N!<%I$KF1$8FbMF$,Dj5A$5$l$^$9!#4X?tFb$G(B JOIN $B$dB>$N%N!<%I$N%G!<(B
$B%?A`:n$r9T$&$3$H$O$G$-$^$;$s!#(B
</p>

<h3>Natural Join $B$K$D$$$F(B</h3>
<p>
$B@)8BBP>](B:$B%Q%i%l%k%b!<%I(B
</p>
<p>
Natural Join $B$OMxMQ$G$-$^$;$s!#(BON $B7k9g>r7o$^$?$O!"(BUSING($B7k9g%+%i%`(B) $B$rL@<(E*$K(B
$B;XDj$9$kI,MW$,$"$j$^$9!#(B
</p>

<h3>USING $B6g$K$D$$$F(B</h3>
<p>
$B@)8BBP>](B:$B%Q%i%l%k%b!<%I(B
</p>
<p>
JOIN $B9=J8$NCf$GMxMQ$5$l$k(B USING $B6g$O%/%(%j$N=q$-49$(=hM}$K$h$C$F(B ON $B6g$K(B
$BJQ49$5$l$^$9!#$=$N$?$a!"%?!<%2%C%H%j%9%H$K(B "*" $B$rMxMQ$9$kLd$$9g$o$;$r9T$&(B
$B>l9g$K$O!"F1$8NsL>$,=PNO$5$l$^$9!#(B
</p>

<h3>$B%G%C%I%m%C%/$K$D$$$F(B</h3>
<p>
$B@)8BBP>](B:$B%Q%i%l%k%b!<%I(B
</p>
<p>
$B%N!<%I4V$r$^$?$,$k%G%C%I%m%C%/$r8!=P$9$k$3$H$,$G$-$^$;$s!#(B
</p>
<pre>
$BNc!'(Baccounts$B%F!<%V%k$O0J2<$N%k!<%k$GJ,3d$5$l$F$$$k!#(B
    aid <= 100000 $B%N!<%I(B 0
    aid >= 100000 $B%N!<%I(B 1

  A) BEGIN;
  B) BEGIN;
  A) SELECT * FROM accounts WHERE aid = 100001 FOR UPDATE;
  B) SELECT * FROM accounts WHERE aid = 100000 FOR UPDATE;
  A) SELECT * FROM accounts WHERE aid = 100000 FOR UPDATE;
  B) SELECT * FROM accounts WHERE aid = 100001 FOR UPDATE;
</pre>
<p>
$B$3$N>l9g!"C10l$N%N!<%I$G$O%G%C%I%m%C%/$r8!CN$G$-$J$$$?$a!"(Bpgpool $B$OBT(B
$B$?$5$l$?>uBV$K$J$j$^$9!#$3$N8=>]$O(B SELECT FOR UPDATE $B0J30$K$b9T%m%C%/(B
$B$r3MF@$9$k%/%(%j$GH/@8$9$k2DG=@-$,$"$j$^$9!#(B
</p>
<p>
$B$^$?!"$"$k%N!<%I$G%G%C%I%m%C%/$,H/@8$7$?>l9g$O!"3F%N!<%I$N%H%i%s%6%/%7%g(B
$B%s$N>uBV$,0[$J$k>u67$K$J$j$^$9!#$=$N$?$a!"%G%C%I%m%C%/$r8!CN$7$?;~E@$G(B
$B0J2<$N%m%0$r=PNO$7$F(B pgpool $B$O3:Ev$N%W%m%;%9$r=*N;$5$;$^$9!#(B
<pre>
  pool_read_kind: kind does not match between master(84) slot[1] (69)
</pre>

<h3>$B%9%-!<%^$K$D$$$F(B</h3>
<p>
$B@)8BBP>](B:$B%Q%i%l%k%b!<%I(B
</p>
<p>
public $B0J30$N%9%-!<%^$KB0$9$h$&$J%*%V%8%'%/%H$N;2>H$OI,$:(B
</p>
<pre>
  $B%9%-!<%^(B.$B%*%V%8%'%/%H(B
</pre>
<p>
$B$H;XDj$9$k$h$&$K$7$F$/$@$5$$!#(B
</p>
<pre>
  set search_path = xxx
</pre>
<p>
$B$r;XDj$7!"%9%-!<%^L>$r>JN,$9$k$H!"(Bpgpool $B$,$I$NJ,;6%k!<%k$rE,MQ$9$k$+(B
$BH=CG$G$-$^$;$s!#(B
</p>
<h3>$B%F!<%V%kL>!"%+%i%`L>$K$D$$$F(B</h3>
<p>
$B@)8BBP>](B:$B%Q%i%l%k%b!<%I(B
</p>
<p>
pool_$B$G;O$^$k%F!<%V%k!"%+%i%`L>$O;H$($^$;$s!#%/%(%j=q$-49$($N:]$KFbIt=hM}$G;HMQ$7$^$9!#(B
</p>

<h2>$B%7%9%F%`(B DB</h2>

<h3>$BJ,3d%k!<%k(B</h3>
<p>
pgpool-II $B$G$OJ,3d%k!<%k$NBP>]$N%+%i%`$O(B 1 $B$D$N$_$H$7$^$9!#(Bx $B$H(B y $B$N(B
OR $B>r7o$J$I$H$$$C$?$b$N$K$OBP1~$7$F$$$^$;$s!#(B
</p>

<h2>$B%S%k%I$KI,MW$J4D6-(B</h2>

<h3>libpq</h3>
<p>
pgpool-II $B$G$O(B libpq $B$r%j%s%/$7$^$9!#(Blibpq $B$N%P!<%8%g%s$O(B 2.0 $B$N>l9g!"(B
configure $B$K<:GT$7$^$9!#I,$:(B libpq 3.0 (PostgreSQL 7.4) $B$r%j%s%/$9$k$h(B
$B$&$K$7$F$/$@$5$$!#$^$?!"(BSystemDB $B$N%P!<%8%g%s$b(B PostgreSQL 7.4 $B0J9_$,(B
$BI,?\$K$J$j$^$9!#(B
</p>

<h2>$B%/%(%j%-%c%C%7%e(B</h2>
<p>
$B8=:_$N%/%(%j%-%c%C%7%e$N<BAu$G$O!"%-%c%C%7%e$NL58z2=$r<jF0$G9T$&I,MW$,(B
$B$"$j$^$9!#(B
</p>

</p>

<h1>$B%j%U%!%l%s%9(B<a name="reference"></a></h1>
<h2>PCP$B%3%^%s%I%j%U%!%l%s%9(B</h2>

<h3>PCP$B%3%^%s%I0lMw(B</h3>
<p>
   pgpool-II$B$rA`:n$9$k(BUNIX$B%3%^%s%I$H$7$F!"0J2<$N$b$N$,$"$j$^$9!#(B
<pre>
   * pcp_node_count	- $B%N!<%I?t$r<hF@$9$k(B
   * pcp_node_info	- $B%N!<%I>pJs$r<hF@$9$k(B
   * pcp_proc_count	- $B%W%m%;%90lMw$r<hF@$9$k(B
   * pcp_proc_info	- $B%W%m%;%9>pJs$r<hF@$9$k(B
   * pcp_systemdb_info	- $B%7%9%F%`(BDB$B>pJs$r<hF@$9$k(B
   * pcp_detach_node	- $B%N!<%I$r@Z$jN%$9(B
   * pcp_attach_node	- $B%N!<%I$rI|5"$5$;$k(B
   * pcp_stop_pgpool	- pgpool-II$B$rDd;_$5$;$k(B
   * pcp_recovery_node  - $B%^%9%?%N!<%I$r;H$C$F%N!<%I$N%G!<%?$r:FF14|!"%N!<%I5/F0$5$;$k(B
</pre>
</p>


<h2>$B6&DL0z?t(B</h2>
<p>
   $BA4$F$N%3%^%s%I$K$O6&DL$9$k0z?t$,$"$j$^$9!#$3$l$O@\B3$9$k(Bpgpool-II$B$N>pJs$dG'>Z(B
   $B>pJs$J$I$G$9!#(B
<pre>
   ex)
   $ pcp_node_count [-d] 10 localhost 9898 postgres hogehoge

    $BBh0l0z?t(B    - $B%?%$%`%"%&%HCM(B
		$BIC?t$G%?%$%`%"%&%HCM$r;XDj$7$^$9!#$3$N;~4VFb$K(Bpgpool-II$B$+$i1~(B
		$BEz$,$J$$>l9g$O%3%M%/%7%g%s$r@ZCG$7$F=*N;$7$^$9!#$J$*!"(B
		$B$3$N%*%W%7%g%s$O(B 2.1 $B$+$i$OL5;k$9$k$h$&$K$J$C$F$$$^$9!#(B
    $BBhFs0z?t(B	- pgpool-II$B$,2TF0$7$F$$$k%[%9%HL>(B
    $BBh;00z?t(B	- pgpool-II$B$,<u$1IU$1$F$$$k%]!<%HHV9f(B
    $BBh;M0z?t(B	- PCP$B%f!<%6L>(B
    $BBh8^0z?t(B	- PCP$B%Q%9%o!<%I(B

	$B%*%W%7%g%s0z?t$H$7$F!"(B-d$B$,$"$j$^$9!#(B-d$B$,;XDj$5$l$k$H%G%P%C%0>pJs$r=PNO$7$^$9!#(B
</pre>
<p>
    PCP$B%f!<%6L>$H%Q%9%o!<%I$O(B ./configure $B;~$K(B --prefix $B$G;XDj$7$?(B
    '$B%$%s%9%H!<%k%G%#%l%/%H%j(B/etc' $B$K$"$k(B pcp.conf $BFb$K5-=R$5$l$F$$$k$b$N$r;XDj(B
    $B$7$^$9!#(Bpcp.conf $B%U%!%$%k$N>l=j$,%G%U%)%k%H0J30$N>l=j$K$"$k>l9g!"(Bpgpool $B$N(B
    -F $B%*%W%7%g%s$G$=$N0LCV$r;XDj$9$k$3$H$,$G$-$^$9!#(B
    $B%Q%9%o!<%I$O%3%^%s%I$KEO$9;~E@$G(Bmd5$B2=$5$l$F$$$kI,MW$O$"$j$^$;$s!#(B
</p>


<h2>$B%3%^%s%I72(B</h2>
<p>
   $BA4$F$N%3%^%s%I$O!"<B9T$7$?7k2L$,I8=`=PNO$KI=<($5$l$^$9!#(B
</p>


<h3>pcp_node_count</h3>
<pre>
   $B=q<0!'(B
	pcp_node_count  _timeout_  _host_  _port_  _userid_  _passwd_
</pre>
<p>
   pgpool-II$B$N(B pgpool.conf $B$GDj5A$5$l$?%N!<%I$NAm?t$rI=<($7$^$9!#@Z$jN%$5$l$F$$$k(B
   $B%N!<%I$N6hJL$O$7$^$;$s!#(B
</p>


<h3>pcp_node_info</h3>
<pre>
   $B=q<0!'(B
	pcp_node_info  _timeout_  _host_  _port_  _userid_  _passwd_  _nodeid_
</pre>

<p>
   pgpool-II$B$N(B pgpool.conf $B$GDj5A$5$l$?%N!<%I$N>pJs$rI=<($7$^$9!#=PNO7k2L$O0J2<$N(B
   $BNc$NDL$j$G$9!#(B
</p>

<pre>
   ex)
   $ pcp_node_info 10 localhost 9898 postgres hogehoge 0
   host1 5432 1 1073741823.500000

   $B7k2L$O0J2<$N=g$NDL$j$G$9!#(B
   1. $B%N!<%I$N%[%9%HL>(B
   2. $B%N!<%I$N%]!<%HHV9f(B
   3. $B%9%F!<%?%9(B
   4. $B%m!<%I%P%i%s%9%&%'%$%H(B

   $B%9%F!<%?%9$O(B[0..3]$B$^$G$N?t;z$GI=$o$5$l$^$9!#3F?t;z$N0UL#$O!'(B
   0 - $B=i4|2=;~$N$_$KI=$o$l$k!#(BPCP$B%3%^%s%I$GI=<($5$l$k$3$H$O$J$$!#(B
   1 - $B%N!<%I2TF/Cf!#@\B3L5$7(B
   2 - $B%N!<%I2TF/Cf!#@\B3M-$j(B
   3 - $B%N!<%I%@%&%s(B
</pre>

<p>
   $B%m!<%I%P%i%s%9%&%'%$%H$O(BNormalize$B$5$l$?%U%)!<%^%C%H$G=PNO$5$l$^$9!#(B
</p>
<p>
   $BDj5A$5$l$F$$$J$$%N!<%I(BID$B$r;XDj$9$k$H(BBackendError$B$HI=<($5$l!"=*N;%3!<%I(B12$B$G=*(B
   $BN;$7$^$9!#(B
</p>


<h3>pcp_proc_count</h3>
<p>
<pre>
   $B=q<0!'(B
	pcp_proc_count  _timeout_  _host_  _port_  _userid_  _passwd_
</pre>
<p>
   pgpool-II$B$N;R%W%m%;%9$N%W%m%;%9(BID$B$r0lMwI=<($7$^$9!#J#?t$"$k>l9g$O6uGrJ8;z$G6h(B
   $B@Z$i$l$^$9!#(B
</p>


<h3>pcp_proc_info</h3>
<p>
<pre>
   $B=q<0!'(B
	pcp_proc_info  _timeout_  _host_  _port_  _userid_  _passwd_  _processid_
</pre>
<p>
   pgpool-II$B$N;R%W%m%;%9>pJs$rI=<($7$^$9!#=PNO7k2L$O0J2<$NNc$NDL$j$G$9!#(B
</p>
<pre>
   ex)
   $ pcp_proc_info 10 localhost 9898 postgres hogehoge 3815
   postgres_db postgres 1150769932 1150767351 3 0 1

   $B7k2L$O0J2<$N=g$NDL$j$G$9!#(B
   1. $B@\B3$7$F$$$k%G!<%?%Y!<%9L>(B
   2. $B@\B3$7$F$$$k%f!<%6L>(B
   3. $B%W%m%;%9%9%?!<%H;~9o(B
   4. $B%3%M%/%7%g%s:n@.;~9o(B
   5. $B%W%m%H%3%k%a%8%c!<%P!<%8%g%s(B
   6. $B%W%m%H%3%k%^%$%J!<%P!<%8%g%s(B
   7. $B%3%M%/%7%g%s;HMQ2s?t(B

   $B%3%M%/%7%g%s$,%P%C%/%(%s%I$KBP$7$FD%$i$l$F$$$J$$>l9g!"%G!<%?$OI=<($5$l$^$;$s!#(B
   $B%3%M%/%7%g%s>pJs$,J#?t$"$k>l9g!"J#?t9T$K(B1$B9T(B1$B%3%M%/%7%g%s>pJs$GI=<($5$l$^$9!#(B
   $B;~9o$O(BEPOCH$B%?%$%`$+$i$NIC?t$GI=$o$5$l$^$9!#(B

   $BDj5A$5$l$F$$$J$$%W%m%;%9(BID$B$r;XDj$9$k$H(BBackendError$B$HI=<($5$l!"=*N;%3!<%I(B12$B$G(B
   $B=*N;$7$^$9!#(B
</pre>
</p>

<h3>pcp_systemdb_info</h3>
<p>
<pre>
   $B=q<0!'(B
	pcp_systemdb_info  _timeout_  _host_  _port_  _userid_  _passwd_

   pgpool-II$B$N%7%9%F%`(BDB$B>pJs$rI=<($7$^$9!#=PNO7k2L$O0J2<$NDL$j$G$9!#(B

   $ pcp_systemdb_info 10 localhost 9898 postgres hogehoge
   localhost 5432 yamaguti '' pgpool_catalog pgpool 3
   yamaguti public accounts aid 4 aid bid abalance filler integer integer integer character(84) dist_def_accounts
   yamaguti public branches bid 3 bid bbalance filler integer integer character(84) dist_def_branches
   yamaguti public tellers bid 4 tid bid tbalance filler integer integer integer character(84) dist_def_tellers

   $B$^$:0l9TL\$K%7%9%F%`(BDB$B$N>pJs$,I=<($5$l$^$9!#7k2L$O0J2<$N=g$NDL$j$G$9!#(B

   1. $B%[%9%HL>(B
   2. $B%]!<%HHV9f(B
   3. $B%f!<%6L>(B
   4. $B%Q%9%o!<%I!#6u$N>l9g$O(B''$B$GI=<($5$l$^$9!#(B
   5. $B%9%-!<%^L>(B
   6. $B%G!<%?%Y!<%9L>(B
   7. $BJ,;6Dj5A4X?t$N?t(B

   $BFs9TL\0J9_$OJ,;6Dj5A$,I=<($5$l$^$9!#J#?t$NDj5A$,$"$k>l9g$O!"0l$D$NDj5A$K$D$-(B
   $B0l9TI=<($5$l$^$9!#7k2L$O0J2<$N=g$NDL$j$G$9!#(B

   1. $BJ,;6BP>]$N%G!<%?%Y!<%9L>(B
   2. $BJ,;6BP>]$N%9%-!<%^L>(B
   3. $BJ,;6BP>]$N%F!<%V%kL>(B
   4. $BJ,;6%-!<%+%i%`L>(B
   5. $BJ,;6BP>]%F!<%V%kCf$N%+%i%`?t(B
   6. $B%+%i%`L>%j%9%H(B(5.$B$N%+%i%`?tJ,I=<($5$l$^$9(B)
   7. $B%+%i%`7?%j%9%H(B(5.$B$N%+%i%`?tJ,I=<($5$l$^$9(B)
   8. $BJ,;6Dj5A4X?tL>(B

   $B%7%9%F%`(BDB$B$,Dj5A$5$l$F$$$J$$(B(pgpool-II$B%b!<%I$G$J$$!"$+$D%/%(%j%-%c%C%7%e$,%*(B
   $B%U$N(B)$B>l9g$K<B9T$9$k$H!"(BBackendError$B$HI=<($5$l!"=*N;%3!<%I(B12$B$G=*N;$7$^$9!#(B
</pre>
</p>


<h3>pcp_detach_node</h3>
<p>
<pre>
   $B=q<0!'(B
	pcp_detach_node  _timeout_  _host_  _port_  _userid_  _passwd_  _nodeid_

   pgpool-II$B$N%N!<%I$r@Z$jN%$7$^$9!#(B
</pre>
</p>


<h3>pcp_attach_node</h3>
<p>
<pre>
   $B=q<0!'(B
	pcp_attach_node  _timeout_  _host_  _port_  _userid_  _passwd_  _nodeid_

   pgpool-II$B$N%N!<%I$rI|5"$5$;$^$9!#(B
</pre>
</p>

<h3>pcp_stop_pgpool</h3>
<p>
<pre>
   $B=q<0!'(B
	pcp_stop_pgpool  _timeout_  _host_  _port_  _userid_  _passwd_  _mode_

   pgpool-II$B$r;XDj$5$l$?%b!<%I$G%7%c%C%H%@%&%s$7$^$9!#;XDj$G$-$k%b!<%I$O0J2<$NDL(B
   $B$j$G$9!#(B

   s	- smart $B%b!<%I(B
   f	- fast $B%b!<%I(B   
   i	- immediate $B%b!<%I(B

   pgpool-II$B$,5/F0$7$F$$$J$$>l9g$O(BConnectionError$B$HI=<($5$l!"=*N;%3!<%I(B8$B$G=*N;$7(B
   $B$^$9!#(B

   $B"((B $B8=:_$O(B fast $B%b!<%I$H(B immediate $B%7%c%C%H%@%&%s$N=hM}$K6hJL$O$"$j(B
      $B$^$;$s!#L?Na$rAw$C$?;~E@$G%/%i%$%"%s%H$,$$$k!&$$$J$$$K4X$o$i$:(B
      $B%7%c%C%H%@%&%s=hM}$rB(:B$K9T$$$^$9!#(B
</pre>
</p>

<h3>pcp_recovery_node</h3>
<p>
<pre>
   $B=q<0!'(B
	pcp_recovery_node  _timeout_  _host_  _port_  _userid_  _passwd_  _nodeid_

   pgpool-II$B$N%N!<%I$r%G!<%?$r:FF14|$5$;$?>e$GI|5"$5$;$^$9!#(B
</pre>
</p>


<h2>$B=*N;%9%F!<%?%9(B</h2>
<p>
   PCP$B%3%^%s%I$O@5>o$K=hM}$r=*N;$7$?>l9g!"%9%F!<%?%9(B'0'$B$G=*N;$7$^$9!#%(%i!<$,5/(B
   $B$-$?>l9g$O0J2<$N%9%F!<%?%9$K$h$j=*N;$7$^$9!#(B
<pre>
   UNKNOWNERR	1	$BITL@$J%(%i!<(B
   EOFERR	2	EOF$B%(%i!<(B
   NOMEMERR	3	$B%a%b%jITB-(B
   READERR	4	$B%5!<%P$+$i$N%G!<%?FI$_9~$_%(%i!<(B
   WRITEERR	5	$B%5!<%P$X$N%G!<%?=q$-9~$_%(%i!<(B
   TIMEOUTERR	6	$B%?%$%`%"%&%H(B
   INVALERR	7	PCP$B%3%^%s%I$X$NIT@5$J%*%W%7%g%s(B
   CONNERR	8	$B%5!<%P@\B3%(%i!<(B
   NOCONNERR	9	$B@\B3$,B8:_$7$J$$(B
   SOCKERR	10	$B%=%1%C%H%(%i!<(B
   HOSTERR	11	$B%[%9%HL>2r7h%(%i!<(B
   BACKENDERR	12	$B%5!<%P$G$N(BPCP$B=hM}%(%i!<!#B8:_$7$J$$%W%m%;%9(BID$B$N>pJs$r<h(B
			$BF@$7$h$&$H$7$?>l9g$J$I(B
   AUTHERR	13	$BG'>Z%(%i!<(B
</pre>
</p>

<h1>$BFbIt>pJs(B<a name="internal"></a></h1>
<p>
  pgpool-II$B%P!<%8%g%s(B 2.0 $B0J9_$G$O!"(B1.x $B%P!<%8%g%s$HHf$YBgI}$J2~NI$,2C$($i$l$F$$$^$9!#(B
  1.x $B%P!<%8%g%s$N>pJs$H$O8_49@-$,$J$$$N$GCm0U$7$F$/$@$5$$!#(B	
</p>

<h2>$B%Q%i%l%k<B9T%(%s%8%s(B</h2>

<p>
pgpool-II$B$K$O%Q%i%l%k<B9T%(%s%8%s$,AH$_9~$^$l$F$$$^$9!#(B
</p>
<p>
$B$3$N%(%s%8%s$O!"%Q%i%l%k%b!<%I$N$H$-$K!"3F%N!<%I$KF1$8%/%(%j$rLd$$9g(B
$B$o$;!"%N!<%I$N1~Ez=g$K7k2L$r%U%m%s%H%(%s%I$KAw?.$9$k%(%s%8%s$N$3$H$r(B
$B;X$7$^$9!#(B
</p>

<h2>$B%/%(%j=q$-49$((B</h2>
<p>
$B%Q%i%l%k%b!<%I$G(Bpgpool-II$B$,9T$&%/%(%j=q$-49$($K$D$$$F@bL@$7$^$9!#(B
</p>
<p>
$B%Q%i%l%k%b!<%I$G$O!"%/%i%$%"%s%H$,Aw?.$7$?8!:w7O(B(SELECT$B=hM}(B)$B$NLd$$9g$o$;$O!"Bg$-$/J,$1$F0J2<$N(B 2 $B$D$N=hM}$r9T$$$^$9!#(B
</p>
<ol>
  <li>$B%/%(%j$N2r@O(B
  <li>$B%/%(%j$N=q$-49$((B
</ol>

<p>
$B$3$l$i#2$D$N=hM}$K$D$$$F=g$K@bL@CW$7$^$9!#(B
</p>

<h3>$B%/%(%j$N2r@O(B</h3>
<h4>
<p>
$B$O$8$a$K(B
</p>
</h4>
<p>
$B%/%i%$%"%s%H$,Aw?.$7$?8!:w7O$NLd$$9g$o$;$O!"(BSQL$B%Q!<%5$rDL$7$F$+$i%7%9%F%`(BDB$B$KEPO?$5$l$F$$$k>pJs$r(B
$B$b$H$K%/%(%j2r@O$r9T$$$^$9!#%/%(%j$N2r@O$K$O<B9T%9%F!<%?%9$NA+0\$GI>2A$7$F$$$^$9!#(B
$B$3$3$G<B9T%9%F!<%?%9$H$$$&$N$O!"$"$k%G!<%?$N=89g$,2?=h$G<hF@$^$?$O=hM}$G$-$k$N$+H=CG$9$k$b$N$G$9!#(B
$BNc$($P!"(Bpgpool_catalog.dist_def$B%F!<%V%k$KEPO?$5$l$F$$$k%F!<%V%k$N%G!<%?=89gA4BN$O!"%G!<%?$,J,3d$5(B
$B$l$F$$$k$N$G$9$Y$F$N%N!<%I$+$i<hF@$9$kI,MW$,$"$j$^$9!#5U$K!"(Bpgpool_catalog.replicate_def$B%F!<%V%k(B
$B$KEPO?$5$l$F$$$k%F!<%V%k$N%G!<%?=89gA4BN$O!"$9$Y$F$N%N!<%I$+$i<hF@$9$k$N$G$O$J$/!"$$$:$l$+$N%N!<%I(B
$B$+$i<hF@$9$l$P==J,$G$9!#(B
$B$3$3$G$9$Y$F$N%N!<%I$G=hM}$9$kI,MW$,$"$k>uBV$r(B P $B>uBV!"0l$D$N%N!<%I$G=hM}$9$kI,MW$,$"$k>uBV$r(B L $B>u(B
$BBV$H$7$FDj5A$7$^$9!#(B
$B$b$&0l$D!"FCJL$J>uBV$H$7$F(B S $B>uBV$,$"$j$^$9!#$3$l$O!"$9$Y$F$N%N!<%I$+$i<hF@$7$?A4%G!<%?$KBP$7$F=hM}(B
$B$r9T$C$?$H$-$N>uBV$N$3$H$r<($7$^$9!#(B
$BNc$($P!"%=!<%H=hM}$G$9!#(Bpgpool_catalog.dist_def$B%F!<%V%k$KEPO?$5$l$F$$$k%F!<%V%k$N%G!<%?$KBP$9$k%=!<(B
$B%H=hM}$O!"$9$Y$F$N%N!<%I$+$i%G!<%?$r<hF@$7$?8e$K<B9T$9$kI,MW$,$"$j$^$9!#(B

</p>
<p>
$B8!:w7O%/%(%j$O!"0J2<$N=hM}=g$K2r@O$5$l!"<B9T%9%F!<%?%9$,A+0\$7$F$$$-$^$9!#(B
$B<B9T%9%F!<%?%9$,A+0\$7$F$$$/2aDx$G(B S $B>uBV$H$J$k$H!"0J9_$N=hM}$OI,$:(B S $B>uBV$H$J$j$^$9!#(B
$B$=$7$F:G8e$N(BSELECT$B$N:G=*<B9T%9%F!<%?%9$N>uBV$K$h$j!"2?=h$N(BDB$B$G=hM}$5$l$k$+$,(B
$B7hDj$7$^$9!#(B

<ol>
  <li> UNION$B!"(BEXTRACT$B!"(BINTERCECT$B$,MxMQ$5$l$F$$$k$+$I$&$+(B
  <li> FROM $B6g$N<B9T%9%F!<%?%9(B
  <li> TARGETLIST $B$K$h$k<B9T%9%F!<%?%9$NJQ2=(B
  <li> WHERE $B6g(B $B$K$k<B9T%9%F!<%?%9$NJQ2=(B
  <li> GROUP BY $B6g$K$h$k<B9T%9%F!<%?%9$NJQ2=(B
  <li> HAVING $B6g$K$h$k<B9T%9%F!<%?%9$NJQ2=(B
  <li> ORDER BY $B6g$K$h$k<B9T%9%F!<%?%9$NJQ2=(B
  <li> LIMIT OFFSET $B=R8l$K<B9T%9%F!<%?%9$NJQ2=(B
  <li> SELECT$B$N:G=*<B9T%9%F!<%?%9$N<hF@(B
</ol>
<p>
SELECT$B$N:G=*<B9T%9%F!<%?%9$H=hM}$5$l$k>l=j$H$N4X78$O!"0J2<$NDL$j$G$9!#(B
</p>

<p>
<table border>
<tr><td>$B<B9T%9%F!<%?%9(B</td><td>$B=hM}$5$l$k>l=j(B</td></tr>
<tr><td align = center>L</td><td>$B$$$:$l$+$N%N!<%I$KLd$$9g$o$;$r9T$&(B</td></tr>
<tr><td align = center>P</td><td>$B$9$Y$F$N%N!<%IF1$8Ld$$9g$o$;$r9T$$!"%Q%i%l%k<B9T%(%s%8%s$rDL$7$F%/%i%$%"%s%H$KJV5Q(B</td></tr>
<tr><td align = center>S</td><td>$B%7%9%F%`(BDB$B$G=hM}$r9T$C$?8e$K%/%i%$%"%s%H$KJV5Q(B</td></tr>
</td></tr>
</table>
</p>

<p>
$B$^$?%5%V%/%(%j$KBP$7$F$b>e5-$N%k!<%k$,E,1~$5$l$^$9!#(B
$B0J2<$NC1=c$J%/%(%j$G$O!"(Bp1-table$B$,%7%9%F%`(BDB$B$N(Bpgpool_catalog.dist_def$B%F!<%V%k$KEPO?$5$l$F$$$k>l9g!"$D$^$j%G!<%?$NJ,3d$,(B
$B9T$o$l$F$$$k>l9g$K$O!"%5%V%/%(%j$N:G=*<B9T%9%F!<%?%9$,(B P $B$H$J$j!"$=$N7k2L%5%V%/%(%j$N8F$S=P$785$G$"$k(B SELECT $B$N<B9T%9%F!<%?%9$b(B P $B$H$J$j$^$9!#(B
<pre>
	SELECT * FROM (SELECT * FROM P1-table) as P2-table;
</pre>
</p>
<p>
$B<!$K6qBNE*$K<B9T%9%F!<%?%9$,$I$N$h$&$KA+0\$9$k$N$+@bL@$7$^$9!#(B
$B$^$:(B2. From$B6g$N<B9T%9%F!<%?%9(B $B$+$i@bL@$7$^$9!#(B

</p>
<h4>
<p>
FROM $B6g$N<B9T%9%F!<%?%9(B
</p>
</h4>
<p>
$B8!:w7O%/%(%j(B(SELECT)$B$O(B FROM $B6g$K$h$j%G!<%?$N=89g$rDj5A$7$^$9!#(BFROM$B6g$+$i9=@.$;$l$k%G!<%?=89g$O(B P $B>uBV(B, L $B>u(B
$BBV!"$^$?$O(B S $B>uBV$r<h$j$^$9!#(BFROM$B6g$K;XDj$7$F$$$k%F!<%V%k$,0l$D$N>l9g$K$O!"C1=c$K%F!<%V%k$N<B9T%9%F!<%?%9$,(B
FROM$B6g$+$i9=@.$5$l$k%G!<%?=89gA4BN$N<B9T%9%F!<%?%9$H$J$j$^$9!#(BFROM$B6g$KJ#?t$N%F!<%V%k!"Kt$O%5%V%/%(%j$,$"$k>l9g(B
$B$K$O!"7k9gJ}K!$K$h$C$F0J2<$N$h$&$K<B9T%9%F!<%?%9$,7hDj$7$^$9!#(B
</p>

<p>
<table border>
<tr><td>$B7k9gJ}<0(B</td><td align = center colspan = 3> LEFT OUTER JOIN </td><td align = center colspan = 3> RIGHT OUTER JOIN </td><td align = center colspan = 3>FULL OUTER JOIN</td><td align = center colspan = 3>$B!!!!!!$=$NB>!!!!!!(B</td></tr>
<tr><td align = center>$B:8!@1&(B</td><td> P </td><td> L </td><td> S </td><td> P </td><td> L </td><td> S </td><td> P </td><td> L </td><td> S </td><td> P </td><td> L </td><td> S </td></tr>
<tr><td align = center> P </td><td> S </td><td> P </td><td> S </td><td> S </td><td> S </td><td> S </td><td> S </td><td> S </td><td> S </td><td> S </td><td> P </td><td> S </td></tr>
<tr><td align = center> L </td><td> S </td><td> L </td><td> S </td><td> P </td><td> L </td><td> S </td><td> S </td><td> L </td><td> S </td><td> P </td><td> L </td><td> S </td></tr>
<tr><td align = center> S </td><td> S </td><td> S </td><td> S </td><td> S </td><td> S </td><td> S </td><td> S </td><td> S </td><td> S </td><td> S </td><td> S </td><td> S </td></tr>
</td></tr>
</table>
</p>

<p>
$B0J2<$NNc$G$O!"(BP1-table$B$,(B P $B>uBV$N%F!<%V%k$G(BL1-table,L2-table$B$,(B L $B>uBV$N%F!<%V%k$@$H$7$^$9!#(B
$B$9$k$H>e5-$NI=$K$h$j!"(BP1-table ($B:8(B)$B$H(BL1-table ($B1&(B) $B$,7k9g$7(B P $B>uBV$H$J$j!"$5$i$K(B P $B>uBV$H(B L $B>uBV$N(BL2-table$B$,7k9g$7$F(BFROM$B6g$N<B9T%9%F!<%?%9$O(B P $B>uBV$H$J$j$^$9!#(B 
<pre>
	SELECT * FROM P1-table,L1-table,L2-table;
</pre>
</p>

<h4>
<p>
TARGETLIST $B$H(B WHERE$B6g$N<B9T%9%F!<%?%9(B
</p>
</h4>

<p>
$B4pK\E*$J%/%(%j$G$O!"(BFROM $B6g$HF1$8<B9T%9%F!<%?%9$r7Q>5$7$^$9!#(B
$B$7$+$7!"(BTARGETLIST $B$H(B WHERE$B6g$N<B9T%9%F!<%?%9$O!"0J2<$N>l9g$KJQ2=$7$^$9!#(B
<ol>
  <li> $B%5%V%/%(%j$,$"$k>l9g(B
  <li> FROM$B6g$,(B P $B>uBV$N>l9g!"$+$D!"(BTARGETLIST$B$K=8Ls4X?t!"(BDISTINCT$B$,$"$k>l9g(B 
  <li> FROM$B6g$GDj5A$7$?%F!<%V%k(B($B%G!<%?=89g(B)$B$KB8:_$7$J$$%+%i%`$,;H$o$l$F$$$k>l9g(B
</ol>
</p>
<p>
$B%5%V%/%(%j$N:G=*<B9T%9%F!<%?%9$,(B P $B>uBV!"$^$?$O!"(BS $B>uBV$N>l9g$K$O!"(BTARGETLIST$B!"(BWHERE$B6g$N<B9T%9%F!<%?%9(B
$B$O!"(BS $B>uBV$H$J$j$^$9!#(B
$B2<5-$NNc$G$O!"%5%V%/%(%j$G;H$o$l$F$$$k%F!<%V%k$,!"(BP $B>uBV$N>l9g$K$O!"%5%V%/%(%j$N:G=*<B9T%9%F!<%?%9$O(B
P $B>uBV$H$J$j$^$9!#$=$N$?$a(B L1-table$B$N<B9T%9%F!<%?%9$K0MB8$;$:$K!"(BWHERE$B6g$N<B9T%9%F!<%?%9$O(B S$B>uBV$H$J$j(B
$B!"$3$N%/%(%j$N<B9T>l=j$O%7%9%F%`(BDB$B$H$J$j$^$9!#(B
</p>
<pre>
	SELECT * FROM L1-table where L1-table.column IN (SELECT * FROM P1-table);
</pre>

<p>
FROM $B6g$,(B P $B>uBV$N>l9g!"$+$D!"(BTARGETLIST$B$K=8Ls4X?t$,$"$k>l9g$O!"%G!<%?$r<hF@8e$K=87W$9$kI,MW$,$"$k$?$a!"(BS$B>uBV(B
$B$KA+0\$7$^$9!#(B
$B$^$?!"FCDj$N>r7o$N2<$G$O!"=8Ls4X?t$K$h$k:GE,2=$,9T$o$l$^$9!#(B
</p>

<p>
FROM$B6g$GDj5A$7$?%F!<%V%k!"%5%V%/%(%j$K$OB8:_$7$J$$%+%i%`$,(BWHERE$B6g$K;H$o$l$F$$$k>l9g$,$"$j$^$9!#$3$l$O0J2<$N$h$&$JAj4X%5%V%/%(%jFb$GH/@8$7$^$9!#(B
</p>
<pre>
	SELECT * FROM L1-table FROM L1-table.col1 IN (SELECT * FROM P1-table WHERE P1-table.col = L1-table.col1);
</pre>
<p>$B>e5-$N%5%V%/%(%j$K;H$o$l$F$$$k(B L1-table.col1$B$O!"(BL1-table$B$r30It;2>H$7$F$$$^$9!#$3$N>l9g$K%5%V%/%(%j$N(BWHERE$B6g$N<B9T%9%F!<%?%9$O(B S $B>uBV$H$J$j$^$9!#(B


<h4>
<p>
GROUP BY $B6g!"(BHAVING $B6g!"(BORDER BY $B6g!"(BLIMIT OFFSET $B=R8l$N<B9T%9%F!<%?%9(B
</p>
</h4>

<p>
WHERE$B6g$N<B9T%9%F!<%?%9$,(B P $B>uBV$N>l9g$K!"(BGROUP BY , HAVING $B6g!"(BORDER BY $B6g!"(BLIMIT OFFSET $B=R8l$,$"$k$H(BS$B>uBV$KA+0\$7$^$9!#(B
GROUP BY$B6g$,B8:_$7$J$$%/%(%j$O(BWHERE$B6g$N<B9T%9%F!<%?%9$r7Q>5$7$^$9!#$^$?!"(BHAVING$B6g$,L5$$>l9g$K$O(BGROUP BY $B6g$N<B9T%9%F!<%?%9$r7Q>5$7$^$9!#(B
ORDER BY $B6g!"(BLIMIT OFFSET $B=R8l$bF1MM$G$9!#(B
</p>

<p>
UNION$B!"(BEXTRACT$B!"(BINTERSECT$B$,;H$o$l$F$$$k>l9g(B
</p>

<p>
UNION$B!"(BEXTRAT$B!"(BINTERSECT$B$,;H$C$F$$$k%/%(%j$O:8B&$N(BSELECT$BJ8$H1&B&$N(BSELECT$BJ8$N:G=*<B9T%9%F!<%?%9$K0MB8$7$^$9!#(B
$B:8B&$H1&B&$N(BSELECT$BJ8$N:G=*<B9T%9%F!<%?%9$,6&$K(B L $B>uBV$N;~$K$O!"(BL $B>uBV$H$J$j$^$9!#(B
$B$^$?!":8B&$H1&B&$N(BSELECT$BJ8$N:G=*<B9T%9%F!<%?%9$,6&$K(B P $B>uBV!"$+$D(BUNION ALL$B$N>l9g$K$O(B P $B>uBV$H$J$j$^$9!#(B
$B$=$NB>$NAH$_9g$o$;$N>l9g$K$O!"(BS$B>uBV$H$J$j$^$9!#(B
</p>

<h4>
<p>
SELECT$B$N:G=*<B9T%9%F!<%?%9$N<hF@(B
</p>
</h4>

<p>
$B<B9T%9%F!<%?%9$,$9$Y$F(B L $B>uBV$N>l9g$K$O(BL$B>uBV!"$9$Y$F(B P $B>uBV$N>l9g$K$O!"(BP $B>uBV$H$J$j$^$9!#(B
$B$=$l0J30$O!"(BS $B>uBV$H$J$j$^$9!#(B
L $B>uBV$N>l9g$K$O!"(Bpgpool.conf$B$N(Bloadbalance_mode$B$,(Btrue$B$N>l9g$K$OIi2YJ,;6$5$l!"$=$l0J30$N>l9g$K$O(BMASTER$B$KLd$$9g$o$;$r9T$$$^$9!#$^$?!"(BP $B>uBV$N>l9g$K$O!"%Q%i%l%k<B9T%(%s%8%s$r;H$C$FJBNs=hM}$,9T$o$l$^$9!#(BS $B>uBV$N>l9g$K$O!"<!$N%U%'!<%:$G$"$k%/%(%j=q$-49$($r9T$$$^$9!#(B
</p>

<h3>$B%/%(%j=q$-49$((B</h3>

<p>
$B%/%(%j$N2r@O%U%'!<%:$G<hF@$7$?<B9T%9%F!<%?%9$r;H$C$F%/%(%j$N=q$-49$($r9T$$$^$9!#(B
$BNc$H$7$F(B P $B>uBV$N(B P1-table $B$H(B L $B>uBV$N(B L1-table $B$r;H$C$?%/%(%j$G@bL@$7$^$9(B
</p>
<pre>
	SELECT P1-table.col, L1-table.col FROM P1-table,L1-table where P1-table.col = L1-table.col order by P1-table.col;
</pre>
<p>
$B$3$N%/%(%j$G$O(B ORDER BY $B6g$,$"$k$?$a(B S $B>uBV$H$J$j!"(BFROM$B6g!"(BWHERE$B6g!"(BTARGETLIST$B$O(B P $B>uBV$H$J$j$^$9!#(B
$B$3$N$h$&$J%/%(%j$G$O0J2<$N$h$&$K=q$-49$($i$l$^$9!#(B
</p>
<pre>
	SELECT P1-table.col, L1-table.col FROM
	$B!!!!!!(Bdblink(select pool_parallel(SELECT P1-table.col, L1-table.col FROM P1-table,L1-table where P1-table.col = L1-table.col)) 
  	order by P1-table.col;
</pre>
<p>
$B$3$3$G(Bdblink$B$O(Bpgpool-II$B$KLd$$9g$o$;$rAw?.$7$^$9!#$^$?!"(Bpool_parallel$B$O0z?t$N%/%(%j$r%Q%i%l%k<B9T%(%s%8%s$r$K$o$?$94X?t$G$9!#$J$*!">e5-$O$"$/$^$G%$%a!<%8$G$"$j<B:]$K<B9T2DG=$J%/%(%j$G$O$"$j$^$;$s!#(B
</p>
<p>  
$B>e5-$NNc$N$h$&$K!"(BFROM$B6g!"(BWHERE$B6g!"(BTARGETLIST$B$,$9$Y$F(B P $B>uBV$N>l9g$K$O!"(BFROM$B6g!"(BWHERE$B6g!"(BTARGETLIST$B$r$^$H$a$FJBNs=hM}$r9T$$$^$9!#(B

<p>
$B<!$NNc$r8+$F$_$^$9!#(B
</p>
<pre>
	SELECT L1-table.col FROM L1-table WHERE L1-table.col % 2 = 0 AND L1-table.col IN (SELECT P1-table FROM P1-table) ;
</pre>
<p>
$B$3$NNc$G$O!"(BFROM $B6g$O(B L $B>uBV!"(BTARGETLIST$B$b(B L $B>uBV!"(BWHERE$B6g$O(B P $B>uBV$N%5%V%/%(%j$r;}$C$F$$$k$?$a(B S $B>uBV$H$J$j$^$9!#(B
$B$3$l$O0J2<$N$h$&$K=q$-49$($,9T$o$l$^$9!#(B
</p>
<pre>
	SELECT L1-table.col FROM dblink(SELECT loadbalance(SELECT L1-table.col FROM L1-table WHERE L1-table.col % 2 = 0 AND TRUE))
		WHERE
			L1-table.col %2 = 0 AND 
		  L1-table.col IN 
		  (
		  	SELECT P1-Table FROM 
		  	dblink(select pool_parallel(SELECT P1-table FROM P1-table))
		  ) ;
</pre>
<p>
$B$3$3$G!"(Bpool_loadbalance$B$O%/%(%j$r$$$:$l$+$N%N!<%I$KAw?.$9$k4X?t$G$9!#(B
</p>

<h4>
<p>
$B=8Ls$K$h$k%/%(%j=q$-49$((B
</p>
</h4>

<p>
$B=87W$r9T$&%/%(%j(B($B=8Ls4X?t!"(BGROUP BY )$B$O3F%N!<%I$K7W;;$5$;!"%7%9%F%`(BDB$B$G(B
$B:F=87W$r9T$&$3$H$K$h$j!"%7%9%F%`(BDB$B$NIi2Y$r8:$i$7%Q%U%)!<%^%s%9$b8~>e(B
$B$7$^$9!#(B
</p>
<p>
$B$^$:!":G=i$K(Bpgpool-II$B$,<B:]$K9T$&%/%(%j$N=q$-49$($r8+$F$_$^$9!#(B
</p>
<p>
FROM $B6g$,(B P $B>uBV$G(B count(*) $B$r;H$C$?%/%(%j$O!"0J2<$N$h$&$K=q$-49$($,9T$o$l$^$9!#(B
</p>

<pre>
    select count(*) from P1-table;

    -> $B%/%(%j=q$-49$((B

    SELECT 
        sum(pool_c$1) as count 
    FROM 
        dblink(select pool_parallel('select count(*) from  P1-table'))
					AS pool_$1g (pool_c$1 bigint); 
</pre>

<p>
$B3F%N!<%I$G(Bcount(*) $B$r7W;;$7$?8e$K!"%7%9%F%`(BDB$B$G=87W(B(sum)$B$r$9$k$3$H$K$h(B
$B$j!"L\E*$,C#@.$G$-$^$9!#(B
</p>

<p>
$B>e5-$N$h$&$J%/%(%j=q$-49$($,9T$o$l$k>r7o$O0J2<$N>l9g$G$9!#(B
</p>
<ol>
  <li>FROM $B6g$,(BP $B>uBV(B
  <li>$B%?!<%2%C%H%j%9%H$K=8Ls4X?t(B(count, sum, min, max,avg$B$N$_BP1~(B),GROUP BY$B$K;XDj$7$?%+%i%`$,;H$o$l$F$$$k(B
  <li>WHERE $B6g$,(BP $B>uBV(B
  <li>HAVING $B6g(B $B$K;H$o$l$F$$$k=8Ls4X?t(B(count, sum, min, max,avg$B$N$_BP1~(B),FROM$B6g$GDj5A$5$l$F$$$k%+%i%`(B,GROUP BY$B$K;XDj$7$?%+%i%`$N$_;H$o$l$F$$$k!#(B
</ol>
<pre>
  $BNc(B)
     select P1-table.col,L1-table.col,count(*),avg(P1-table.col) from P1-table,L1-table wehre P1-table.col %2 = 0 group by P1-table.col,L1-table.coli having count(*) < 100
</pre>

<h3>$B%Q%i%l%k%b!<%I$NCm0U;v9`(B</h3>
<p>
$B%Q%i%l%k%b!<%I$G$O!"%/%(%j$N2r@O$N:]$K%+%i%`L>$H%?%$%W$,I,MW$K$J$j$^$9!#$=$N$?$a!"%5%V%/%(%j$N(BTARGETLIST$B$K<0!"4X?t$r;H$C$F$$$k>l9g$K$OJLL>$H7?L>$r%-%c%9%H$G$D$1$kI,MW$,$"$j$^$9!#<0!"4X?t$K7?$N%-%c%9%H$,$J$$>l9g$K$O!"(Btext$B7?$H$7$F=hM}$5$l$^$9$N$GCm0U$7$F$/$@$5$$!#(B
$B$J$*!"=8Ls4X?t$N>l9g$G$+$D=8Ls$K$h$k%/%(%j=q$-49$($,9T$o$l$k>l9g$K$O!"(Bcount$B$O(Bbigint$B7?!"(Bsum$B$O(Bnumeric$B7?$H$J$j$^$9!#(Bmin,max$B$N>l9g$K$O!"0z?t$,F|IU7?$N>l9g$K$OF|IU7?$H$7$F7W;;$5$l!"$=$l0J30$O(Bnumeric$B$H$7$F7W;;$5$l$^$9!#(Bavg$B$O(Bsum/count$B$H$7$F=hM}$5$l$^$9!#(B
</p>

<h3>$B%Q%i%l%k%b!<%I$N%Q%U%)!<%^%s%9$K$D$$$F(B</h3>
<p>
<p>
SELECT$B$N:G=*<B9T%9%F!<%?%9$H%Q%U%)!<%^%s%9$N$*$*$h$=$NL\0B$O0J2<$N$H$*$j$G$9!#(B
<table border>
<tr><td>$B<B9T%9%F!<%?%9(B</td><td>$B%Q%U%)!<%^%s%9(B</td></tr>
<tr><td align = center>L</td><td>$B%Q%i%l%k%/%(%j$rMxMQ$7$J$$$N$G(Bpgpool-II$B$N%*!<%P!<%X%C%I$r=|$-!"C1BN%N!<%I$H$N@-G=Nt2=$O$J$$(B</td></tr>
<tr><td align = center>P</td><td>$BJBNs=hM}$r9T$&$N$G9bB.!"FC$K%7!<%1%s%7%c%k%9%-%c%s$N>l9g$K$O8z2L$,$G$k!#$^$?!"%G!<%?$rJ,3d$9$k$3$H$G%F!<%V%k%5%$%:(B(/1$BBf(B)$B$,>.$5$/$J$k$3$H$K$h$j%-%c%C%7%e$K>h$j$d$9$/$J$k(B </td></tr>
<tr><td align = center>S</td><td>$B=8Ls$K$h$k%/%(%j=q$-49$($,9T$o$l$k$H9bB.(B</td></tr>
</td></tr>
</table>
</p>

</p>

<h1>$B%A%e!<%H%j%"%k(B</h1>
<p>
pgpool-II$B$N%A%e!<%H%j%"%k$O(B<a href="tutorial-ja.html">$B$3$3(B<a/>$B$K$"$j$^$9!#@'Hs$4Mw2<$5$$!#(B
</p>

<h1>$B%j%j!<%9%N!<%H(B<a name="release"></a></h1>

<h2>2.3.3 (tomiteboshi) 2010/04/23</h2>
<p>$B$3$N%P!<%8%g%s$G$O!"(B2.3.2.2 $B0JA0$N?'!9$J%P%0$,=$@5$5$l$F$$$^$9!#(B</p>

<h3>$B8_49@-$N$J$$JQ99(B</h3>
<ul>
<li>$B$3$N%P!<%8%g%s$+$i!"(Bpgpool $B$,0JA0$h$jB?$/$N6&M-%a%b%j$r;H$&$h$&$K$J$C$?$N$GCm0U$7$F$/$@$5$$!#(B
$B$3$l$K$h$kLdBj$,(B pgpool $B$N5/F0;~$KH/@8$7$?>l9g$O!"(Bpgpool $B$N%m%0$r8+$F$/$@$5$$!#(B
"could not create shared memory segment: Cannot allocate memory" $B$H$$$C$?%a%C%;!<%8$,$"$l$P!"%7%9%F%`$N6&M-%a%b%j$rA}$d$7$F$/$@$5$$!#(B</li>
<li>$B%Q%i%l%k%b!<%I$,!"%l%W%j%1!<%7%g%s%b!<%I$+%m!<%I%P%i%s%9%b!<%I$,M-8z$G$J$$$H;H$($J$$$h$&$K$J$j$^$7$?!#(B
pgpool-II $B$G$O$:$C$H!"%l%W%j%1!<%7%g%s%b!<%I$+%m!<%I%P%i%s%9%b!<%I$,M-8z$G$J$$$H$-%Q%i%l%k%b!<%I$O@5$7$/F0:n$7$F$$$^$;$s$G$7$?!#(B(Kitagawa)</li>
<li>insert_lock $B$N%G%U%)%k%HCM$r(B false $B$KJQ99$7$^$7$?!#$3$l$O!"%^%9%?!&%9%l!<%V%b!<%I$G$O(B true $B$K$7$F$bL50UL#$J$?$a$G$9!#(B
Fujii Masao $B$5$s$N;XE&$K$h$j=$@5$7$^$7$?!#(B(Tatsuo)</li>
</ul>

<h3>$B?7$7$/DI2C$7$?%I%-%e%a%s%H(B</h3>
<ul>
<li>README.online-recovery $B$rDI2C$7$^$7$?!#$3$N%I%-%e%a%s%H$K$O!"%*%s%i%$%s%j%+%P%j$NFbItE*$J$3$H$,=q$$$F$"$j$^$9!#(B</li>
</ul>

<h3>$B%P%0=$@5(B</h3>
<ul>
<li>$B;R%W%m%;%9$,(B segfault $B$r5/$3$9(B pgpool-II 1.0 $B$+$iD9$$4VB8:_$7$?%P%0$r=$@5$7$^$7$?!#(B
$B$3$l$O!"?F%W%m%;%9$,(B shmem $B%5%$%:$N7W;;$r4V0c$($F$$$?$3$H$K5/0x$7$^$9!#%P%02r@O(B(Kitagawa)$B!"%Q%C%A:n@.(B(Tatsuo)</li>

<li>$B%I%-%e%a%s%H$K%Q%i%l%k%b!<%IMQ$N0J2<$N@)Ls$rDI5-$7$^$7$?!#(B(Kitagawa)
  <ul>
  <li>- NATURAL JOIN $B$O;H$($^$;$s!#(B</li>
  <li>- USING $B6g$,!"%/%(%j=q$-49$(=hM}$K$h$C$F(B ON $B6g$KJQ49$5$l$^$9!#(B</li>
  </ul>
</li>

<li>$B%Q%i%l%k%b!<%I$N$H$-!"(BUSING $B6g$r4^$`(B JOIN $B9=J8$N=q$-49$($GH/@8$9$k2DG=@-$,$"$C$?%/%i%C%7%e$r=$@5$7$^$7$?!#(B(Kitagawa)<br>
  $B$3$N=$@5$K$h$j!"0J2<$N$h$&$J(B JOIN $B9=J8$,;H$($k$h$&$K$J$j$^$9!#(B<br>
  $BNc!'(B<pre>
SELECT * FROM a JOIN b USING (aid) JOIN c USING (cid);
SELECT * FROM a JOIN b USING (aid) JOIN c USING (cid) JOIN d USING</pre>
</li>

<li>$B%Q%i%l%k%/%(%j$G!"J,;6%-!<Ns$NA0$K(B current_time $B$r4^$`(B INSERT $BJ8$N%Q!<%9$,$G$-$k$h$&$K=$@5$7$^$7$?!#(B</li>

<li>SimpleForwardToBackend() $B$r=$@5$7$^$7$?!#(B
$B$3$l$K$h$j!"3HD%%W%m%H%3%k$r;H$C$?%/%i%$%"%s%H$,(B bind $B%(%i!<$N$h$&$J%(%i!<$rH/@8$5$;$?$H$-$K!"(B
pgpool $B$,%P%C%/%(%s%I$N1~Ez$rBT$AB3$1$J$/$J$j$^$9!#(B
$B$3$N%P%0$O!"%^%9%?!&%9%l!<%V%b!<%I!"(Braw $B%b!<%I!"%3%M%/%7%g%s%W!<%k%b!<%I$GH/@8$7$F$$$^$7$?!#(B
$B$3$l$r=$@5$7$?$3$H$K$h$C$F!"%3%^%s%I$,%(%i!<$K$J$C$?$"$H!"%(%i!<$r2sI|$5$;$k$?$a$K(B SYNC $B%a%C%;!<%8$rAw$k$h$&$K$J$j$^$9!#(B(Kitagawa)</li>

<li>select() $B$r<B9TCf$N(B pgpool $B;R%W%m%;%9$,!"(BSIGINT/SIGQUIT $B%7%0%J%k$rL5;k$9$k$h$&$K=$@5$7$^$7$?!#(B
$B%7%0%J%k$,Aw$i$l$F$b(B pgpool $B$O(B select() $B$r:F<B9T$7$h$&$H$9$k$N$G!"7k2LE*$K%7%0%J%k$,L5;k$5$l$^$9!#(B(Tatsuo)</li>

<li>connect_inet_domain_socket_by_port/connect_unix_domain_socket_by_port $B$,(B SIGTERM/SIGINT/SIGQUIT $B%7%0%J%k$r(B
$B<u$1<h$C$F$$$J$$$+%A%'%C%/$9$k$h$&$K=$@5$7$^$7$?!#(B Daniel Codina $B$5$s$+$i$N%P%0Js9p$K4p$E$-$^$9!#(B(Tatsuo)</li>

<li>"kind mismatch" $B$H$$$&%(%i!<%a%C%;!<%8$r@8@.$9$k:]$K%/%i%C%7%e$9$k2DG=@-$,$"$C$?$N$G!"$3$l$r=$@5$7$^$7$?!#(B
$B0JA0$OLdBj$J$+$C$?$N$G$9$,!"(B2.3.2$B$G%(%s%P%0$7$^$7$?!#(B(Tatsuo)</li>

<li>$B%X%k%9%A%'%C%/$K$*$1$k%P%0$r=$@5$7$^$7$?!#(B
$B%3!<%I$,H4$1$?$J$I$G%M%C%H%o!<%/>c32$,H/@8$7$?$H$-$K!"(Bconnect() $B$r8F$s$G$$$k4V$O%X%k%9%A%'%C%/$,9T$J$o$l$F$$$^$;$s$G$7$?!#(B
$B$3$l$O!"(Bconnect() $B$,(B ALARM $B%7%0%J%k$K$h$C$F3d$j9~$^$l$?:]$K!"(Bconnect_unix_domain_socket()/connect_inet_domain_socket() $B$,:F;n9T$7$F$$$?$?$a$G$9!#(B
$B$3$N=$@5$G$O!">e5-$N4X?t$KBP$7$F:F;n9T$r%3%s%H%m!<%k$9$k$h$&$J0z?t$rDI2C$7$F$$$^$9!#(B
$B$3$l$O!"(BDaniel Codina $B$5$s$N%P%0Js9p$HJ,@O$K4p$E$/=$@5$G$9!#(B(Tatsuo)</li>

<li>2.3.2.2 $B$G!"(BSimpleForwardToBackend $B$G$N%?%$%`%9%?%s%W$N=q$-49$($K$*$$$F%(%s%P%0$7$F$$(B
$B$?$N$G!"$3$l$r=$@5$7$^$7$?!#$3$l$O!"%P%0%H%i%C%/(B #1010771 $B$K$"$k(B Peter Pramberge $B$5$s$i$NJs9p$K4p$E$-$^$9!#(B(Tatsuo)</li>

<li>$B%Q%i%l%k%/%(%j$K$*$1$k(B "*" $B$N=q$-49$($r=$@5$7$^$7$?!#(Bsho $B$5$s$+$iDs6!$$$?$@$$$?%Q%C%A$r<h$j9~$_$^$7$?!#(B(Kitagawa)</li>

<li>connect_inet_domain_socket_by_port() $B$G%(%i!<%a%C%;!<%8$r=PNO$9$k:]$K!"(B
strerror() $B$G$O$J$/(B hstrerror() $B$r;H$&$h$&$K=$@5$7$^$7$?!#(B (Tatsuo)</li>
</ul>


<h2>2.3.2.2 (tomiteboshi) 2010/02/22</h2>
<h3>$B35MW(B</h3>
<p>
$B$3$N%P!<%8%g%s$G$O!"(B2.3.x$B$K$*$1$kMM!9$J%P%0$r=$@5$7$F$$$^$9!#(B
$B$H$/$K%?%$%`%9%?%s%W$N=q$-49$(;~$N%/%i%C%7%e$r4^$`CWL?E*$J%P%0$,=$@5$5$l$F$$$k$N$G!"(B
$B$9$Y$F$N(B2.3$B%f!<%6$OAa5^$K%"%C%W%0%l!<%I$9$k$3$H$r$*4+$a$7$^$9!#(B
</p>

<h3>$B%P%0=$@5(B</h3>
<p>
<ul>
 <li>$B%?%$%`%9%?%s%W%G!<%?$r4^$`3HD%%W%m%H%3%kLd$$9g$o$;$G!"(B"message: invalid string in message"$B$N%(%i!<$r=P$7$F%H%i%s%6%/%7%g%s$,=*N;$7$F$7$^$&%P%0$r=$@5$7$^$7$?(B(Tatsuo)
 <li>$B%?%$%`%9%?%s%W%G!<%?$r4^$`3HD%%W%m%H%3%kLd$$9g$o$;$G!"(Bbind$B;~$K(BNULL$B$r4^$`%Q%i%a!<%?$,B8:_$9$k$H(Bpgpool$B$,%/%i%C%7%e$9$k%P%0$r=$@5$7$^$7$?(B(Tatsuo)
 <li>pgpool_status$B>e$G$9$Y$F$N%N!<%I$,%@%&%s$N$H$-$K$O$3$l$rL58z$H$7!"!V(Ball node down$B>I8u72!W$,5/$-$J$$$h$&$K$7$^$7$?(B(Tatsuo)
</ul>
</p>

<h2>2.3.2.1 (tomiteboshi) 2010/02/11</h2>
<h3>$B35MW(B</h3>
<p>
$B$3$N%P!<%8%g%s$G$O!"(B2.3.x$B$K$*$$$F!"%(%i!<$H$J$k$h$&$J(BSQL$B$r<B9T$9$k$H(Bpgpool$B$X$N%;%C%7%g%s$,@ZCG$5$l$k%P%0$r=$@5$7$F$$$^$9(B(Akio Ishida)$B!#(B
</p>

<h2>2.3.2 (tomiteboshi) 2010/02/07</h2>
<h3>$B35MW(B</h3>
<p>
$B$3$N%P!<%8%g%s$G$O!"(B2.3.1$B$N?'!9$J%P%0$,=$@5$5$l$F$$$^$9!#(B
$BFC$K!"%?%$%`%9%?%s%W$N=q$-49$(5!G=$N%P%0$,=$@5$5$l$F$$$k$N$G!"(B2.3, 2.3.1$B%f!<%6$O$J$k$Y$/Aa$/(B2.3.2$B$K%"%C%W%0%l!<%I$9$k$3$H$r$*4+$a$7$^$9!#(B
</p>
<p>
$B$^$?!"(B2.3.2$B$G$O(BSSL$B%5%]!<%H!"%i!<%8%*%V%8%'%/%H$N%l%W%j%1!<%7%g%s5!G=$,DI2C$5$l$F$$$^$9!#(B
</p>

<h3>$B2~NIE@(B</h3>
<p>
<ul>
 <li>$B%U%m%s%H%(%s%I$H(Bpgpool-II$B!"(Bpgpool-II$B$H(BPostgreSQL$B$N4V$N(BSSL$BDL?.$,%5%]!<%H$5$l$^$7$?(B(Sean Finney)
 <li>$B%i!<%8%*%V%8%'%/%H$N%l%W%j%1!<%7%g%s$,%5%]!<%H$5$l$^$7$?(B(Tatsuo)
 <li>$B%X%k%9%A%'%C%/$H%*%s%i%$%s%j%+%P%j$N:]$K2DG=$G$"$l$P(Bpostgres$B%G!<%?%Y!<%9$r;H$&$h$&$K$7$^$7$?!#(B
	  postgres$B%G!<%?%Y!<%9$,B8:_$7$J$$>l9g$O(Btemplate1$B$,;H$o$l$^$9(B($B0JA0$NF0:n$HF1$8(B)$B!#(B
	  $B$3$l$K$h$j!"(BDROP DATABASE$B$J$I$N%3%^%s%I$,%*%s%i%$%s%j%+%P%jCf$G$b;H$($k$h$&$K$J$j$^$7$?(B(Tatsuo)
 <li>$BLd$$9g$o$;$N%Q!<%9=hM}$G%(%i!<$,5/$-$?$H$-$K!"(BSQL$BJ8$r%m%0$K=PNO$9$k$h$&$K$7$^$7$?!#(B
	  $B%(%s%3!<%G%#%s%0%(%i!<$J$I$,H/@8$7$?:]$K$O(BPostgreSQL$B$N%m%0$K$b(BSQL$BJ8$,5-O?$5$l$J$$$?$a!"$3$l$OM-8z$G$9(B(Tatsuo)
 <li>kind mismatch$B%(%i!<$,H/@8$7!"$=$N860x$,(BDEALLOCATE$B%3%^%s%I$@$C$?>l9g$K(BDEALLOCATE$B$,:o=|$7$h$&$H$7$?(BPREPARED$BJ8$N85$K$J$C$?(BSQL$BJ8$r%m%0$K=PNO$9$k$h$&$K$7$^$7$?(B(Tatsuo)
</ul>
</p>

<h3>$B%P%0=$@5(B</h3>
<p>
<ul>
 <li>$B$?$^$K%?%$%`%9%?%s%W$r=q$-49$($?Ld$$9g$o$;$,%^%9%?0J30$N(BDB$B%N!<%I$KIT@5$J%Q%1%C%H$rAw$C$F$7$^$&LdBj$r=$@5$7$^$7$?(B(Tatsuo)
 <li>V2$B%W%m%H%3%k$G%?%$%`%9%?%s%W$N=q$-49$(=hM}$,%(%i!<$K$J$k$N$r=$@5$7$^$7$?(B(Toshihiro Kitagawa)
 <li>master/slave$B%b!<%I!"$+$D%H%i%s%6%/%7%g%sFb$GH/9T$5$l$k(BBind$B!"(BDescribe$B!"(BClose$B%a%C%;!<%8$O%^%9%?$@$1$KAw$k$h$&$K$7$^$7$?(B(Tatsuo)
 <li>2.3$B$G(Bsmart shutdown$B$K$h$j$9$0$KDd;_$7$J$/$J$C$?%P%0$r=$@5$7$^$7$?(B(Toshihiro Kitagawa)
 <li>$B%U%m%s%H%(%s%I$+$i$NIT@5$J%3%^%s%I$r<u$1IU$1$J$$$h$&$K$7$^$7$?(B(Xavier Noguer)
 <li>$B0\?"@-$r9b$a$k$?$a$K!"(Bfprintf$B$N0z?t$K(B%dz$B$r;HMQ$9$k$h$&$K$7$^$7$?(B(Tatsuo)
 <li>$B%3%s%Q%$%i%o!<%K%s%0$r=$@5$7$^$7$?(B(Tatsuo)
 <li>master/slave$B%b!<%I$N:]$K!"(BDEALLOCATE$B$r$9$Y$F$N%N!<%I$KAw$i$J$$$h$&$K$7$F!"(Bkind mismatch$B%(%i!<$rKI$0$h$&$K$7$^$7$?(B(Tatsuo)
</ul>
</p>

<h2>2.3.1 (tomiteboshi) 2009/12/18</h2>
<h3>$B35MW(B</h3>
<p>
$B$3$N%P!<%8%g%s$G$O!"(B2.3$B$N?'!9$J%P%0$,=$@5$5$l$F$$$^$9!#(B
$BFC$K!"$"$k>r7o$G(BDB$B$KIT@5$J?tCM$,=q$-9~$^$l$k%P%0$,=$@5$5$l$F$*$j!"0J2<$N<($9>r7o$K9gCW$9$k;H$$J}$r$7$F$$$k(B2.3$B%f!<%6$O;j5^%P!<%8%g%s%"%C%W$9$k$3$H$r$*4+$a$7$^$9!#(B
</p>

<h3>$B%P%0=$@5$H2~NIE@(B</h3>
<p>
<ul>
 <li>$B0J2<$N$9$Y$F$N>r7o$K9gCW$9$k>l9g!"(BDB$B$KIT@5$JCM$,=q$-9~$^$l$k%P%0$r=$@5$7$^$7$?(B(Tatsuo)
	  <p>
	  <ol>
	   <li>$B%l%W%j%1!<%7%g%s%b!<%I$GF0:n(B
	   <li>64bit OS
	   <li>INSERT$B$^$?$O(BUPDATE$B$K$*$$$F!"(Bnow(), CURRENT_TIMESTAMP, CURRENT_DATE, CURRENT_TIME$B$rD>@\4^$`$+!"%F!<%V%k$N%G%U%)%k%HCM$K4^$s$G$$$k(B
	   <li>$B99$K$=$N(BSQL$BFb$K(B32bit(10$B?J$G(B-2147483648$B$+$i(B2147483647)$B$NHO0O$rD6$($k@0?tDj?t$,4^$^$l$F$$$k(B
	  </ol>
	  $B0J>e$rK~$?$9(BSQL$B$NNc(B:
	  <pre>
	  INSERT INTO t1(id, regdate) VALUES(98887776655, NOW());
	  </pre>
	  $B$3$NNc$G$O!"(B98887776655$B$,(B32bit$BCM$K%+%C%H$5$l$F=q$-9~$^$l$^$9!#(B
	  </p>

  <li>18$B0J>e$N(BDB$B%N!<%I$r;HMQ$7$F$$$k>l9g$K!"(Bshow pool_status$B$G%/%i%C%7%e$9$k%P%0$r=$@5$7$^$7$?!#(B
$B$3$N%P%0$O(Bshow pool_status$B$,<BAu$5$l$F$+$i$:$C$HB8:_$7$F$$$?$b$N$G$9!#(B

  <li>"kind mismatch"$B%a%C%;!<%8$,=P$?:]$K!"(Bkind$B$,(BERROR$B$^$?$O(BNOTICE$B$J$i$P!"$=$N%a%C%;!<%8$rI=<($9$k$h$&$K$7$^$7$?!#$3$l$K$h$j!"(BPostgreSQL$B$N%m%0$r8+$J$/$F$b(Bkind mismatch$B%(%i!<$N860x$rMF0W$KD4$Y$k$3$H$,$G$-$k$h$&$K$J$j$^$7$?(B(Tatsuo)
 </ul>
</p>

<h2>2.3 (tomiteboshi) 2009/12/07</h2>
<h3>$B35MW(B</h3>
<p>
$B$3$N%P!<%8%g%s$G$O!"%l%W%j%1!<%7%g%s5!G=$K2~NI$,2C$($i$l!";~9o%G!<%?(B(CURRENT_TIMESTAMP, CURRENT_DATE, now()$B$J$I(B)$B$r@5$7$/07$&$3$H$,$G$-$k$h$&$K$J$j$^$7$?!#(B
$B$^$?!"F1;~@\B3?t$,(B1(num_init_children$B$,(B1)$B$N$H$-$N%l%W%j%1!<%7%g%s@-G=8~>e$7$F$$$^$9!#(B
$B$^$?!"(Bpgpool-II$B:F5/F0;~$KA02s$N(BDB$B%N!<%I$N%@%&%s>uBV$r5-O?$7!"ITMQ0U$KI|5l%N!<%I$K%G!<%?$r=q$-9~$s$G%G!<%?$NIT@09g$,5/$-$k$3$H$rKI$0$3$H$,$G$-$k$h$&$K$J$j$^$7$?!#(B
$B$=$N$[$+!"%/%(%j%m%0$,2~NI$5$l$F(BDB$B%N!<%IC10L$N>u67$,GD0.$7$d$9$/$J$j!"$^$?%U%!%$%k%*!<%P$N5sF0$,:Y$+$/@)8f$G$-$k$h$&$K$J$j$^$7$?!#(B
$B$J$*!"(Bpgpool-II 2.3$B$K$O!"(Bpgpool-II 2.2.1$B$+$i(B2.2.6$B$^$G$N$9$Y$F$N%P%0=$@5!"2~NI$,4^$^$l$F$$$^$9!#(B
</p>

<h3>pgpool-II 2.2.$B$+$i$NHs8_49@-(B</h3>
<ul>
<li>[logdir]$B$N2<$K(Bpgpool_status$B$H$$$&%U%!%$%k$,:n$i$l$k$N$G!"(Bpgpool$B$N<B9T%f!<%6$,FI$_=q$-$G$-$k8"8B$rM?$($F$*$$$F$/$@$5$$!#(B
</ul>

<h3>$B2~NIE@(B</h3>
<ul>
<li>$B%l%W%j%1!<%7%g%s$K$*$$$F!";~9o%G!<%?(B(CURRENT_TIMESTAMP, CURRENT_DATE, now()$B$J$I(B)$B$r@5$7$/07$&$3$H$,$G$-$k$h$&$K$J$j$^$7$?!#FC$K%"%W%j%1!<%7%g%s$KJQ99$r2C$($k$3$H$J$/!"(BINSERT/UPDATE$BJ8!"%F!<%V%k$N%G%U%)%k%HCM$K$3$l$i$N;~9o4X?t$r4^$`%1!<%9$G$b@5$7$/%l%W%j%1!<%7%g%s$G$-$^$9(B($B$$$/$D$+@)8B;v9`$,$"$j$^$9!#>\:Y$O(B<a href="#restriction">$B@)8B;v9`(B</a>$B$r;2>H$7$F$/$@$5$$(B)$B!#(B(Akio Ishida)
<li>SQL$B%Q!<%5$r(BPostgreSQL 8.4$B$N$b$N$K%P!<%8%g%s%"%C%W$7$^$7$?(B(Akio Ishida)
<li>$BF1;~@\B3?t$,(B1(num_init_children$B$,(B1)$B$N$H$-$N%l%W%j%1!<%7%g%s@-G=$,(B20%$B$+$i(B100%$B8~>e$7$^$7$?(B(Tatsuo)
<li>$B?7$7$$%G%#%l%/%F%#%V(Blog_per_node_statement$B$,DI2C$5$l$^$7$?(B(Tatsuo)
log_statement$B$H;w$F$$$^$9$,!"(BDB$B%N!<%IC10L$G%m%0$,=PNO$5$l$k$N$G!"%l%W%j%1!<%7%g%s$dIi2YJ,;6$N3NG'$,MF0W$G$9!#(B
$B$^$?!"%P%C%/%(%s%I$N%W%m%;%9(BID$B$bI=<($5$l$k$N$G!"%P%C%/%(%s%I$N%m%0$HJ;$;$F$N2r@O$,MF0W$K$J$C$F$$$^$9!#(B
<li>$B?7$7$$%G%#%l%/%F%#%V(Bfail_over_on_backend_error$B$,DI2C$5$l!"%U%'%$%k%*!<%P$N5sF0$,$h$j:Y$+$/@)8f$G$-$k$h$&$K$J$j$^$7$?(B(Tatsuo)
<li>pgpool-II$BDd;_;~$K%@%&%s$7$?(BDB$B%N!<%I$N>pJs$r%9%F!<%?%9%U%!%$%k$K5-O?$7!"(Bpgpool-II$B$r5/F0$7$?$H$-$K$=$N>pJs$r%j%9%H%"$G$-$k$h$&$K$7$^$7$?(B(Tatsuo)
$B%9%F!<%?%9%U%!%$%k$O(B [logdir]/pgpoo_status $B$H$$$&%U%!%$%k$K=q$+$l$^$9!#(B
<li>EXPLAIN$B$H!"Ld$$9g$o$;$,(BSELECT$B$N$H$-$N(BEXPLAIN ANALYZE$B$,Ii2YJ,;6$5$l$k$h$&$K$J$j$^$7$?!#(B
$B$3$l$K$h$C$F!"(BDB$B%N!<%I$N4V$GBgI}$KLd$$9g$o$;%W%i%s$,0[$k$?$a$K!"(Bkind mismatch$B%(%i!<$,5/$-$k$N$rKI$0$3$H$,$G$-$^$9(B(Tatsuo)
<li>$BF|K\8l%I%-%e%a%s%H$NBN:[$r2~NI$7$^$7$?(B(Tatsuo)
<li>$B%l%W%j%1!<%7%g%s%b!<%I!"%^%9%?!<%9%l!<%V%b!<%IMQ$N%G%U%)%k%H(Bpgpoo.conf.sample$B$,JLESDI2C$5$l$^$7$?(B(Tatsuo)
<li>$B;~9o%G!<%?$N%F%9%H$,DI2C$5$l$^$7$?(B(Akio Ishida)
</ul>

<hr>

<h2>2.2.7 (urukiboshi) 2010/04/15</h2>
<h3>$B35MW(B</h3>
<p>
$B$3$N%P!<%8%g%s$G$O!"(Bkind mismatch$B%(%i!<$,5/$-$?:]$N%(%i!<%a%C%;!<%8$,2~A1$5$l$F$$$^$9!#(B
$B$^$?!"(B2.2.6$B0JA0$N?'!9$J%P%0$,=$@5$5$l$F$$$^$9!#(B
</p>
<h3>$B%P%0=$@5(B</h3>
<ul>
<li>$B%^%9%?!<!?%9%l!<%V%b!<%I!"(Braw$B%b!<%I!"$^$?$O%3%M%/%7%g%s%W!<%k%b!<%I$K$*$$$F!"3HD%%W%m%H%3%k$r;HMQ$7$F$$$k:]$K;~!9%O%s%0%"%C%W$9$k%P%0$r=$@5$7$^$7$?!#$3$l$O!"(B2.3$B7O$+$i$N%P%C%/%Q%C%A$G$9(B(Kitagawa)
<li>pgpool$B;R%W%m%;%9$,(Bsegfault$B$r5/$3$9(Bpgpool-II 1.0$B$+$iD9$$4VB8:_$7$?%P%0$r=$@5$7$^$7$?!#(B
$B$3$l$O!"?F%W%m%;%9$,(Bshmem$B%5%$%:$N7W;;$r4V0c$($F$$$?$3$H$K5/0x$7$^$9!#%P%02r@O(B(Kitagawa)$B!"%Q%C%A:n@.(B(Tatsuo)
<li>$B%^%9%?!<!?%9%l!<%V%b!<%I$K$*$$$F!"L@<(E*$J%H%i%s%6%/%7%g%s$GA`:n$7$?>l9g$O!"(BParse$B!"(BBind$B!"(BDescribe$B!"$=$7$F(BClose$B%a%C%;!<%8$r%^%9%?!<%N!<%I$N$_$KAw$k$h$&$K$7$^$7$?(B(Tatsuo)
<li>postmaster$B$,=*N;$9$k:]$K!"%m%0$r=PNO$9$k$h$&$K$7$^$7$?(B(Tatsuo)
<li>make_persistent_db_connection$B4X?t$N%a%b%j%j!<%/$r=$@5$7$^$7$?(B(Xavier Noguer)
<li>$B%^%9%?!<!?%9%l!<%V%b!<%I$G$O!"(BDEALLOCATE$B$N6/@)E*$J%l%W%j%1!<%7%g%s$r$7$J$$$h$&$K$7$^$7$?!#(B
pgpool$B$O(BParse$B$r$9$Y$F$N%N!<%I$G<B9T$7$J$$$?$a!"$3$l$OL50UL#$GLdBj(B(DEALLOCATE$B<B9T;~$N(Bkind mismatch)$B$r0z$-5/$3$7$F$$$^$7$?(B(Tatsuo)
<li>18$B$h$jB?$$(BDB$B%N!<%I$G(Bshow pool_status$B$r<B9T$7$?$H$-$K%/%i%C%7%e$9$k%P%0$r=$@5$7$^$7$?(B(Tatsuo)
<li>kind mismatch$B%a%C%;!<%8$r2~A1$7$^$7$?!#(Bkind$B$,(BERROR$B!"$^$?$O(BNOTICE$B$N>l9g$O!"2?$,5/$-$F$$$k$+%f!<%6!<$,$o$+$j$d$9$$$h$&$K(BERROR/NOTICE$B%a%C%;!<%8$r=PNO$7$^$9(B(Tatsuo)
</ul>

<h2>2.2.6 (urukiboshi) 2009/12/01</h2>
<h3>$B35MW(B</h3>
<p>
$B$3$N%P!<%8%g%s$G$O!"%m!<%I%P%i%s%9$N=E$_%Q%i%a!<%?(Bweight$B$N07$$$,2~A1$5$l!"(B
$B$^$?0l;~%F!<%V%k$,%^%9%?!<!?%9%l!<%V%b!<%I$GMxMQ$G$-$k$h$&$K$J$j$^$7$?!#(B
$B$b$A$m$s$$$D$b$N$h$&$K(B2.2.5$B0JA0$N?'!9$J%P%0$,=$@5$5$l$F$$$^$9!#(B
</p>
<h3>$B%P%0=$@5(B</h3>
<ul>
<li>DECLARE, CLOSE, FETCH, MOVE$B$,%m!<%I%P%i%s%9$NBP>]$K$J$i$J$/$J$j$^$7$?!#(B
$B$b$7%G!<%?$,99?7$5$l!"%H%i%s%6%/%7%g%s$,%3%_%C%H$5$l$?8e$K(BCLOSE$B$,H/9T$5$l$k$H%G!<%?$N0l4S@-$,$J$/$J$k$+$i$G$9(B
($B$D$^$j!"(Bhold$B$G$-$k%+!<%=%k$N>l9g$N$3$H$r8@$C$F$$$^$9(B)(Tatsuo)
<li>$B%^%9%?!<!?%9%l!<%V%b!<%I$K$*$$$F!"3HD%%W%m%H%3%k$N(BParse$B$r%^%9%?!<>e$G$N$_<B9T$9$k$h$&$K$7$^$7$?!#(B
$B0JA0$O$9$Y$F$N%N!<%I$G(BParse$B$,<B9T$5$l$F$$$?$N$G$9$,!"$3$l$@$HITI,MW$J%m%C%/$,%9%l!<%V$G$b<h$i$l$F$7$^$$$^$9(B(Tatsuo)
<li>uninstall$B$NA0$K$9$Y$F$N%i%s%l%Y%k$+$i(Binit$B%9%/%j%W%H$r:o=|$9$k$h$&$K$7$^$7$?(B(Devrim)
<li>$BG'>Z$K<:GT$7$?$H$-$KE,@Z$J%(%i!<%a%C%;!<%8$r=P$9$h$&$K$7$^$7$?(B(Glyn Astill)
<li>$B%=%1%C%H$X$N=q$-9~$_$K<:GT$7$?$H$-$K%U%m%s%H%(%s%IMQ$J$N$+%P%C%/%(%s%IMQ$J$N$+$o$+$k$h$&$K$7$^$7$?(B(Tatsuo)
<li>$B%U%m%s%H%(%s%IMQ$N%=%1%C%H$K=q$-9~$_<:GT$7$?$H$-$K$$$A$$$A%(%i!<$r=P$5$J$$$h$&$K$7$^$7$?(B(Tatsuo)
<li>$B%^%9%?!<!?%9%l!<%V%b!<%I$G0l;~%F!<%V%k$,;H$($k$h$&$K$J$j$^$7$?!#(B
INSERT/UPDATE/DELETE$B$O<+F0E*$K%^%9%?$N$_$KAw$i$l$^$9!#(BSELECT$B$K4X$7$F$OL@<(E*$K%/%(%j$NA0$K(B
/*NO LOAD BALANCE*/$B$H$$$&%3%a%s%H$rIU$1$J$1$l$P$J$j$^$;$s(B(Tatsuo)
</ul>
</p>

<h2>2.2.5 (urukiboshi) 2009/10/4</h2>
<h3>$B35MW(B</h3>
<p>
$B$3$N%P!<%8%g%s$G$O!"(B2.2.4$B0JA0$N?'!9$J%P%0$,=$@5$5$l$F$$$^$9!#(B
</p>
<h3>$B%P%0=$@5(B</h3>
<ul>
<li>$B%3%M%/%7%g%s?t$N%+%&%s%H$N%_%9$K$h$j!"%*%s%i%$%s%j%+%P%j$,=*$o$i$J$/$J$k%P%0$r=$@5$7$^$7$?(B(Tatsuo)
<li>$BFbItE*$K%m%C%/$rH/9T$9$k:]$K$b%U%m%s%H%(%s%I$,0[>o=*N;$7$?$3$H$r8!=P$7$F(BSQL$B%3%^%s%I$r%-%c%s%;%k$9$k$h$&$K$7$^$7$?(B(Tatsuo)
<li>$B@\B3$N=*N;=hM}$GL58B%k!<%W$K4Y$k$3$H$,$"$k%P%0$r=$@5$7$^$7$?(B(Xavier Noguer, Tatsuo)
<li>$B3HD%%W%m%H%3%k$N%Q!<%9=hM}$G(Bkind mismatch error$B$,5/$-$?:]$K@5$7$$(BSQL$BJ8$rI=<($9$k$h$&$K$7$^$7$?(B(Tatsuo)
<li>$B%I%-%e%a%s%H$r2~A1$7$^$7$?(B(Tatsuo)
</ul>
</p>

<h2>2.2.4 (urukiboshi) 2009/8/24</h2>
<h3>$B35MW(B</h3>
<p>
$B$3$N%P!<%8%g%s$G$O!"(B2.2.3$B0JA0$N?'!9$J%P%0$,=$@5$5$l$F$$$^$9!#(B
</p>
<h3>$B%P%0=$@5(B</h3>
<ul>
 <li>pgpool-II 2.2.2$B$GF~$C$F$7$^$C$?%P%0$r=$@5$7$^$7$?!#%U%m%s%H%(%s%I$,%"%\!<%H$9$k%?%$%_%s%0$K$h$C$F$O!"0J8eFbIt>uBV$,%j%;%C%H$5$l$:!"<!$N%;%C%7%g%s$G(BDML$B$d(BDDL$B$,%^%9%?!<%N!<%I$N$_Aw$i$l!"%N!<%I4V$G%G!<%?$NIT0lCW$,@8$8$k$3$H$,$"$j$^$7$?(B(Tatsuo)
 <li>pgpool-II 2.2.3$B$G%P!<%8%g%s(B2$B%W%m%H%3%k$N%/%i%$%"%s%H$,F0$+$J$/$J$C$F$7$^$C$F$$$?$N$r=$@5$7$^$7$?!#(B
	  $B$^$?!";~4V$N$+$+$k%/%(%j$rBT$C$F$$$k4V$K%U%m%s%H%(%s%I$,0[>o=*N;$7$?$3$H$r8!CN$9$k4V3V$r(B1$BIC$+$i(B30$BIC$KJQ99$7$^$7$?!#$3$N%A%'%C%/$O!"(B2.2.4$B$G$O%W%m%H%3%k%P!<%8%g%s$,(B3$B$N$H$-$N$_M-8z$G$9(B(Tatsuo)
 <li>$B;R%W%m%;%9$r5/F0$9$kA0$K%7%0%J%k$N%V%m%C%/$d%O%s%I%i$N@_Dj$r9T$J$&$h$&$K$7$^$7$?!#(B
$B$3$l$O!"(Bpgpool-II$B$r5/F0$7$?D>8e$K%U%!%$%k%*!<%P$J$I$N;v>]$,H/@8$7$F;R%W%m%;%9$+$i?F%W%m%;%9$K%7%0%J%k$,Aw$i$l$k$H!"(Bpgpool-II$B$N?F%W%m%;%9$,;`$s$G$7$^$&$3$H$,$"$k$+$i$G$9(B(Tatsuo)
</ul>
</p>

<h2>2.2.3 (urukiboshi) 2009/8/11</h2>
<h3>$B35MW(B</h3>
<p>
$B$3$N%P!<%8%g%s$G$O!"(B2.2.2$B0JA0$N?'!9$J%P%0$,=$@5$5$l$F$$$^$9!#(B
</p>
<h3>$B%P%0=$@5(B</h3>
<ul>
 <li>$B%P%C%/%(%s%I$K?7$7$$%3%M%/%7%g%s$rD%$k:]$K!"%P%C%/%(%s%I$N0l$D$,>c32$r5/$7$F$$$k%1!<%9$G!"8e=hM}$NCf$G(Bpgpool-II$B$N;R%W%m%;%9$,Mn$A$k$3$H$,$"$k%P%0$r=$@5$7$^$7$?(B(Tatsuo)
 <li>$B%Q%i%l%k%/%(%j$N%P%0$r=$@5$7$^$7$?(B(Yoshiharu Mori)
 <li>$B3HD%%W%m%H%3%k$N>l9g$K$b%(%i!<%a%C%;!<%8$NCf$G:G8e$K;HMQ$7$?%/%(%j$,I=<($G$-$k$h$&$K$J$j$^$7$?(B(Akio Ishida)
 <li>kind mismatch error$B%a%C%;!<%8$N:n@.$G!"%a%C%;!<%8FbMF$,2u$l$k$3$H$,$"$k%P%0$r=$@5$7$^$7$?(B(Tatsuo, Akio Ishida)
 <li>$B%P%C%/%(%s%I$X$N@\B35-=R;R$N;2>H%?%$%_%s%0$K$h$C$F$O(Bpgpool-II$B$N;R%W%m%;%9$,Mn$A$k$3$H$,$"$k%P%0$r=$@5$7$^$7$?(B(Tatsuo)$B!#(B
 <li>pool_error$B$d(Bpool_log$B$N0z?t$,4V0c$C$F$$$?8D=j$r=$@5$7$^$7$?(B(Akio Ishida)$B!#(B
 <li>statement_timeout$B$N%?%$%`%"%&%H$K$h$k%(%i!<=hM}$r2~NI$7$^$7$?!#<B:]$K$O%?%$%`%"%&%H$^$G$K(Bstatement_timeout$B$G@_Dj$7$?;~4V$NG\$+$+$C$F$$$?$N$rD>$7$^$7$?!#$^$?!"(Bmaster$B$@$1$,(Bstatement_timeout$B$rJV$7$?>l9g$K$bBP1~$G$-$k$h$&$K$7$^$7$?!#0JA0$O(Bkind mismatch$B%(%i!<$K$J$C$F$$$^$7$?(B(Tatsuo)$B!#(B
(master$B0J30$,(Bstatement_timeout$B$rJV$5$J$$%1!<%9$G$O(Bkind mismatch$B%(%i!<$K$J$j$^$9(B)$B!#(B

 <li>health check$B$r$h$j6/2=$7!"(Bpostmaster$B$,(BSIGSTOP$B$G;_$C$F$7$^$C$F$$$k>l9g$b>c328!CN$G$-$k$h$&$K$7$^$7$?!#(B

 <li>$B%P%C%/%(%s%I$K(BSQL$B$rEj$2!"$=$N1~Ez$rBT$C$F$$$k4V$K%/%i%$%"%s%H$,(Bpgpool$B$KBP$9$k%3%M%/%7%g%s$r@ZCG$7$?$3$H$,8!=P$G$-$k$h$&$K$J$j$^$7$?!#(B
$B$?$H$($P!"(BWeb$B%"%W%j%1!<%7%g%s$G$O(BDB$B$KBP$7$F%j%/%(%9%H$rEj$2$F!"1~Ez$,$J$$$H%-%c%s%;%k$9$k$h$&$J$3$H$,IQHK$K5/$j$^$9!#(B
$B$3$N>l9g!":#$^$G$O(Bpgpool$B$d(BPostgreSQL$B$N%W%m%;%9$,;D$C$F$7$^$$!"F1;~@\B3?t$,8O3i$7$?$j!"%m%C%/$r<h$C$?$^$^$N%H%i%s%6%/%7%g%s$,;D$k$J$I$7$F%7%9%F%`A4BN$K1F6A$rM?$($k$3$H$,$"$j$^$7$?!#(B
$B:#2s$N=$@5$K$h$j!"$3$&$7$?>u67$,8!=P$G$-$k$h$&$K$J$C$?$@$1$G$J$/!"(BSQL$B$N1~EzBT$A$N4V$K%/%i%$%"%s%H$,%3%M%/%7%g%s$r@ZCG$7$?:]$K$O!"(BSQL$B%3%^%s%I$N%-%c%s%;%k$r(Bpgpool$B$,9T$J$C$F!"%m%C%/BT$A$J$I$N%P%C%/%(%s%I%W%m%;%9$,;D$k$N$rKI$0$3$H$,$G$-$k$h$&$K$J$j$^$7$?(B(Tatsuo)$B!#(B

<li>$B0z?t$J$7$N(BCLUSTER$B%3%^%s%I$O%H%i%s%6%/%7%g%s$NCf$G$O<B9T$G$-$J$$$N$G!"<+F0%H%i%s%6%/%7%g%s$r%9%?!<%H$7$J$$$h$&$K$7$^$7$?(B(Tatsuo)$B!#(B

<li>$BJ#?t$N%W%j%Z%"%I%9%F!<%H%a%s%H$r;H$C$F$$$k:]$K!"%;%C%7%g%s$N=*$j$G$=$N0lIt$@$1$,2rJ|$5$l$k%P%0$r=$@5$7$^$7$?(B(Akio Ishida)
$B!#(B
<li>sql/pgpool-recovery/pgpool-recovery.c$B$,(BPostgreSQL 8.4$B$G%3%s%Q%$%k$G$-$k$h$&$K$7$^$7$?(B(Tatsuo)$B!#(B

<li>$B3HD%%W%m%H%3%k$r;H$C$F$$$k>l9g$K!"%/%i%$%"%s%H$H(Bpgpool$B$N4V$G$*8_$$$KBT$A>uBV$K$J$C$F$7$^$&$3$H$,$"$k%P%0$r=$@5$7$^$7$?(B(Gavin Sherry)$B!#(B

<li>COPY FROM$B$r<B9TCf$K%/%i%$%"%s%H$,=hM}$rCfCG$7$?>l9g$K!"%P%C%/%(%s%I%W%m%;%9$,;D$C$F$7$^$&%P%0$r=$@5$7$^$7$?(B(Tatsuo)$B!#(B

</ul>

<h2>2.2.2 (urukiboshi) 2009/5/5</h2>
<h3>$B35MW(B</h3>
<p>
$B$3$N%P!<%8%g%s$G$O!"(B2.2.1$B0JA0$N?'!9$J%P%0$,=$@5$5$l$F$$$^$9!#(B
$B$H$j$o$1!"(Bpgpool$B$,%/%i%$%"%s%H$H$N4V$G%G!<%?$N$d$j<h$j$r$7$F$$$k:GCf$K!"(Bpgpool$B$N%/%i%$%"%s%H$,=*N;(B(X)$B%Q%1%C%H$r(Bpgpool$B$KAw?.$;$:$K=*N;$7$?>l9g$K5/$k2DG=@-$,$"$j$^$9!#(B
$B$3$N%P%0$O2a5n$N$9$Y$F$N(Bpgpool$B$KB8:_$7$F$$$^$9!#(B
</p>
<h3>$B%P%0=$@5(B</h3>
<ul>
  <li>$B%U%m%s%H%(%s%I$K(Bpgpool$B$,%G!<%?$rAw?.$9$k:]$N%(%i!<$rL5;k$9$k$h$&$K$7$^$7$?!#$3$l$K$h$C$F!"%P%C%/%(%s%I$H$N4V$GI,MW$J=hM}$,CfCG$5$l$J$$$h$&$K$J$j!"%P%C%/%(%s%I$N4V$G%G!<%?$N0l4S@-$,$J$/$J$kLdBj$,2sHr$5$l$k$h$&$K$J$j$^$7$?(B(Tatsuo)$B!#(B

  <li>$B%^%9%?!<%9%l!<%V%b!<%I$K4X$9$k(B2.2.1$B$N=$@5$N:]$K@8$8$?%P%0$r=$@5$7$^$7$?!#%W%j%Z%"%I%9%F!<%H%a%s%H$r;H$$2s$9$H%O%s%0%"%C%W$9$k2DG=@-$,$"$j$^$7$?(B(Toshihiro)$B!#(B

  <li>SQL$B%3%^%s%I$N(BPREPARE$B$H%W%m%H%3%k%l%Y%k$N(BEXECUTE$B$,:.:_$9$k$H%P%C%/%(%s%I$,%/%i%C%7%e$9$k%P%0$r=$@5$7$^$7$?!#$3$N%P%0$,!"(B2.2$B$G;}$A9~$^$l$?$b$N$G$9(B(Tatsuo)$B!#(B

  <li>$B%3%M%/%7%g%s$N%j%;%C%HMQ$NLd9g$o$;$r<B9TCf$K%(%i!<$,5/$-$?>l9g$K!"(BPostgreSQL$B$N%m%0$K(B"unexpected EOF on client connection"$B$,5-O?$5$l$kLdBj$r=$@5$7$^$7$?(B(Tatsuo)$B!#(B
</ul>

<h2>2.2.1 (urukiboshi) 2009/4/25</h2>
<h3>$B35MW(B</h3>
<p>
$B$3$N%P!<%8%g%s$G$O!"(B2.2$B$N?'!9$J%P%0$,=$@5$5$l$F$$$^$9!#(B
</p>
<h3>$B%P%0=$@5(B</h3>
<ul>
  <li>master/slave$B%b!<%I$G!"(BDEALLOCATE$B$,<:GT$9$k$3$H$,$"$kLdBj$r=$@5$7$^$7$?!#(B
	   $B$3$l$O!":G=i$N(BPREPARE$B$,(Bslave$B$G<B9T$5$l$J$$$3$H$K$h$k$b$N$G$9(B(Toshihiro)

  <li>pgpool.spec$B$J$I$r(B2.2$BBP1~$K$7$^$7$?(B(Devrim)

  <li>Version 2$B%W%m%H%3%k$G$O(Binsert_lock$B$,L5;k$5$l$k$h$&$K$7$^$7$?(B(Tatsuo)

  <li>$B%Q%i%a!<%?JQ99%a%C%;!<%8$,%P%C%/%(%s%I$+$iFO$/EY$K%m%0$,=PNO$5$l$k$N$r;_$a$^$7$?(B(Tatsuo)

  <li>$B%I%-%e%a%s%H$GDI2C$7K:$l$?%U%!%$%k$rEPO?$7$^$7$?(B(Tatsuo)
</ul>

<h2>2.2 (urukiboshi) 2009/2/28</h2>
<h3>$B35MW(B</h3>
<p>
$B$3$N%P!<%8%g%s$G$O!"(BSERIAL$B%G!<%?$N07$$$H%*%s%i%$%s%j%+%P%j$K2~NI$,9T$J$o$l$F$$$^$9!#(B
$B$^$?!"%H%i%s%6%/%7%g%sJ,N%%l%Y%k$,%7%j%"%i%$%6%V%k$N>l9g$K!"(BDB$B%N!<%I4V$G%G!<%?$N0l4S@-$,$J$/$J$k2DG=@-$,$"$kLdBj!"%/%(%j$N%-%c%s%;%k$,$G$-$J$$LdBj$,=$@5$5$l$^$7$?!#(B
</p>

<h3>$B?75!G=(B</h3>
<p>
<ul>
<li>insert_lock$B$,M-8z$J>l9g!"(BSERIAL$B7?$r;}$D%F!<%V%k$@$1$,%m%C%/$5$l$k$h$&$K$J$j$^$7$?(B(Tatsuo)$B!#(B
<li>$B@_Dj9`L\(Bclient_idle_limit_in_recovery$B$,DI2C$5$l$^$7$?!#(B
	 $B%*%s%i%$%s%j%+%P%j$NBh(B2$B%9%F!<%8$G%/%i%$%"%s%H$,%"%$%I%k$N$^$^5o:B$k$3$H$K$h$C$F!"(B
	 $B%*%s%i%$%s%j%+%P%j$,?J9T$7$J$/$J$k$3$H$rKI$0$3$H$,$G$-$^$9(B(Tatsuo)$B!#(B
<li>$B@_Dj9`L\(Bpid_file_name$B$,DI2C$5$l$^$7$?!#$3$l$O!"(Bpgpool-II$B$N(Bpid$B%U%!%$%k$r;XDj$7$^$9!#(B
	 $B$3$l$K$h$j!"(Blogdir$B$O;HMQ$5$l$J$/$J$j$^$7$?(B(Tatsuo)$B!#(B
<li>DECLARE, FETCH, CLOSE$B$GIi2YJ,;6$5$l$k$h$&$K$J$j$^$7$?(B(Tatsuo)$B!#(B
<li>pcp$B%3%^%s%I$K%G%P%C%0%*%W%7%g%s(B(-d)$B$,DI2C$5$l$^$7$?(B(Jun Kuriyama)$B!#(B
<li>"kind mismatch"$B%(%i!<$N:]$K!"860x$H$J$C$?%/%(%j$rI=<($9$k$h$&$K$7$^$7$?(B(Tatsuo)$B!#(B
</ul>
</p>

<h3>$B8_49@-(B</h3>
<ul>
  <li>$B%U%'%$%k%*!<%P;~$KI,$:(Bpgpool$B$N;R%W%m%;%9$r:F5/F0$9$k$h$&$K$7$^$7$?!#(B
	   $B$3$N7k2L!"%U%'%$%k%*!<%P;~$K$OI,$:(Bpgpool$B$X$N%;%C%7%g%s$,0lC<@Z$l$k$3$H$K$J$j$^$9!#(B
	   $B$3$&$7$J$$$H!"%M%C%H%o!<%/%1!<%V%kH4$1$J$I$N:]$K!"(B
	   TCP/IP$B$N%l%$%d$G:FAw$,9T$J$o$l!"D9$$;~4V$=$N$^$^$K$J$C$F$7$^$&$3$H$,(B
	   $B$"$k$+$i$G$9(B(Tatsuo)$B!#(B
  <li>$B@_Dj9`L\(Blogdir$B$O;H$o$l$J$/$J$j$^$7$?!#Be$j$K!"(Bpid_file_name$B$r;H$C$F$/$@$5$$(B(Tatsuo)$B!#(B

  <li>insert_lock$B$N%G%U%)%k%HCM$,(Btrue$B$K$J$j$^$7$?(B(Tatsuo)$B!#(B
</ul>

<h3>$B%P%0=$@5(B</h3>
<ul>
  <li> pgpool$B$,%G!<%b%s%b!<%I$G5/F0$5$l$k:]$K!"$9$Y$F$N%U%!%$%k%G%#%9%/%j%W%?$r(B
	   $BJD$8$k$h$&$K$7$^$7$?!#$3$&$7$J$$$H!"(BpgpoolAdmin$B$+$i5/F0$5$l$?:]$K(B
	   apache$B$N%=%1%C%H%U%!%$%k$r0z$-7Q$$$G$7$^$$!"(B80$BHV%]!<%H$,(B
	   $B@lM-$5$l$F$7$^$$$^$9(B(Akio Ishida)$B!#(B
  <li> $B%H%i%s%6%/%7%g%s$r%7%j%"%i%$%:$G$-$J$$%(%i!<$,H/@8$7$?$H$-$K!"(B
	   $B$9$Y$F$N(BDB$B%N!<%I$N%H%i%s%6%/%7%g%s$r%"%\!<%H$9$k$h$&$K$7$^$7$?!#(B
	   $B$3$&$7$J$$$H!"(BDB$B%N!<%I$N4V$G%G!<%?$NIT@09g$,5/$-$k$3$H$,$"$j$^$9(B(Tatsuo)$B!#(B
	   $BNc$r<($7$^$9(B(M$B$O%^%9%?!"(BS$B$O%9%l!<%V$r<($7$^$9(B)$B!#(B
	   <pre>
	   M:S1:BEGIN;
	   M:S2:BEGIN;
	   S:S1:BEGIN;
	   S:S2:BEGIN;
	   M:S1:SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
	   M:S2:SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
	   S:S1:SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
	   S:S2:SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
	   M:S1:UPDATE t1 SET i = i + 1;
	   S:S1:UPDATE t1 SET i = i + 1;
	   M:S2:UPDATE t1 SET i = i + 1; <-- blocked
	   S:S1:COMMIT;
	   M:S1:COMMIT;
	   M:S2:ERROR:  could not serialize access due to concurrent update
	   S:S2:UPDATE t1 SET i = i + 1; <-- success in UPDATE and data becomes inconsistent!
	   </pre>

 <li> raw$B%b!<%I$G(BMD5$BG'>Z$,;H$($k$h$&$K$7$^$7$?!#%I%-%e%a%s%H>e$G$O;H$($k$O$:$G$7$?(B(Tatsuo)$B!#(B

 <li> "SET TRANSACTION ISOLATION LEVEL must be called before any query"$B$N(B
	   $B%(%i!<$,H/@8$7$?>l9g$K(B"kind mimatch"$B%(%i!<$K$J$k$3$H$rKI$0$h$&$K$7$^$7$?(B(Tatsuo)$B!#(B
	   $B0J2<$N%7%J%j%*$GLdBj$,H/@8$7$^$9!#(B
	   <pre>
	   M:S1:BEGIN;
	   S:S1:BEGIN;
	   M:S1:SELECT 1; <-- only sent to MASTER
	   M:S1:SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
	   S:S1:SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
	   M: <-- error
	   S: <-- ok since no previous SELECT is sent. kind mismatch error occurs!
	   </pre>

<li>FreeBSD$B$K$*$$$F!"(Bps$B$G$N(Bprocess status$B$NI=<($GM>7W$J%9%Z!<%9$,4^$^$l$F$7$^$&$N$r=$@5$7$^$7$?(B(Jun Kuriyama)

<li>BEGIN;$B$r(B2$BEYB3$1$k$H(Bkind mismatch error$B$,H/@8$9$k$N$r=$@5$7$^$7$?(B(Tatsuo)

<li>PostgreSQL$B$,$?$/$5$s$N(BDEBUG$B%a%C%;!<%8$r=PNO$9$k>l9g$K!"8m$C$F%(%i!<$H8+$J$9%P%0$r=$@5$7$^$7$?(B(Tatsuo)

<li>$B%/%(%j$N%-%c%s%;%k$,F0$/$h$&$K$J$j$^$7$?(B(Tatsuo)

<li>$B%*%s%i%$%s%j%+%P%j$N8e%/%i%$%"%s%H$+$i$N@\B3$r<u$1IU$1$k%?%$%_%s%0$,Aa$9$.$k%P%0$r=$@5$7$^$7$?!#(B
$B$3$N%P%0$K$h$j!"%N!<%I%G!<%?$N4S@-$,J]$?$l$J$$2DG=@-$,$"$j$^$7$?(B(Tatsuo)

<li>SELECT, INSERT, UPDATE, DELETE$B0J30$N%3%^%s%I$G$bI,MW$J$i$P%H%i%s%6%/%7%g%s%V%m%C%/$NFbB&$G<B9T$9$k$h$&$K$7$^$7$?!#(B
$B$3$l$K$h$j!"%(%i!<H/@8$N:]$K%m!<%k%P%C%/$7$F%N!<%I$N@09g@-$rJ]$D$3$H$,$G$-$^$9(B(Tatsuo)

<li>$B%*%s%i%$%s%j%+%P%j8e!"(Bpgpool-II$B$N;R%W%m%;%9$,%/%i%C%7%e$9$k$3$H$,$"$k%P%0$r=$@5$7$^$7$?!#(B
$B$3$l$O!"%*%s%i%$%s%j%+%P%j$N8e!"?7$7$/%"%?%C%A$5$l$?%N!<%I$K@\B3$,$J$$$N$K!"$=$N%N!<%I$K;R%W%m%;%9$,=*N;;~$K=*N;%a%C%;!<%8$r%P%C%/%(%s%I$KAw?.$7$h$&$H$7$F5/$C$F$$$^$7$?(B(Tatsuo)

<li>PostgreSQL$B$,(Bpostgresql.conf$B$r:FFI$_9~$_$7$?:]$K(Bpgpool$B$,%(%i!<$r8!=P$7$F$7$^$&%P%0$r=$@5$7$^$7$?!#(B
$B$3$l$O!"(BPostgreSQL$B$,!J$?$V$s!K%I%-%e%a%s%H$K=q$+$l$F$$$J$$%?%$%_%s%0$G!V%Q%i%a!<%?JQ99!W%Q%1%C%H$rAw?.$7$F$/$k$?$a$K5/$j!"=$@5$O$=$N$3$H$KBP1~$7$?$b$N$G$9(B(Tatsuo)

</ul>

<h2>2.1 (inamiboshi) 2008/7/25</h2>
<h3>$B?75!G=(B</h3>
<ul>
  <li> failover_command $B$H(B failback_command $B$K!"?7$7$$%^%9%?%N!<%I(B ID
  $B$rI=$9(B '%m' $B$r%5%]!<%H$7$^$7$?!#(B(Yoshiyuki)
  <li> failover_command $B$H(B failback_command $B$K!"8E$$%^%9%?%N!<%I(B ID $B$r(B
  $BI=$9(B '%M' $B$r%5%]!<%H$7$^$7$?!#(B(Yoshiyuki)
  <li> $B%j%+%P%j$N%?%$%`%"%&%H;~4V$r;XDj$9$k(B recovery_timeout $B%Q%i%a!<(B
  $B%?$rDI2C$7$^$7$?!#(B(Taiki)
  <li> pg_md5 $B%3%^%s%I$K(B -p $B%*%W%7%g%s$rDI2C$7$^$7$?!#(B(Volkan Yazici,
  Taiki)
  <li> pgpool -v $B$r<B9T$9$k$H%P!<%8%g%sHV9f$rI=<($7!"=*N;$9$k$h$&$K$7(B
  $B$^$7$?!#(B(Yoshiyuki)
</ul>

<h3>$B8_49@-(B</h3>
<ul>
  <li> pgpool_recovery $B$H(B pgpool_remote_start $B4X?t$O%9!<%Q!<%f!<%6$N$_<B9T(B
  $B$G$-$k$h$&$K8"8B%A%'%C%/$r6/2=$7$^$7$?!#(B(Yoshiyuki)
  <li> raw $B%b!<%I$G%9%?%s%P%$%N!<%I$K$O%3%M%/%7%g%s%W!<%k$r:n@.$7$J$$(B
  $B$h$&$K$7$^$7$?!#(B(Yoshiyuki)
  <li> replication_timeout $B%Q%i%a!<%?$r:o=|$7$^$7$?!#(B(Yoshiyuki)
  <li> PCP $B%/%i%$%"%s%H%3%^%s%I$N%?%$%`%"%&%H$rL58z$K$7$^$7$?!#(B(Taiki)
  <li> replicate_select = false $B$N>l9g$K!"(BCOPY TO STDOUT $B$r%l%W%j%1!<(B
  $B%7%g%s$5$;$J$$$h$&$K$7$^$7$?!#(B(Yoshiyuki)
</ul>

<h3>$B=$@5(B</h3>
<h4> $BA4HL(B </h4>
<ul>
  <li> CloseComplete $B%a%C%;!<%8$r<u$1$H$k$H%/%i%C%7%e$9$kIT6q9g$r=$@5(B
  $B$7$^$7$?!#(B(Yoshiyuki)
  <li> $B%a%C%;!<%8E>Aw=hM}$r8zN($h$/$7$^$7$?!#(B(Yoshiyuki)
  <li> Solaris 10 $B$G%3%s%Q%$%k$G$-$k$h$&$K$7$^$7$?!#(B(Yoshiyuki)
  <li> $B%X%k%9%A%'%C%/$H%j%+%P%j$N%m%0=PNO$r2~NI$7$^$7$?!#(B(Tatsuo)
  <li> $BMM!9$J%a%b%j%j!<%/$r=$@5$7$^$7$?!#(B(Yoshiyuki)
  <li> "failed to read kind from frontend" $B$H$$$&%(%i!<%a%C%;!<%8$r(B
  ERROR$B%l%Y%k$+$i(B LOG $B%l%Y%k$K2<$2$^$7$?!#(B(Yoshiyuki)
  <li> raw $B%b!<%I$G%U%'%$%k%*!<%P$K<:GT$9$kIT6q9g$r=$@5$7$^$7$?!#(B
  (Taiki)
  <li> $BIT@5$J%N!<%I$rDI2C!&@Z$jN%$7$r9T$&$H%>%s%S%W%m%;%9$,H/@8$9$kIT(B
  $B6q9g$r=$@5$7$^$7$?!#(B(Yoshiyuki)
  <li> health_check_timeout $B$,@5$7$/F0:n$7$J$$IT6q9g$r=$@5$7$^$7$?!#(B
  (Kenichi Sawada)
  <li> FreeBSD $B$G(B ps $B%3%^%s%I$N=PNO$,@5$7$/$J$$IT6q9g$r=$@5$7$^$7$?!#(B
  (ISHIDA Akio)
  <li> Unix domain $B%=%1%C%H$,;D$C$F$$$k>l9g$N%(%i!<%a%C%;!<%8$r6/2=$7(B
  $B$^$7$?!#(B(Jun Kuriyama)
  <li> $BG'>Z$K<:GT$7$?>l9g$N%(%i!<%a%C%;!<%8$r6/2=$7$^$7$?!#(B(Tatsuo)
</ul>

<h4>$B%l%W%j%1!<%7%g%s(B</h4>
<ul>
  <li> replicate_select $B$r@_Dj$7$F$b!">o$K(B false $B$N5sF0$K$J$kIT6q9g$r(B
  $B=$@5$7$^$7$?!#(B(Tatsuo)
  <li> $B3HD%Ld$$9g$o$;%W%m%H%3%k$r;H$C$F$$$k$H!"%H%i%s%6%/%7%g%s$r8m$C$F%m!<(B
  $B%k%P%C%/$7$F$7$^$&IT6q9g$r=$@5$7$^$7$?!#(B(Yoshiyuki)
  <li> $BHsF14|%/%(%j$r;H$C$F$$$k$H(B pgpool $B$,IT0BDj$K$J$kIT6q9g$r=$@5$7(B
  $B$^$7$?!#(B(Yoshiyuki)
  <li> $B3HD%Ld9g$;%W%m%H%3%k$r;H$&$H(B /* REPLICATION */$B$J$I$N%R%s%H6g$,>C$($F(B
  $B$7$^$&IT6q9g$r=$@5$7$^$7$?!#(B(Yoshiyuki)
  <li> DEALLOCATE ALL $B$r<B9T$9$k$H%/%i%C%7%e$9$kIT6q9g$r=$@5$7$^$7$?!#(B
  (Yoshiyuki)
  <li> immediate shutdown $B$9$k$H%O%s%0%"%C%W$9$kIT6q9g$r=$@5$7$^$7$?!#(B
  (Yoshiyuki)
  <li> $B9bIi2Y;~$K%*%s%i%$%s%j%+%P%j$r<B;\$9$k$H!"%j%+%P%j%W%m%;%9$,%O(B
  $B%s%0%"%C%W$9$k2DG=@-$N$"$kIT6q9g$r=$@5$7$^$7$?!#(B(Yoshiyuki)
  <li> $B3HD%Ld9g$;%W%m%H%3%k$r;H$C$F(B SELECT $B$r<B9T$7$?:]$K!"%H%i%s%6%/(B
  $B%7%g%s%V%m%C%/Fb$G%/%(%j$,%(%i!<$K$J$k$H!"(Bpgpool $B$,%O%s%0%"%C%W$9$k(B
  $B2DG=@-$N$"$kIT6q9g$r=$@5$7$^$7$?!#(B(Yoshiyuki)
</ul>

<h4>$B%^%9%?!<%9%l!<%V(B</h4>
<ul>
  <li> $B%H%i%s%6%/%7%g%s%V%m%C%/Fb$G!"(BSET, PREPARE, DEALLOCATE $B$r<B9T$9(B
  $B$k$H!"%W%m%;%9$,%@%&%s$9$kIT6q9g$r=$@5$7$^$7$?!#(B(Yoshiyuki)
  <li> $B%^%9%?!<%9%l!<%V%b!<%I$G%m!<%I%P%i%s%9$,@5$7$/F0:n$7$F$$$J$$IT(B
  $B6q9g$r=$@5$7$^$7$?!#(B(Yoshiyuki)
</ul>

<h4>$B%Q%i%l%k%/%(%j(B</h4>
<ul>
  <li> INSERT $B$K<:GT$9$kIT6q9g$r=$@5$7$^$7$?!#(B(Yoshiharu)
  <li> FROM $B6g$K(B AS $B$,4^$^$l$k$H9=J8%(%i!<$K$J$kIT6q9g$r=$@5$7$^$7$?!#(B(sho)
  <li> $B%/%(%j$rJ#?t2s<B9T$9$k$H%O%s%0%"%C%W$9$kIT6q9g$r=$@5$7$^$7$?!#(B(Yoshiharu)
  <li> JOIN $B$K<:GT$9$kIT6q9g$r=$@5$7$^$7$?!#(B(Yoshiharu)
  <li> DISTINCT$B9=J8(B $B$N2r@O$K<:GT$9$kIT6q9g$r=$@5$7$^$7$?!#(B(Yoshiharu)
</ul>

<hr>

<h2>2.0.1 (hikitsuboshi) 2007/11/21</h2>
<ul>
  <li> UPDATE $B$b$7$/$O(B DELETE $B$r<B9T$9$k$H%W%m%;%9$,%@%&%s$9$kIT6q9g$r(B
       $B=$@5$7$^$7$?!#(B(Yoshiyuki) 
  <li> master_slave $B$r(B true $B$K@_Dj$7$F$$$k>l9g$K!"(BSQL $B9=J8%(%i!<$r8!CN(B
       $B$7$?;~$K%^%9%?$K$N$_$=$N%/%(%j$rAw?.$9$k$h$&$K$7$^$7$?!#(B(Yoshiyuki)
</ul>

<hr>

<h2>2.0 (hikitsuboshi) 2007/11/16</h2>
<h3>$B8_49@-(B</h3>
<ul>
  <li> ignore_leading_white_space $B$N%G%U%)%k%HCM$r(B true $B$K$7$^$7$?!#(B
  (Yoshiyuki)
  <li> replicate_strict $B$rGQ;_$7$^$7$?!#>o$K(B replicate_strict $B$,(B true
  $B$N5sF0$K$J$j$^$9!#(B(Yoshiyuki)
</ul>

<h3>$BA4HL(B</h3>
<ul>
  <li> pgpool.conf $B$r%j%m!<%I$G$-$k$h$&$K$7$^$7$?!#%j%m!<%I;~$KJ,;6%k!<(B
  $B%k$bF1;~$K%j%m!<%I$7$^$9!#(B(Yoshiyuki)
  <li> SQL $B%Q!<%5$r(B PostgreSQL 8.3 $B$KBP1~$7$^$7$?!#(B(Yoshiyuki)
  <li> $B%N!<%I$r@Z$jN%$7$?:]$K%f!<%6$,@_Dj$7$?%3%^%s%I$r<B9T$G$-$k$h$&(B
  $B$K!"(Bpgpool.conf $B$K(B failover_command $B$H$$$&%Q%i%a!<%?$rDI2C$7$^$7$?!#(B
  (Yoshiyuki)
  <li> $B%N!<%I$rI|5"$7$?:]$K%f!<%6$,@_Dj$7$?%3%^%s%I$r<B9T$G$-$k$h$&$K!"(B
  pgpool.conf $B$K(B failback_command $B$H$$$&%Q%i%a!<%?$rDI2C$7$^$7$?!#(B
  (Yoshiyuki)
  <li> pgpool.conf $B$K(B client_idle_limit $B$H$$$&%Q%i%a!<%?$rDI2C$7$^$7$?!#(B
  $B$3$N%Q%i%a!<%?$G$O%/%i%$%"%s%H$+$i$N%/%(%j$N:GBgBT$A;~4V$r@_Dj$9$k$3(B
  $B$H$,$G$-$^$9!#(B(Tatsuo)
</ul>

<h3>$B%l%W%j%1!<%7%g%s(B</h3>
<ul>
  <li> $B%H%i%s%6%/%7%g%s%V%m%C%/$K0O$^$l$F$$$J$$%/%(%j$r%l%W%j%1!<%7%g(B
  $B%s$5$;$k>l9g!"FbItE*$K%H%i%s%6%/%7%g%s$r3+;O$5$;$k$h$&$K$7$^$7$?!#(B
  (Yoshiyuki)
  <li> $B%l%W%j%1!<%7%g%s$r9bB.2=$5$;$k$h$&$K$7$^$7$?!#(B(Yoshiyuki)
  <li> $B%N!<%I$r:FF14|$5$;$FI|5"$5$;$k!"%*%s%i%$%s%j%+%P%j5!G=$r<BAu$7(B
  $B$^$7$?!#(B(Yoshiyuki)
  <li> INSERT, UPDATE, DELETE $B$7$?9T?t$,$9$Y$F0lCW$7$J$+$C$?>l9g$K!"%H(B
  $B%i%s%6%/%7%g%s$r%"%\!<%H$5$;$k$h$&$K$7$^$7$?!#(B(Yoshiyuki)
<pre>
   x=# update t set a = a + 1;
   ERROR:  pgpool detected difference of the number of update tuples
   HINT:  check data consistency between master and other db node
</pre>
  <li> $BJ#?t$N%P%C%/%(%s%I$+$i0[$J$k7k2L$,JV$C$F$-$?>l9g$K!"F1$87k2L$,(B
  $BB??tJV$C$F$-$?7k2L$r?.Mj$9$kB??t7hJ}<0$r<BAu$7$^$7$?!#(B(Yoshiyuki)
  <li> V2 $BLd9g$;%W%m%H%3%k$G%m!<%I%P%i%s%9$G$-$k$h$&$K$7$^$7$?!#(B(Yoshiyuki)
</ul>

<h3>$B%Q%i%l%k%/%(%j(B</h3>
<ul>
  <li> $B%Q%i%l%k%b!<%I$GItJ,%l%W%j%1!<%7%g%s$r%5%]!<%H$7$^$7$?!#(B(Yoshiharu)
</ul>

<hr>

<h2>1.3 (sohiboshi) 2007/10/23</h2>
<ul>
  <li> $B?7$7$/(B authentication_timeout $B$H$$$&%Q%i%a!<%?$rDI2C$7$^$7$?!#(B(Yoshiyuki)
    <ul>
     <li>$B$3$N%Q%i%a!<%?$G$OG'>Z;~4V$N%?%$%`%"%&%H$r@_Dj$7$^$9!#(B 
     <li>$B%G%U%)%k%HCM$O(B 60 (1 $BJ,(B)$B$G$9!#(B
   </ul>
  <li> $B%9%?!<%H%"%C%W%Q%1%C%H$ND9$5$,(B 10000 $B%P%$%H1[$($F$$$k>l9g$K$O!"@\B3$r@ZCG$9$k$h$&$K$7$^$7$?!#(B(Yoshiyuki)
  <li> DEALLOCATE $B$r<B9T$9$k$H$^$l$KIT@5$J%a%b%j%"%/%;%9$,H/@8$9$kIT6q(B
       $B9g$r=$@5$7$^$7$?!#(B(Yoshiyuki)
  <li> $B%H%i%s%6%/%7%g%sFb$G(B SELECT $B$r<B9T$7$?8e$K(B SELECT $B$r@5$7$/%m!<%I%P%i(B
       $B%s%9$G$-$J$$IT6q9g$r=$@5$7$^$7$?!#(B(Yoshiyuki)
       <ul>
	<li> $B$3$NIT6q9g$O(B 1.2 $B$G:.F~$7$?IT6q9g$G$9!#(B
       </ul>
  <li> 64bit $B4D6-$G%/%(%j%-%c%C%7%e5!G=$rM-8z$K$9$k$H!"%/%i%C%7%e$9$k2DG=@-$N$"$kIT6q9g$r=$@5$7$^$7$?(B(Yoshiyuki)
</ul>

<hr>

<h2>1.2.1 (tomoboshi) 2007/09/28</h2>
<ul>
  <li> $B3HD%Ld9g$;%W%m%H%3%k$N(B Parse $B%a%C%;!<%8$N=hM}$G%G%C%I%m%C%/$,H/(B
  $B@8$9$k2DG=@-$,$"$kIT6q9g$r=$@5$7$^$7$?!#(B(Yoshiyuki)

  <li> Prepared statement $B$r4IM}$9$kNN0h$,%a%b%j%j!<%/$7$F$$$kIT6q9g$r(B
  $B=$@5$7$^$7$?!#(B(Yoshiyuki)

  <li> $B0lIt$N(B OS $B$G%3%s%Q%$%k%(%i!<$K$J$kIT6q9g$r=$@5$7$^$7$?!#(B(Yoshiyuki)

  <li>master/slave $B%b!<%IFb$G(B SET, PREPARE, DEALLOCATE $BJ8$r%l%W%j%1!<%7%g%s$5$;$k$h$&$K$7$^$7$?!#(B(Yoshiyuki)
</ul>

<hr>

<h2>1.2 (tomoboshi) 2007/08/01</h2>
<ul>
  <li> pgpool.conf $B$K(B replicate_select $B$H$$$&?75,%Q%i%a!<%?$rDI2C$7$^(B
  $B$7$?!#%G%U%)%k%HCM$O(B false $B$G$9!#(B(Yoshiyuki)
  <ul>
    <li> true $B$K@_Dj$7$?>l9g$O!"%m!<%I%P%i%s%9$5$l$J$$(B SELECT $BJ8$r%l%W(B
    $B%j%1!<%7%g%s$7$^$9(B(pgpool-II 1.0 $B$N5sF0(B)$B!#(Bfalse $B$N>l9g$O%^%9%?$K$N(B
    $B$_(B SELECT $B$rAw?.$7$^$9!#(B
  </ul>

  <li> $B%7%0%J%k=hM}$r0BA4$K9T$&$h$&$K$7$^$7$?!#(B(Yoshiyuki)
  <ul>
    <li>$B$^$l$K%>%s%S%W%m%;%9$,;D$C$F$7$^$C$?$j!"IT0BDj$K$J$k$3$H$,$"$j$^$7$?!#(B
  </ul>
  
  <li> $B%H%i%s%6%/%7%g%sCf$K(B SELECT $BJ8$,%(%i!<$K$J$k$H!"%O%s%0%"%C%W$7(B
  $B$F$7$^$&IT6q9g$r=$@5$7$^$7$?!#(B(Yoshiyuki)
  <ul>
    <li> $B$3$NIT6q9g$O(B 1.1 $B$KF~$C$?IT6q9g$G$9!#(B
  </ul>

  <li> PREPARE/EXECUTE $B$,(B master/slave $B%b!<%I$G@5$7$/F0:n$7$J$$IT6q9g(B
  $B$r=$@5$7$^$7$?!#(B(Yoshiyuki)

  <li> $B%G%C%I%m%C%/$r8!CN$9$k$H!"(Bkind mismatch error $B$,H/@8$9$kIT6q9g(B
  $B$r=$@5$7$^$7$?!#(B(Yoshiyuki)

  <li> $B3HD%Ld$$9g$o$;%W%m%H%3%k$r;H$C$?%I%i%$%P$r;HMQ$7$?>l9g$K!"9=J8(B
        $B2r@O;~$K7Y9p$,H/@8$9$k(B SQL $BJ8$r<B9T$9$k$H%O%s%0%"%C%W$b$7$/$O(B
        $B%W%m%;%9$,%/%i%C%7%e$9$kIT6q9g$r=$@5$7$^$7$?!#(B(Yoshiyuki)

  <li> $B%3%M%/%7%g%s%-%c%C%7%e$,0lGU$K$J$k$H%a%b%j%j!<%/$,H/@8$9$kIT6q(B
  $B9g$r=$@5$7$^$7$?!#(B(Yoshiyuki)

  <li> $B%;%C%7%g%s$,;D$C$?>uBV$G(B PostgreSQL $B$r(B fast shutdown $B$b$7$/$O(B
  immediate shutdown $B$9$k$H!";D$C$?%;%C%7%g%s$,%O%s%0%"%C%W$9$kIT6q9g(B
  $B$r=$@5$7$^$7$?!#(B(Yoshiyuki)

  <li> $B%m!<%I%P%i%s%9@h$r@\B33+;O;~$K7hDj$7!"F1$8%;%C%7%g%sFb$G$O$9$Y(B
  $B$FF1$8%N!<%I$K%/%(%j$rAw?.$9$k$h$&$K$7$^$7$?!#(B(Yoshiyuki)

  <li> connection_life_time $B$r@_Dj$7$F$$$k>l9g$K%P%C%U%!%*!<%P%i%s$,H/(B
  $B@8$9$k2DG=@-$,$"$kIT6q9g$r=$@5$7$^$7$?!#(B(Yoshiyuki)

</ul>

<hr>

<h2>1.1.1 (amiboshi) 2007/06/15</h2>
<ul>
  <li> load_balance_mode $B$rM-8z$K$7$F$$$k$H!"(B"kind mismatch" $B%(%i!<$,(B
  $BH/@8$7$F$7$^$&IT6q9g$r=$@5$7$^$7$?!#$3$l$O(B 1.1 $B$GF~$C$?IT6q9g$G$9!#(B
  (Yoshiyuki)
  <li> $B%W%m%H%3%k%P!<%8%g%s(B 2 $B$r;H$C$?%I%i%$%P$G%l%W%j%1!<%7%g%s;HMQ$9(B
  $B$k$H!"(Bpgpool $B$,%O%s%0%"%C%W$9$kIT6q9g$r=$@5$7$^$7$?(B(Yoshiyuki)
  <li> $B3HD%Ld9g$;%W%m%H%3%k$r;HMQ$9$k$H!"$^$l$K%G%C%I%m%C%/$,H/@8$9$k(B
  $BIT6q9g$r=$@5$7$^$7$?(B(Yoshiyuki)
</ul>

<hr>

<h2>1.1 (amiboshi) 2007/05/25</h2>
<ul>
  <li> HBA $BG'>Z$r%5%]!<%H$7$^$7$?(B(Taiki)
  <li> log_connections $B$r%5%]!<%H$7$^$7$?(B(Taiki)
  <li> log_hostname $B$r%5%]!<%H$7$^$7$?(B(Taiki)
  <li> ps $B%3%^%s%I$G(B pgpool $B$N>uBV$,$o$+$k$h$&$K$7$^$7$?(B(Taiki)
  <li> MacOS X $B$G%3%s%Q%$%k%(%i!<$K$J$kIT6q9g$r=$@5$7$^$7$?(B(Yoshiyuki)
  <li> $B3HD%Ld$$9g$o$;%W%m%H%3%k$r;H$C$?%/%(%j$r%m!<%I%P%i%s%9$G$-$k$h(B
  $B$&$K$7$^$7$?(B(Yoshiyuki)
  <li> $B%l%W%j%1!<%7%g%s@_Dj;~!"(BSELECT $B$O(B master $B$K$N$_Aw?.$9$k$h$&$K$7(B
  $B$^$7$?(B(Yoshiyuki)
    <ul>
      <li> $B$b$7(B SELECT $B$r%l%W%j%1!<%7%g%s$5$;$k>l9g$O(B /*REPLICATION*/
      $B$N$h$&$K(B SELECT $B$NA0$K%3%a%s%H$rIU$1$kI,MW$,$"$j$^$9(B
    </ul>
  <li> $B%l%W%j%1!<%7%g%s@_Dj;~!"(BSELECT nextval() $B$*$h$S(B SELECT setval()
  $B$r<+F0E*$K%l%W%j%1!<%7%g%s$5$;$k$h$&$K$7$^$7$?(B(Yoshiyuki)
  <li> $B%P%C%/%(%s%I$X@\B3Cf$K%7%0%J%k$K3d$j9~$^$l$k$H!"%U%'%$%k%*!<%P(B
  $B$7$F$7$^$&IT6q9g$r=$@5$7$^$7$?(B(Yoshiyuki)
  <li> PAM $BG'>Z$N%5%s%W%k%U%!%$%k(B pgpool.pam $B$r(B
  $PREFIX/share/pgpool-II/ $B$K%$%s%9%H!<%k$9$k$h$&$K$7$^$7$?(B(Taiki)
  <li> $B5pBg$J(B SQL $B$r<B9T$7$h$&$H$7$?>l9g$K(B pgpool $B$,L58B%k!<%W$KF~$kIT(B
  $B6q9g$r=$@5$7$^$7$?(B(Yoshiyuki) 
</ul>

<hr>

<h2>1.0.2 (suboshi) 2007/02/13</h2>
<ul>
  <li> $B5pBg$J(B SQL $B$r<B9T$7$h$&$H$7$?>l9g$K(B pgpool $B$,L58B%k!<%W$KF~$kIT(B
  $B6q9g$r=$@5$7$^$7$?(B(Yoshiyuki) 
  <li> $B3HD%Ld9g$;%W%m%H%3%k$r;H$C$?>l9g$K$^$l$K(B pgpool $B$,;_$^$C$F$7$^(B
  $B$&IT6q9g$r=$@5$7$^$7$?(B(Yoshiyuki) 
  <li> $B%U%'%$%k%*!<%P!"%U%'%$%k%P%C%/;~$N%m%0=PNO$r2~A1$7$^$7$?(B
  (Tatsuo)
  <li> SHOW pool_status $B$N7k2L$K%P%C%/%(%s%I%9%F!<%?%9>pJs$rDI2C$7$^$7(B
  $B$?(B(Tatsuo)
  <li> $B%l%W%j%1!<%7%g%s;~$K(B UPDATE/DELETE $B$N7o?t$,<B:]$N7o?t$H$O0[$J$C(B
  $B$?7k2L$rJV$9IT6q9g$r=$@5$7$^$7$?(B(Tatsuo)
  <li> $B8E$$(B gcc $B$r;H$&$H(B libpq $B$N%j%s%/$K<:GT$9$kIT6q9g$r=$@5$7$^$7$?(B
  (Yoshiyuki)
  <li> PHP:PDO $B$d(B DBD-Pg $B$r;H$C$?>l9g$K!"<+F0(B DEALLOCATE $B$,<:GT$7$F$7(B
  $B$^$&IT6q9g$r=$@5$7$^$7$?(B(Yoshiyuki)
  <li> SELECT FOR UPDATE, SELECT INTO $B$r%m!<%I%P%i%s%9$5$;$J$$$h$&$K$7(B
  $B$^$7$?!#$^$?!"(BSELECT $B$NA0$K%3%a%s%H$,$"$k>l9g$b%m!<%I%P%i%s%9$5$;$J(B
  $B$$$h$&$K$7$^$7$?!#$3$l$O(B pgpool-I $B$H$N8_49@-$N$?$a$G$9!#(B(Yoshiyuki)
  <li> configure $B;~$N(B libpq $B$N%G%U%)%k%H%Q%9$r(B pg_config $B%3%^%s%I$r;H$C(B
  $B$F<hF@$9$k$h$&$K$7$^$7$?!#$J$*!"(B--with-pgsql $B4XO"$N%*%W%7%g%s$O<!$N(B
  $B%P!<%8%g%s$G$OGQ;_M=Dj$G$9(B(Yoshiyuki)
  <li> $B%3%M%/%7%g%s%W!<%k:FMxMQ;~$K!"%=%1%C%H$,2u$l$F$$$k>l9g$O:F@\B3(B
  $B$9$k$h$&$K$7$^$7$?(B(Yoshiyuki)
  <li> PostgreSQL 7.4.x $B$N(B libpq $B$r;H$C$F%S%k%I$7$h$&$H$9$k$H!"(B
  configure $B%9%/%j%W%H$G%(%i!<$H$J$C$F$7$^$&IT6q9g$r=$@5$7$^$7$?(B
  (Yoshiyuki)
</ul>

<div class="copyright">
<hr>
<copyright>
Copyright &copy; 2003 &ndash; 2008 PgPool Global Development Group
</copyright>
</div>
</body>
</html>