在前面的章节中,我们已经能够深入地理解了pgbouncer,同时也学会了如何使用它来尽可能地优化复制设置。在本章我们将了解一个经常被称作与pgbouncer相对应的工具。尽管pgpool的思想与pgbouncer有许多相似地方,它已经被设计为比pgbouncer多好多的特性。虽然做一件事pgbouncer更轻盈和优化过的。pgpool提供了更多的特点和承诺了附加的功能。

根据您的需求,您可以自由决定对于您的特殊设置来说哪个工具较好。

9.1 安装pgpool

正如我们已经看到的PostgreSQL,pgbouncer和包含在本书中的大多数其他工具,我们可以从源代码安装pgpool或者使用二进制包来安装。我们将再次描述如何从源代码进行编译。

要安装pgpool,我们首先必须下载它:

http://www.pgpool.net/mediawiki/images/pgpool-II-3.2.4.tar.gz

一旦下载完成,我们就可以提取代码:

$ tar xvfz pgpool-II-3.2.4.tar.gz

安装过程就像我们已经看到的。我们要做的第一件事是和一些参数来调用configure。在我们的例子中,主要的参数是—with-pgsql,它告诉构建过程在哪里可以找到我们的PostgreSQL安装。

$ ./configure --with-pgsql=/usr/local/pgsql/

现在我们可以容易地编译和安装软件了:

make

make install

9.1.1 安装pgpool-regclass和insert_lock

您刚才看到的是一个基本的pgpool安装。但是,为了是系统真正的动作,安装额外的模块是非常有帮助的,例如pgpool-regclass和insert_lock。,安装pgpool-regclass对于处理DDL复制来说是非常重要的。对于insert_lock处理分布式写是非常重要的。强烈推荐安装这个模块,因为不这样的话DDLs操作将无法工作。到现在为止,我们还没有看到实际的安装中,这个模块没有任何意义的情况。

首先让我们来安装pgpool-regclass:

cd sql/pgpool-regclass/

make

make install

为了使那个模块工作,我们必须部署pgpool-regclass文件。那个模块必须出现自所有我们将要使用的数据库当中。实现这个操作的最简单的方法是简单地把SQL文件加载到template1当中。每当有新的数据库被创建,template1将被克隆,以便所有新的数据库自动获得这个模块。

这同样适用于insert_lock.sql,它可以在pgpool的源代码的sql目录中找到。最简单的方法是直接把它加载到template1:

psql -f insert_lock.sql template1

一旦代码被安装,我们可以继续看看如何使用pgpool。

05-11 21:55