pgpool2.git / summary / log / commit / refs
commit 255a91d8ec4cbffad51f944200846d8c5d4e66f5
Author: Bambo Huang <bambo.huang@gmail.com>
Date: Thu Jul 05 04:02:38 2012 +0000
To the latest version, add query cache section
doc/pgpool-zh_cn.html | 379 ++++++++++++++++++++++++++++++++++++++------------
1 file changed, 291 insertions(+), 88 deletions(-)
diff --git a/doc/pgpool-zh_cn.html b/doc/pgpool-zh_cn.html
index 5811e408b..9e9e331ba 100644
--- a/doc/pgpool-zh_cn.html
+++ b/doc/pgpool-zh_cn.html
@@ -11,17 +11,10 @@ Last modified: Wed Jun 29 09:50:01 JST 2011
<!-- 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">欢迎来到 pgpool -II 页面</div></td>
- </tr>
- <tr>
- <td valign="top" style="border-right:1px dotted #cccccc;">
- <br />
+<div id="top" class="header_text">欢迎使用 pgpool-II 手册</div>
- <div id="navcontainer">
+<div id="menu">
+ <div id="navcontainer">
<ul id="navlist">
<li id="active"><a href="#Whatis" id="current">什么是 pgpool</a></li>
<li><a href="#platform">平台</a></li>
@@ -31,30 +24,35 @@ Last modified: Wed Jun 29 09:50:01 JST 2011
<li><a href="#connection_pool_mode">连接池模式</a></li>
<li><a href="#replication_mode">复制模式</a></li>
<li><a href="#master_slave_mode">主备模式</a></li>
+ <li><a href="#stream">流复制</a></li>
+ <li><a href="#parallel">并行模式</a></li>
+ <li><a href="#hba">客户端认证</a></li>
+ <li><a href="#query_cache">设置查询缓存方法</a></li>
+ <li><a href="#memqcache">基于内存的查询缓存</a></li>
<li><a href="#start">启动/停止 pgpool-II</a></li>
<li><a href="#reload">重新加载 pgpool-II 配置文件</a></li>
<li><a href="#show-commands">显示命令</a></li>
<li><a href="#online-recovery">在线恢复</a></li>
+ <li><a href="#backup">备份</a></li>
+ <li><a href="#deploy">部署 pgpool-II</a></li>
<li><a href="#troubleshooting">故障排除</a></li>
<li><a href="#restriction">限制</a></li>
<li><a href="#reference">参考信息</a></li>
- <li><a href="#internal">内部信息</a></li>
+ <li><a href="#internal">内部信息</a></li>
</ul>
</div>
- <br />
+ <br />
- <div class="header_small" align="center">
-
- [<a href="pgpool-en.html">英语页面</a>] </div>
- <div class="header_small" align="center">
-
- [<a href="pgpool-ja.html">日语页面</a>] </div> </td>
- <td valign="top" style="border-left:1px dotted #cccccc;">
-
+ <div class="header_small" align="center">
+ [<a href="pgpool-en.html">英文页面</a>]
+ </div>
+</div>
+<div id="manual">
+<!-- ================================================================================ -->
-<h1>什么是 pgpool-II?<a name="whatis"></a></h1>
+<h1 style="margin-top: 20px">什么是 pgpool-II?<a name="whatis"></a></h1>
<p> pgpool-II 是一个位于 PostgreSQL 服务器和 PostgreSQL 数据库客户端之间的中间件,它提供以下功能:</p>
@@ -85,21 +83,28 @@ Last modified: Wed Jun 29 09:50:01 JST 2011
<strong>通过 pgpool-II 使用 SQL 有一些限制条件。参考 <a href="#restriction">限制</a> 获得详细信息。</strong>
</p>
+<p class="top_link"><a href="#Top">返回顶部</a></p>
+
+<!-- ================================================================================ -->
+
<h1>支持的平台<a name="platform"></a></h1>
<p>pgpool-II 可以运行在 Linux,Solaris,FreeBSD 以及基本上所有的类 UNIX 架构的平台上。不支持 Windows。支持 6.4 以上版本的 PostgreSQL 服务器。然而,如果要使用并行查询功能,需要 7.4 或更高版本。</p>
<p>如果你在使用 7.3 或者更老版本的 PostgreSQL,一些 pgpool-II 的功能将无法使用。但无论如何你不应该还在用这么老的版本了。</p>
-<p>你还要确保你所有的 PostgreSQL 服务器运行相同主版本号的 PostgreSQL 程序。另外,如果你想要使用在线恢复,硬件架构和操作系统必须一致。</p>
+<p>你还要确保你所有的 PostgreSQL 服务器运行相同主版本号的 PostgreSQL 程序。另外,如果你想要使用在线恢复,硬件架构和操作系统必须一致。
+ 另外,我们不推荐在使用不同编译参数编译的 PostgreSQL:包括是否支持 SSL,是否使用了 --disable-integer-datetimes 参数或者不同的块大小。
+ 这些可能对 pgpool-II 的部分功能有影响。
+ 通常情况下,小版本号不同没有什么影响。但是我们没有针对小版本的区别做全面测试,因此我们建议还是使用相同的版本的 PostgreSQL。</p>
<h1>pgpool-II 的安装<a name="install"></a></h1>
<p>
-pgpool-II 可以在 <a href="http://pgfoundry.org/projects/pgpool/">pgpool 开发页面</a>下载到。而且也提供包括 CentOS,RedHat Enterprise Linux,Fedora 和 Debian 在内的大量平台的二进制包。请检查相关的软件库。</p>
+pgpool-II 可以在 <a href="http://pgpool.net/">pgpool 开发页面</a>下载到。而且也提供包括 CentOS,RedHat Enterprise Linux,Fedora 和 Debian 在内的大量平台的二进制包。请检查相关的软件库。</p>
<p>
-pgpool-II 可以在以下位置下载源码:<a href="http://pgfoundry.org/projects/pgpool/">pgpool 开发页面</a>。
+pgpool-II 可以在以下位置下载源码:<a href="http://pgpool.net/mediawiki/index.php/Downloads">pgpool 开发页面</a>。
</p>
<p>从源码安装 pgpool-II 需要 2.9 甚至或更高版本的 gcc,以及 GNU make。而且,pgpool-II 需要链接到 libpq 库,所以在构建 pgpool-II 的机器上必须安装 libpq 库和它的开发头文件。另外,还需要 OpenSSL 库和它的头文件以便在 pgpool-II 中提供 OpenSSL 支持。</p>
@@ -130,6 +135,26 @@ pgpool-II 可以在以下位置下载源码:<a href="http://pgfoundry.org/proj
</p>
</dd>
+ <p>如果你需要非默认的值,有以下选项可以设置:</p>
+ <table border>
+ <tr><th class="nodec"><code>--prefix=path</code></th>
+ <td>pgpool-II 的二进制程序和文档将被安装到这个目录。默认值为 <code>/usr/local</code></td></tr>
+ <tr><th class="nodec"><code>--with-pgsql=path</code></th>
+ <td>PostgreSQL 的客户端库安装的顶层目录。默认值由 <code>pg_config</code> 提供</td></tr>
+ <tr><th class="nodec"><code>--with-openssl</code></th>
+ <td>pgpool-II 程序将提供 OpenSSL 支持。默认是禁用 OpenSSL 支持的。<span class="version">V2.3 -</span></td></tr>
+ <tr><th class="nodec"><code>--enable-sequence-lock</code></th>
+ <td>在 pgpool-II 3.0 系列中使用 insert_lock 兼容。pgpool-II 针对序列表中的一行进行加锁。PostgreSQL 8.2 或2011年六月以后发布的版本无法使用这种加锁方法。
+ <span class="version">V3.1 -</span></td></tr>
+ <tr><th class="nodec"><code>--enable-table-lock</code></th>
+ <td>在 pgpool-II 2.2 和 2.3 系列中使用 insert_lock 兼容。pgpool-II 针对被插入的表进行加锁。这种锁因为和 VACUUM 冲突,已被废弃。<span class="version">V3.1 -</span></td></tr>
+ <tr><th class="nodec"><code>--with-memcached=path</code></th>
+ <td>pgpool-II 的二进制程序将使用 <a href="#memcached_params">memcached</a> 作为 <a href="#memqcache">基于内存的查询缓存</a>。你必须先安装 <a href="http://libmemcached.org/libMemcached.html">libmemcached</a>。
+ <span class="version">V3.2 -</span></td>
+ </tr>
+ </table>
+ </dd>
+
<dt>make</dt>
<dd>
<p>
@@ -141,7 +166,7 @@ make install
</p>
</dd>
-<dt>安装 pgpool_regclass</dt>
+<dt>安装 pgpool_regclass <span class="version">V3.0 -</span> </dt>
<dd>
<p>
如果你在使用 PostgreSQL 8.0 或之后的版本,强烈推荐在需要访问的 PostgreSQL 中安装 pgpool_regclass 函数,因为它被 pgpool-II 内部使用。如果不这样做,在不同的 schema 中处理相同的表名会出现问题(临时表不会出问题)。
@@ -633,6 +658,8 @@ max_pool*num_init_children*2 <= (max_connections - superuser_reserved_connection
</p>
<p>
可以通过在本参数名的末尾添加一个数字来指定多个后台程序(例如<code>backend_hostname0</code>)。这个数字对应为“数据库节点 ID”,是从 0 开始的正整数。被设置数据库节点ID为 0 的后台程序后台程序将被叫做“主数据库”。当定义了多个后台程序时,即使主数据库当机后依然能继续(某些模式下不行)。在这种情况下,存活的最小的数据库节点编号的数据库将被变成新的主数据库。
+ <p> 请注意有编号为 0 的节点在流复制中没有其他意义。但是,你需要注意数据库节点是不是“主节点”。请参考 <a href="#stream">流复制</a> 获得更多细节。</p>
+ </p>
<p>如果你只计划使用一台 PostgreSQL 服务器,可以通过 <code>backend_hostname0</code> 指定。</p>
<p>
可以通过配置本参数后重新加载配置文件添加新的节点。但是,对已有的值无法更新,所以这种情况下你必须重启 pgpool-II。
@@ -1364,7 +1391,7 @@ recovery_2nd_stage_command = ''
</ol>
</p>
-<h3>并行模式</h3>
+<h1 id="parallel">并行模式</h3>
<p>本模式实现了查询的并行执行。表可以被分割,数据分布在每个节点中。而且,复制和负载均衡功能也可以同时使用。在并行模式中,pgpool.conf 中的 replication_mode 和 load_balance_mode 被设置为 ture,master_slave 被设置为 false,parallel_mode 被设置为 false。当你改变这些参数后,需要重启 pgpool-II。
</p>
@@ -1564,7 +1591,7 @@ ELSE 2
一个 service-configuration 的示例文件被安装为安装目录下的"share/pgpool.pam"。
</p>
-<h2>设置 Query cache 方法</h2>
+<h1 id="query_cache">设置 Query cache 方法 <span class="version">- V3.1 (已废弃)</span></h1>
<p> Query cache 可以在 pgpool-II 的所有模式中使用。在 pgpool.conf 中启用它如下:</p>
<pre>
enable_query_cache = true
@@ -1591,144 +1618,316 @@ CREATE TABLE pgpool_catalog.query_cache (
</strong>
</p>
-<h3>使用共享内存或者 Memcached</h3>
+<h1><a name="memqcache"></a> 基于内存的查询缓存 <span class="version">V3.2 -</span></h1>
-<p>要启用内存缓存功能,需要设置以下项目为 true (默认为 false)
+<p>你可以在任何模式中使用基于内存的查询缓存。它不同于以上的查询缓存,因为基于内存的查询缓存会快很多,因为缓存存储于内存中。
+ 另外,如果缓存事小了,你不需要重启 pgpool-II 因为相关的表已经得到更新了。
</p>
-<pre>
-memory_cache_enabled = true
-</pre>
+<p>基于内存的缓存保存 SELECT 语句(以及它绑定的参数,如果 SELECT 是一个扩展的查询)以及对应的数据。
+如果是相同的 SELECT 语句,则直接返回缓存的值。因为不再有 SQL 分析或者到 PostgreSQL 的调用,实际上它会非常快。
+</p>
<p>
-内存缓存的行为可以通过以下参数设置:<br>
-缓存存储方式。可以为“shmem”(共享内存)或“memcached”。默认为shmem。
+其他方面,它会比较慢,因为它增加了一些负载用于缓存。另外,当一个表被更新,pgpool 自动删除相关的表的缓存。
+因此,在有很多更新的系统中,性能会降低。如果 cache_hit_ratio 低于 70%,建议你关闭基于内存的缓存。
</p>
-<pre>
-memqcache_method = 'shmem'
-</pre>
+<h2 id="MEMORY_CACHE_RESTRICTIONS">限制</h2>
+<ul>
+ <li>
+ 基于内存的查询缓存通过监视 UPDATE,INSERT,ALTER TABLE一类的查询语句来自动删除缓存的数据。
+ 但 pgpool-II 无法发现通过触发器、外键和 DROP TABLE CASCADE 产生的非显式的更新。
+ 你可以通过配置 <a href="#MEMQCACHE_EXPIRE">memqcache_expire</a> 让 pgpool 在固定时间周期内自动删除缓存来避免这个问题,
+ 你也可以通过配置 <a href="#BLACK_MEMQCACHE_TABLE_LIST">black_memqcache_table_list</a> 来让 pgpool 的基于内存的缓存忽略指定的表。
+ </li>
+ <li>
+ 如果你使用 pgpool-II 的多个实例来使用共享内存进行缓存,可能出现一个 pgpool 发现表被更新了因而删除了缓存,但另一个依旧使用旧的缓存。
+ 对于这种情况,使用 memcached 是一个更好的策略。
+ </li>
+</ul>
+
+<h2 id="MEMORY_CACHE_ENABLED">启用基于内存的查询缓存</h2>
<p>
-Memcached 主机名。memqcache_method=memcached 时要求设置。如果本参数以“/”开始,则使用 UNIX 域套接字。
+要启用基于内存的查询缓存,设置以下选项为 on(默认为 off)。
</p>
+
<pre>
-memqcache_memcached_host = 'foo.com'
+memory_cache_enabled = on
</pre>
+<h2 id="MEMQCACHE_METHOD">选择缓存策略</h2>
+<p>
+你可以选择一个缓存策略:共享内存或者 <a href="http://memcached.org">memcached</a>(不能同时使用)。
+使用共享内存的查询缓存很快且简单,因为你不需要安装和配置 memcached,但缓存的最大数量限制于共享内存。
+使用 memcached 的查询缓存需要更多的负载用于访问网络,但你可以任意设置你需要的大小。
+</p>
<p>
-Memcached 端口。port number. memqcache_method=memcached 时要求设置。
+可以通过 memqcache_method 指定内存缓存的行为。可以是 “shmem” 或者 “memcached”。默认为 shmem。
</p>
<pre>
-memqcache_memcached_port = 11211
+memqcache_method = 'shmem'
</pre>
+
+<h2 id="memqcache_cases">基于内存缓存被禁用的情况</h2>
<p>
-内存缓存使用的内存字节数。memqcache_method=shmem 时要求设置。
+并非所有的 SELECT 和 WITH 语句可以被缓存。在包括以下列表的一些情况,为了保证数据库和缓存的一致性,缓存被避免了。
</p>
-<pre>
-memqcache_total_size = 10240
-</pre>
+<ul>
+ <li>SELECT 包含以下表的 <a href="#BLACK_MEMQCACHE_TABLE_LIST">black_memqcache_table_list</a></li>
+ <li>SELECT FOR SHARE / UPDATE</li>
+ <li>SELECT 包含 un-immutable 函数</li>
+ <li>SELECT 包含 TEMP TABLE</li>
+ <li>SELECT 包含 系统对象</li>
+ <li>SELECT 包含 VIEW 和 不记录日志的表。但如果表在 <a href="#WHITE_MEMQCACHE_TABLE_LIST">white_memqcache_table_list</a> 中,结果还是会被缓存的。</li>
+
+ <li>SELECT 包含 VIEW </li>
+ <li>SELECT 在一个被终止的显示事务中</li>
+ <li>SELECT 结果超出 <a href="#MEMQCACHE_MAXCACHE">memqcache_maxcache</a></li>
+</ul>
-<p>总共的缓存项目数。memqcache_method=shmem 时要求设置。每个缓存项目消耗 48 字节。
+<h2 id="non_memqcache_case">缓存不被使用的情况</h2>
+<p>
+存在一些情况,及时匹配的查询缓存存在,pgpool 也不返回结果。
</p>
-<pre>
-memqcache_max_num_cache = 100
-</pre>
+<ul>
+ <li>如果一个更新擦做在一个显式的事务中执行,在事务中,pgpool 不使用查询缓存。</li>
+ <li>匹配的查询是由其他用户(因为安全原因)生成的。</li>
+ <li>匹配的查询由于 <a href="#MEMQCACHE_EXPIRE">memqcache_expire</a> 设置而需要被删除。</li>
+</ul>
+
+<h2 id="memqcache_params">配置</h2>
+
+<p>
+以下参数可以同时用于 shmem 和 memcached。
+</p>
+
+<dl>
+<dt id="MEMQCACHE_EXPIRE">memqcache_expire <span class="version">V3.2 -</span></dt>
+ <dd>
+ <p>
+ 查询缓存的生命周期,默认为 0。0 表示没有缓存超时,而且缓存被启用直到表被更新。
+ 本参数和 <a href="#MEMQCACHE_AUTO_CACHE_INVALIDATION">memqcache_auto_cache_invalidation</a> 是相交的。
+ </p>
+ </dd>
+
+<dt id="MEMQCACHE_AUTO_CACHE_INVALIDATION">memqcache_auto_cache_invalidation
+<span class="version">V3.2 -</span></dt>
+ <dd>
+ <p>
+ 如果为 on,则在表被更新的时候自动删除相关的缓存。
+ 如果为 off,则不删除缓存。默认为 on。
+ 本参数和 <a href="#MEMQCACHE_EXPIRE">memqcache_expire</a> 相交。
+ </p>
+ </dd>
+
+<dt id="MEMQCACHE_MAXCACHE">memqcache_maxcache <span class="version">V3.2 -</span></dt>
+ <dd>
+ <p>
+ 如果 SELECT 结果集的大小超出了 memqcache_maxcache 字节,则不缓存且显示以下消息:
+ </p>
+<pre>
+2012-05-02 15:08:17 LOG: pid 13756: pool_add_temp_query_cache: data size exceeds memqcache_maxcache. current:4095 requested:111 memq_maxcache:4096
+</pre>
+ <p>
+ 要避免这个问题,你需要将 memqcache_maxcache 设置得大一些。
+ 但如果你使用共享内存作为缓存策略,它必须小于 <a href="#MEMQCACHE_CACHE_BLOCK_SIZE">memqcache_cache_block_size</a>。
+ 如果是 memchached,她必须小于 slab 的大小(默认为 1 MB)。
+ </p>
+ </dd>
+
+<dt id="WHITE_MEMQCACHE_TABLE_LIST">white_memqcache_table_list <span class="version">V3.2 -</span></dt>
+ <dd>
+ <p>
+ 指定一个以逗号分隔的表名的列表,用于使 SELECT 的结果被缓存,也可以是视图或者不写日志的表。可以使用正则表达式。
+ </p>
+ <p>
+ 同时存在于 white_memqcache_table_list 和 <a href="#BLACK_MEMQCACHE_TABLE_LIST">black_memqcache_table_list</a> 的表和视图将被缓存。
+ </p>
+ </dd>
+
+<dt id="BLACK_MEMQCACHE_TABLE_LIST">black_memqcache_table_list <span class="version">V3.2 -</span></dt>
+ <dd>
+ <p>
+ 指定一个以逗号分隔的表名的列表,用于使 SELECT 的结果不被缓存,也可以是视图或者不写日志的表。可以使用正则表达式。
+ </p>
+ </dd>
+
+<dt id="MEMQCACHE_OIDDIR">memqcache_oiddir <span class="version">V3.2 -</span></dt>
+ <dd>
+ <p>
+ 用于 SELECT 的存储表的 OID 的目录的完整路径。在 memqcache_oiddir 下有使用数据库 oid 命名的目录,
+ 每个目录之下是在 SELECT 中使用的以表的 oid 命名的文件。在文件中,存储了查询缓存。它们是用于删除缓存的关键。
+ </p>
+ <p>
+ 在 memqcache_oiddir 下的目录和文件不会被删除,即使 pgpool-II 重启。
+ 如果你使用 "<a href="#start">pgpool -C</a>" 启动 pgpool,则 pgpool 使用旧的 oid 映射。
+ </p>
+ </dd>
+</dl>
+<h2 id="monitoring_memqcache">监控缓存</h2>
<p>
-内存缓存的生命周期,单位为秒。默认为 60。
+这里讲述如何监控查询缓存。要知道一个 SELECT 的结果是不是从查询缓存获得,需要启用 <a href="#LOG_PER_NODE_STATEMENT">log_per_node_statement</a>。
</p>
<pre>
-memqcache_expire = 60
+2012-05-01 15:42:09 LOG: pid 20181: query result fetched from cache. statement: select * from t1;
</pre>
-<p>允许的 SELECT 的最大结果数,单位为字节。如果超出这个值,则不缓存结果。
+<p>
+<a href="#pool_status">pool_status</a> 命令显示缓存的命中率。
</p>
-
<pre>
-memqcache_maxcache = 512
+memqcache_stats_start_time | Tue May 1 15:41:59 2012 | Start time of query cache stats
+memqcache_no_cache_hits | 80471 | Number of SELECTs not hitting query cache
+memqcache_cache_hits | 36717 | Number of SELECTs hitting query cache
</pre>
-<p>缓存块的大小,单位为字节<br>
-当 memqcache_method=shmem 时有意义。内存缓存被分割成固定大小的块。如果块大小较小,则内存使用率较高,<br>
-但处理速度可能较慢。但是,如果块大小较大,则内存使用率不高,但处理速度快。默认值为 8192。<br>
+<p>
+在本例中,你可以通过以下方法计算:
</p>
+<p>
<pre>
-memqcache_cache_block_size= 8192
-
+(memqcache_cache_hits) / (memqcache_no_cache_hits+memqcache_cache_hits) = 36717 / (36717 + 80471) = 31.3%
</pre>
-<h3>memcached 的安装</h3>
+<p>
+<a href="#pool_cache">show pool_cache</a> 也显示相同的结果。
+</p>
+<h2 id="shmem_params">配置使用共享内存</h2>
<p>
-如果你想使用基于 memcached 的查询,你需要安装 memcached。
+以下为用于共享内存缓存策略的参数。
</p>
+<dl>
+<dt id="MEMQCACHE_TOTAL_SIZE">memqcache_total_size <span class="version">V3.2 -</span></dt>
+ <dd>
+ <p>
+ 指定用于缓存的共享内存的大小,单位为字节。
+ </p>
+ </dd>
+
+<dt id="MEMQCACHE_MAX_NUM_CACHE">memqcache_max_num_cache <span class="version">V3.2 -</span></dt>
+ <dd>
+ <p>
+ 制定缓存的项目数。这用于定义缓存管理空间的大小。(你需要它来协助 <a href="#MEMQCACHE_TOTAL_SIZE">memqcache_total_size</a> 参数)。
+ 可以使用以下方法计算缓存管理空间的大小:<a href="#MEMQCACHE_MAX_NUM_CACHE">memqcache_max_num_cache</a> * 48 字节。
+ 如果数量太小,则注册缓存的时候会报错。但如果太大则浪费空间。
+ </p>
+ </dd>
+
+<dt id="MEMQCACHE_CACHE_BLOCK_SIZE">memqcache_cache_block_size <span class="version">V3.2 -</span></dt>
+ <dd>
+ <p>
+ 如果缓存存储是共享内存,pgpool 使用内存除以 memqcache_cache_block_size。SELECT 的结果被放入块中。
+ 但是因为 SELECT 的结果不能被放入多个块中,它无法缓存大于 memqcache_cache_block_size 的结果。
+ memqcache_cache_block_size 必须大于或等于 512。
+ </p>
+ </dd>
+</dl>
+
+<h2 id="memcached_params">配置使用 memcached</h2>
+
<p>
-可以从 <a href="http://memcached.org/">memcached 开发主页</a> 获取到 memcached 的源码。
+以下为用于 memcached 缓存策略的参数。
</p>
<dl>
-<dt>configure</dt>
+<dt id="MEMQCACHE_MEMCACHED_HOST">memqcache_memcached_host <span class="version">V3.2 -</span></dt>
+ <dd>
+ <p>
+ 指定 memcached 工作的主机的主机名或 IP 地址。如果和 pgpool-II 在同一台机器,设置为 'localhost'。
+ </p>
+ </dd>
+
+<dt id="MEMQCACHE_MEMCACHED_PORT">memqcache_memcached_port <span class="version">V3.2 -</span></dt>
+ <dd>
+ <p>
+ 指定 memcached 的端口。默认为 11211。
+ </p>
+ </dd>
+</dl>
+
+
+<h3 id="install_memcached">memcached 安装</h3>
+
+<p>
+要使用 memcached 作为缓存策略,pgpool-II 需要配合 memcached 和其客户端 libmemcached 使用。
+通过 rpm 安装很简单。这里讲解如何使用源码安装。
+</p>
-<dd>
<p>
-在解压源码包后,执行 configure 脚本。
+可以在以下位置获得 memcached 的源码:
+<a href="http://memcached.org/">memcached development page</a>
</p>
+
+<dl>
+<dt>configure</dt>
+ <dd>
+ <p>
+ 在解压源码包后,执行配置脚本。
+ </p>
<pre>
./configure
</pre>
-</dd>
+ </dd>
+
<dt>make</dt>
-<dd>
+ <dd>
<pre>
make
make install
</pre>
-</dd>
+ </dd>
</dl>
-<h3>libmemcached 的安装</h3>
+<h3 id="install_libmemcached">libmemcached 安装</h3>
<p>
-C 客户端程序使用的库为 libmemcached。你需在安装 memcached 后安装 libmemcached。
+Libmemcached 是 memcached 的客户端库。你需要在安装 memcached 后安装 libmemcached。
</p>
<p>
-可以从 <a href="http://libmemcached.org/libMemcached.html">libmemcached 开发主页</a> 获取到 libmemcached 的源码。
+可以在以下位置获得 libmemcached 的源码:
+<a href="http://libmemcached.org/libMemcached.html">libmemcached development page</a>
</p>
<dl>
<dt>configure</dt>
-<dd>
-
-<p>
-在解压源码包后,执行 configure 脚本。
-</p>
+ <dd>
+ <p>
+ 在解压源码包后,执行配置脚本。
+ </p>
<pre>
./configure
</pre>
-<p>
-如果你想使用非默认的参数,有以下参数可以设置:
-</p>
+ <p>
+ 如果你不想使用默认值,一些可选项为:
+ </p>
-<ul>
- <li><code>--with-memcached=path</code><br/>
- Memcached 安装的顶级目录。</li>
-</ul>
+ <ul>
+ <li><code>--with-memcached=path</code><br/>
+ 安装 Memcached 的顶层目录。</li>
+ </ul>
+ </dd>
-</dd>
<dt>make</dt>
-<dd>
+ <dd>
<pre>
make
make install
</pre>
-</dd>
+ </dd>
</dl>
+
+<p class="top_link"><a href="#Top">回到顶部</a></p>
+
+<!-- ================================================================================ -->
<h1>启动/关闭 pgpool-II<a name="start"></a></h1>
<p>所有后端服务器和System DB(若需要)都必须在启动 pgpool-II 之前启动。
@@ -3095,10 +3294,14 @@ SELECT L1-table.col FROM L1-table WHERE L1-table.col % 2 = 0 AND L1-table.col IN
<a href="tutorial-zh_cn.html">pgpool-II入门教程</a> 已发布。
</p>
-<div class="copyright">
+<p class="top_link"><a href="#Top">返回顶部</a></p>
+
+</div>
+
+<div class="copyright" style="clear: both">
<hr>
<copyright>
-Copyright © 2003 – 2011 pgpool Global Development Group
+Copyright © 2003 – 2012 pgpool Global Development Group
</copyright>
</div>
</body>
[parent: 377509669a13]