<!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: <$B%Q%9%o!<%I$rF~NO(B> </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 © 2003 – 2008 PgPool Global Development Group </copyright> </div> </body> </html>