2007-04-23

pgpool-II使用指南-安装与配置(簡體)

更新:2007-04-24
對映章節:
本文翻译自源代码包中的“pgpool-II Tutorial”文档

安装pgpool-II
安装pgpool-II是件非常容易的事情,在解压缩的源代码tar包目录中运行如下命令:
$ ./configure
$ make
$ make install

configure命令收集系统信息并将它们用在编译过程中,可以传递命令行参数给configure脚本来控制它的行为,比如安装目录,缺省情况下将安装到/usr/local之下。
make命令编译源代码,make install安装编译后的可执行文件,在要安装的目录中必须具有写权限。
本指南将使用缺省安装目录/usr/local。

注意:pgpool-II需要PostgreSQL 7.4或者更高版本的libpq库(第三版本协议),如果configure脚本显示类似下边的错误信息,可能是没有安装libpq库或者它不支持第三版协议:
configure: error: libpq is not installed or libpq is old
(这里与前边讲最低支持6.4的说法冲突,看起来这个更可信。)

如果确信是支持第三版协议的libpq库,但是仍然收到这样的错误信息,可能是因为configure脚本没有正确识别它。
configure脚本在/usr/local/pgsql下搜索libpq库,如果PostgreSQL安装在其他目录,使用--with-pgsql或者是--with-pgsql-includedir和--with-pgsql-libdir命令行参数来指定它。

配置文件
pgpool-II的配置参数保存在pgpool.conf文件中,每一行采用"parameter = value"格式。安装pgpool-II时,自动创建pgpool.conf.sample文件,推荐将它拷贝并且重命名为pgpool.conf再编辑:
$ cp /usr/local/etc/pgpool.conf.sample /usr/local/etc/pgpool.conf

pgpool-II仅使用9999端口接受本地连接,如果需要接受其他主机的连接请求,将listen_addresses设置为“*”:
listen_addresses = 'localhost'
port = 9999

本指南将使用缺省参数。

配置PCP命令
pgpool-II有一个出于管理目的可以通过网络查询数据库节点信息、关闭pgpool-II等功能的接口(interface)。使用PCP命令首先必须通过用户验证,它不同于PostgreSQL的用户验证,需要在pcp.conf中定义用户名和密码。文件中的用户名/密码成对出现在每一行,用冒号隔开,密码是md5格式:
postgres:e8a48653851e28c69d0506508fb27fc5

安装pgpool-II时,自动建立pcp.conf.sample文件,推荐拷贝并且重命名以后再编辑:
$ cp /usr/local/etc/pcp.conf.sample /usr/local/etc/pcp.conf

使用pg_md5命令可以将密码加密为md5格式,它是作为pgpool-II可执行部分安装的,pg_md5使用一个文本作为参数,然后显示出这个文本的md5加密文本。
例如: 将“postgres”作为参数传递给pg_md5,pg_md5将把md5加密过文本打印到标准输出:
$ /usr/bin/pg_md5 postgres
e8a48653851e28c69d0506508fb27fc5


PCP命令通过网络执行,因此必须在pcp.conf文件中使用pcp_port设置监听端口。
本指南将使用pcp_port的缺省值:
pcp_port = 9898

设置数据库节点
现在,我们要设置pgpool-II的后端数据库,它们可以跟pgpool-II在同一台主机上,也可以在独立的机器上。如果放在同一主机之上,每个数据库服务器必须使用不同的端口。如果放在其他独立的机器上,必须设置它允许接受来自pgpool-II的连接请求。

本指南中,我们将在pgpool-II的同一个服务器上放置三个数据库,分别使用5432、5433、5434端口。在pgpool-II的配置文件pgpool.conf中作如下设置:

backend_hostname0 = 'localhost'
backend_port0 = 5432
backend_weight0 = 1
backend_hostname1 = 'localhost'
backend_port1 = 5433
backend_weight1 = 1
backend_hostname2 = 'localhost'
backend_port2 = 5434
backend_weight2 = 1

backend_hostname、backend_port、backend_weight分别设置节点的主机名、端口号、负载平衡比率,每一个参数名字符串的最后必须描述一个从0开始(1、2、3···)的节点ID。

backend_weight参数全部设置为1,意味着SELECT查询将平均分配到三个数据库中。

启动/关闭pgpool-II

启动pgpool-II,在终端之上使用如下命令:
$ pgpool
这个命令会把日志输出在终端上,因此推荐使用如下选项:
$ pgpool -n -d > /tmp/pgpool.log 2>&1 &
使用-n选项,pgpool-II作为非deamon进程运行,不会与终端脱离,这个选项需要将日志信息重定向至某个文件中。选项-d指令生成debug信息。

停止pgpool-II,使用如下命令:
$ pgpool stop
如果有客户端正在连接,pgpool-II会等待他们断开,然后才停止。如果需要强制终止,使用下边的命令:
$ pgpool -m fast stop


延伸閱讀(Link):
pgpool官方英文网站
pgpool-II官方英文网站

沒有留言:

網誌存檔

PostgreSQL & Google-Analytics Running...

::Planet PostgreSQL::

PostgreSQL Information Page

PostgreSQL日記(日本 石井達夫先生Blog)

PostgreSQL News

黑喵的家 - 資料庫相關

Google 網上論壇
PostgreSQL 8 DBA 專業指南中文版
書籍內容討論與更多下載區(造訪此群組)
目錄下載: PostgreSQL_8 _DBA_Index_zh_TW.pdf (更新:2007-05-18)

全球訪客分佈圖(Google)

全球訪客分佈圖(Google)