1.3 PostgreSQL工具
如果用户习惯于数据库厂商提供的那些针对数据库本身的完整工具集,这些工具集所涵盖的范围从服务器管理到应用程序开发,那么PostgreSQL可能无法满足这部分用户的需求。与很多成功的开源项目一样,PostgreSQL视图持续专注于一些它所擅长的功能。这也就是开发社区所指的PostgreSQL核心:主要的数据库服务器,相关的工具可以作为数据库本身的一个部分进行开发。当有新的功能提出时,如果它们可能被建立和发布在“核心外”,这是首选的方式。这种方式尽可能地保持数据库核心是持续性的,也就是允许这些外部的项目发布为自己的更新,而不需要与主要的数据库发布计划进行同步。
成熟的PostgreSQL部署应该能够识别众多的各自具有其特定目的附加工具,这些都需要整合到数据库核心服务器中以形成一个完整的系统。
1.3.1 PostgreSQL contrib
用户也许没必要安装PostgreSQL核心的contrib模块部分(其命名是根据它们所存储的目录名称)。这些可选的工具与标准工具包一同发布,但在用户的系统上默认可以不进行安装。contrib代码作为PostgreSQL核心的一部分进行维护与发布,但不要求服务器进行操作。
从代码质量的角度上看,contrib模块在其测试时并没有遵守那么高的标准。主服务器包含对每个功能的深度回归分析测试,这会涉及在数量庞大的系统中去搜寻错误。可选的contrib模块并没有得到在相同级别上的测试覆盖。然而,代码本身是由同一个开发团队进行维护,其中的一些模块极其受欢迎,并且经过用户的良好测试。
查看所有可用的contrib模块的列表,请浏览http://www.postgresql.org/docs/current/static/ contrib.html。
1.发现系统中的contrib模块
检查是否安装有contrib模块的方法是去查看pgbench程序是否可用。pgbench是少数那些安装了完整程序的contrib组件工具的其中之一,而不仅仅是用户可使用的脚本。在UNIX中,检查pgbench是否安装的例子如下所示。
在大多数Linux系统中,如果用的是RPM或者DEB包安装的PostgreSQL,可选的postgresql- contrib
包中包含所有的contrib
模块以及与它相关的安装脚本。如果尚未安装相关功能的话,就需要使用yum、apt-get或者类似的机制来添加安装包。在Solaris系统中,这个包的名称为SUNWpostgr-contrib。
如果用户不能确定在其系统中PostgreSQL contrib
模块安装的位置,那可以使用文件系统工具进行搜索。在许多类UNIX系统中,locate
和find
命令一样能够很好地达到目的。在Windows系统中,在开始菜单中可以找到文件搜索工具。例如,用户要搜索在下一章要谈到的内存分配的文件pg_ buffercache.sql,以下是在部分平台下,该文件所在的位置的说明。
RHEL和CentOS等Linux系统中,该文件的路径为:/usr/share/pgsql/contrib/pg_ buffer cache.sql
。
Debian或者Ubuntu等Linux系统中,该文件的路径为:/usr/share/postgresql/ version/contrib/pg_buffercache.sql
。
Solaris系统中该文件路径为:/usr/share/pgsql/contrib/pg_buffercache.sql
。
在Windows系统中,采用默认选项将会安装contrib模块,其路径为:C:\Program Files\ PostgreSQL/version/share/contrib/pg_buffercache.sql
。
2.从源码安装contrib
模块
在一些平台下,当用户的服务器环境符合相应的先决条件,则可以使用源码安装PostgreSQL作为一种简单的练习。相关详细信息请参考:http://www.postgresql.org/docs/current/static/install-procedure.html
。
在构建主要服务器的代码后,用户还需要自行编译诸如pg_buffercache
之类的contrib模块。以下是一个相关的实例,在该例当中假设用户的PostgreSQL目标路径为/usr/local/postgresql
,并且目录source是用户放置源代码的目录(本实例不作为典型或者推荐用户使用的目录结构),如下所示。
在contrib目录中运行make/make install命令可以构建并安装所有的contrib模块。请注意其中的一些更广泛的源代码构建的需求。uuid-ossp
模块就是一个更具挑战性的自行编译的模块实例。
3.使用contrib模块
虽然一些诸如pgbench的contrib程序可以直接执行,但那些安装在数据库中的工具大多数都是为了向其添加额外的功能。
例如,要将模块pg_buffercache
安装到一个名为abc的数据库中,则要在命令行下使用如下命令。
用户可以使用图形化用户界面管理工具pgAdmin III替代命令行来完成工作。它是捆绑在Windows平台下的PostgreSQL工具,以替代命令行方法。具体使用方法如下。
指明用户要安装模块的数据库。
单击工具栏上的SQL图标,启动命令行编辑器。
选择 File/Open,指向C:\ProgramFiles\PostgreSQL/version/share/contrib/pg_ buffercache.sql
并打开文件。
使用绿色箭头或者Query/Execute开始执行。
使用以下的查询可以快速检测任意类型的系统中所安装的模块。
如果返回任意值,则表明该模块已安装。注意pg_buffercache
只能由数据库超级用户安装和使用。
1.3.2 pgFoundry
与PostgreSQL
相关的项目的官方站点是pgFoundry:http://pgfoundry.org/。
pgFoundry只是存放PostgreSQL软件的主机,除了文件分发之外还提供诸如邮件列表和错误追踪的功能。许多最流行的PostgreSQL附加程序都可以在那里找到。
Windows程序可以通过.Net和OLE
访问PostgreSQL
。
诸如pgpool和pgBouncer之类的连接缓冲池。
诸如pgFouine、SkyTools以及pgtune之类的数据库管理工具。
尽管有时会由从事PostgreSQL
核心的同一批人维护pgFoundry,但其代码质量时常会有显著变化。保持项目良好进行的一个方法是注意定期和最近的发布版本。
1.3.3 其他一些与PostgreSQL相关的软件
除了PostgreSQL
核心自带的程序之外,诸如contrib
模块以及pgFoundry
提供的软件等,还有很多的程序能够让PostgreSQL更加易用和强大。在网络上都能找到这些资源。为需求本身选择正确的包实际上有很多选择。
本书中,很多很有用的程序都会被重点提出,用户可以尽早了解所提供的简短列表。这是构建大型开源项目的标准方法,用户可以得到一个基本的系统运行环境并随后在需要的时候去添加额外的的组件。
对那些安装任何软件都要经过审批和QA周期的企业文化来说,这样做是比较困难的。为了提高在这种环境下用户成功安装PostgreSQL的几率,在早期就引进这一概念是很重要的。在后期需要往较小的数据库核心中附加程序来添加组件,很明显在刚开始的时候不需要全部组件。`